我们正在构建一个使用 Yodlee 数据的聚合应用程序,虽然与我们合作的大多数机构在使用 MultiFactor Authentication 时都会遇到安全问题,但有一个机构(JP Morgan)采用“MULTI_LEVEL”MFA 方法。在尝试测试和处理这个问题时,我们使用了 Java 示例应用程序“Aggregation12”(到目前为止,我们使用它作为所有其他 Yodlee SOAP 交互的实现示例。
当尝试使用控制台应用程序“yconsole.sh”与任何 MULTI_LEVEL MFA 机构交谈时(JP Morgan Retirement options [cobrand ID 4999] 是真实的,DagMultilevel [cobrand ID 15682] 是测试的),初始登录步骤有效很好,但我们无法通过多级身份验证中的第一个令牌步骤而没有错误消息。我们访问日志中的 XML 如下所示:
=======================================================
= Elapsed: 538 milliseconds
= In message: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><putMFARequestForSite xmlns="http://refresh.refresh.core.soap.yodlee.com"><userContext xmlns=""><cobrandId>10008392</cobrandId><channelId>-1</channelId><locale><country>US</country><language>en</language><variant></variant></locale><tncVersion>2</tncVersion><applicationId>7A318B9CD555B6A3FF82D22CBF3C9F00</applicationId><cobrandConversationCredentials xsi:type="ns1:SessionCredentials" xmlns:ns1="http://login.ext.soap.yodlee.com"><sessionToken>10122012_0:87e50a0bac49909f03763e2819c5c3f7da170f0c0b6b8e74efc594875089b25efeb4142bbe5b42d73f5682d33c44c8a33718c15d53d5f4afda68c8d389e15f39</sessionToken></cobrandConversationCredentials><preferenceInfo><currencyCode>USD</currencyCode><timeZone>PST</timeZone><dateFormat>MM/dd/yyyy</dateFormat><currencyNotationType>SYMBOL_NOTATION</currencyNotationType><numberFormat><decimalSeparator>.</decimalSeparator><groupingSeparator>,</groupingSeparator><groupPattern>###,https://www.pivotaltracker.com/epic/show/0.##</groupPattern></numberFormat></preferenceInfo><fetchAllLocaleData>false</fetchAllLocaleData><conversationCredentials xsi:type="ns2:SessionCredentials" xmlns:ns2="http://login.ext.soap.yodlee.com"><sessionToken>10122012_0:794aeae009e6ae1d6b7f89be3a133b74c7618ec794917b9ca41b83e903d847ab7a318260120729e5851b1bdc956711d37549d29e941dd1e25fb628d70e5b70d5</sessionToken></conversationCredentials><valid>true</valid><isPasswordExpired>false</isPasswordExpired></userContext><userResponse xsi:type="ns3:MFATokenResponse" xmlns="" xmlns:ns3="http://mfarefresh.core.soap.yodlee.com"><token xsi:type="xsd:string">5731234567</token></userResponse><memSiteAccId xmlns="">14616812</memSiteAccId></putMFARequestForSite></soapenv:Body></soapenv:Envelope>
= Out message: <?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>InvalidSiteAccountExceptionFaultMessage</faultstring><detail><ns4:InvalidSiteAccountExceptionFault xmlns:ns4="http://core.soap.yodlee.com"><faultText>com.yodlee.core.InvalidSiteAccountException: Argument value not found: 14616812</faultText></ns4:InvalidSiteAccountExceptionFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
=======================================================
我们运行这些测试的肥皂服务器是: https ://eval.yodlee.com/yodsoap/services
所以,两个真正的问题:
1) 这种错误类型 (InvalidSiteAccountExceptionFault) 的根源是什么?我可以从这个页面看到它的意思是“会员站点帐户标识符不存在,不属于该用户,或者是自定义项目。”,但我不清楚这种语言(可能是“会员站点帐户标识符” yodlee 的应用程序词汇对外部开发人员没有意义吗?)
2) 是否有很好的文档资源专门涵盖与具有 MULTI_LEVEL MFA 的机构进行交互的正确流程?