2014-03-05 1 views
0

우리는 Yodlee 데이터로 작업하는 집계 응용 프로그램을 구축하고 있으며 MultiFactor 인증을 사용하는 경우 우리가 작업하는 대부분의 기관에서 보안 질문이 있지만 "MULTI_LEVEL"MFA 접근 방식을 가진 한 기관 (JP Morgan)이 있습니다. 이를 테스트하고 처리하기 위해 우리는 Java 샘플 애플리케이션 인 "Aggregation12"를 사용했습니다. (이것은 지금까지 Yodlee SOAP 상호 작용에 대한 구현 예제로 사용되었습니다.)Yodlee SOAP API의 다중 레벨 MFA에 대한 XML 교환은 어떻게 생겼으며 왜 다음과 같은 오류가 발생합니까?

콘솔 응용 프로그램 "yconsole"을 사용하려고 할 때. (JP Morgan Retirement 옵션 [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)의 기원은 무엇인가? this page에서 "회원 사이트 계정 식별자가 존재하지 않거나이 사용자가 아니거나 사용자 정의 항목입니다."라는 것을 알 수 있지만 해당 언어가 분명하지 않습니다 ("회원 사이트 계정 식별자"가 외부 개발자에게 이해가되지 않는 yodlee의 애플리케이션 어휘) 012) MULTI_LEVEL MFA가있는 기관과 상호 작용하기위한 적절한 프로세스를 구체적으로 다루는 훌륭한 문서 자료가 있습니까?

답변

1

1)이 오류 유형의 근원은 무엇입니까 (InvalidSiteAccountExceptionFault)? 나는이 페이지에서 "회원 사이트 계정 식별자가 존재하지 않거나이 사용자에 속하지 않거나 사용자 정의 항목입니다."라는 것을 알 수 있지만 그 언어는 분명하지 않습니다 ("회원 사이트 계정 식별자" ? 외부 개발자에게 이해가되지 않습니다 yodlee 신청 어휘)입니다

대답 -

yodlee는 데이터 모델 은행 계좌, 신용 카드 계정, 대출 계좌 등의 금융 상품의 다른 유형에 따라 설계했다

, 투자 계정 등등. Yodlee의 용어에서 이러한 모든 다른 제품을 컨테이너라고 부릅니다. 모든 사이트에는 여러 컨테이너가 활성화되어 있으며 각 컨테이너에 대해 CSID (Content Service ID)가 지정됩니다. Yodlee 다음 계층 구조가

사이트처럼 (사이트 ID)
| ----> 용기 (1) (저축/확인 (CSID 1))
| ----> 컨테이너 2 (신용 카드 (CSID 2))

Now there are two ways of linking an account with Yodlee. 

1) 컨테이너 기반 추가 - 하나의 컨테이너에 특정한 계정을 연결하므로 해당 특정 제품에만 데이터를 사용할 수 있습니다.

2) 사이트 기반 추가 - 여기에서는 연결된 다른 컨테이너가있는 사이트에 계정을 연결하므로 모든 컨테이너와 연결된 데이터를 사용할 수 있습니다.

Ex. - 저축/체킹 계좌, 카드 계좌 등이있는 체이스 사이트를 보유하고 있습니다. 컨테이너 기반 추가 및 콘텐츠 서비스 ID (CSID)를 사용하여 Chase 신용 카드를 연결하면 신용 카드 세부 정보 만 표시되고 저장/수표 계정 세부 정보는 확보되지 않습니다. 사이트 기반 추가를 수행하면 해당 사이트와 연결된 모든 컨테이너가 최종 사이트의 가용성에 따라 링크됩니다. 따라서 귀하가 로그인/저축 계좌와 신용 카드 계좌를 모두 가지고 있다면, 둘 다 당겨질 것입니다.

계정이 연결될 때마다 해당 계정의 고유 식별자로 ItemId가 만들어집니다. 사이트 기반 추가가 완료되면 siteAccountId가 생성되고 siteAccountId 아래에 ItemIds가 생성됩니다. 사이트 기반 집계의 경우 기본 키는 모든 API 호출에 대한 siteAccountId이며 컨테이너 기반 추가의 경우 기본 키는 ItemId입니다.

컨테이너 기반 추가 작업을 수행 한 다음 사이트 집계 API (putMFARequestForSite)를 사용하려고하므로 예외가 발생합니다.

따라서 컨테이너 기반 또한 사용하는 동안 MFA 흐름에 대한 -

getMFAResponse (https://developer.yodlee.com/Indy_FinApp/Aggregation_Services_Guide/REST_API_Reference/getMFAResponse)을 MFA 질문을 받고를 들어 다음 다시 Yodlee에 대한 답변을 게시 putMFARequest의 API (https://developer.yodlee.com/Indy_FinApp/Aggregation_Services_Guide/REST_API_Reference/putMFARequest)를 사용합니다.

2) MULTI_LEVEL MFA가있는 기관과 상호 작용하기위한 적절한 프로세스를 구체적으로 다루는 훌륭한 문서 자료가 있습니까?

대답 - 어떤 MFA의 기본 흐름은

입니다

1)/토큰/이미지

2) MFA의 질문을받을 getMFAResponse API를 호출 다시 대답을 게시 putMFARequest API를 호출 to Yodlee

3) 다시 질문/토큰/이미지를 사용할 수 있는지 확인하려면 # 1로 가십시오. getMFAResponse의 error_code에 값이있을 때까지이 3 단계를 계속하십시오.

값이 0이면 MFA 플로우가 성공했거나 오류가있었습니다. 샘플 putMFAResponse 요청 XML을 추가하는 답을 수정

또한

<?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> <putMFARequest xmlns="http://refresh.refresh.core.soap.yodlee.com"><userContext xmlns=""><cobrandId>xxxxxxxxxxxxx</cobrandId><channelId>-1</channelId><locale>    <country>US</country><language>en</language><variant /></locale>   <tncVersion>2</tncVersion><applicationId>xxxxxxxxxxxxxxxxxx</applicationId>   <cobrandConversationCredentials xmlns:ns1="http://login.ext.soap.yodlee.com" xsi:type="ns1:SessionCredentials">   <sessionToken>10122012_0:xxxxxxxxxxxxxxxxxxxxxxxxxxxx</sessionToken>   </cobrandConversationCredentials><preferenceInfo><currencyCode>USD</currencyCode><timeZone>PST</timeZone><dateFormat>MM/dd/yyyy</dateFormat>    <currencyNotationType>SYMBOL_NOTATION</currencyNotationType><numberFormat>    <decimalSeparator>.</decimalSeparator><groupingSeparator>,</groupingSeparator>  <groupPattern>###,##0.##</groupPattern></numberFormat></preferenceInfo>   <fetchAllLocaleData>false</fetchAllLocaleData><conversationCredentials xmlns:ns2="http://login.ext.soap.yodlee.com" xsi:type="ns2:SessionCredentials"<sessionToken>10122012_0:xxxxxxxxxxxxxxxxxxxxx</sessionToken></conversationCredentials><valid>true</valid><isPasswordExpired>false</isPasswordExpired></userContext><userResponse xmlns="" xmlns:ns3="http://mfarefresh.core.soap.yodlee.com" xsi:type="ns3:MFATokenResponse"><token xsi:type="xsd:string">123456</token></userResponse><itemId xmlns="">14672972</itemId></putMFARequest></soapenv:Body></soapenv:Envelope> 

할 수 있습니다 당신은 컨테이너 기반의 계정을 연결하고 확인하는 데 사용하는 itemManagement 메뉴를 사용할 수 있습니다 https://developer.yodlee.com/Indy_FinApp/Sample_Apps/JAVA_Sample 에서 JAVA 여기서 SampleApp를 얻을 수 add account의 흐름. 위의 MFA의 기본 흐름은 다단계도 처리합니다.

+0

의견을 보내 주셔서 감사합니다. 좀 더 자세히 설명해 드리겠습니다. 연결하려는 문서 리소스는 REST를위한 것이지만 사이트가 추가되기 전에이 애플리케이션이 사용되기 전에 작업을 시작했으며 여전히 SOAP을 사용하고 있습니다. 투쟁은 그 비누 xml의 예를 보여주고 있습니다. yodconsole (샘플 자바 애플리케이션)을 사용하고 빌드 할 xml 상호 작용을 로깅하기 위해 노력했습니다. 그것은 훌륭했지만이 경우 성공하지 못했습니다. TOKEN MFA 응답을위한 'putMFARequest'엔드 포인트에 게시하기 위해 example xml을 볼 수있는 방법이 있습니까? – ethanvizitei

+0

yodconsole 샘플 Java 응용 프로그램이 작동하지 않는 이유는 명확하게 컨테이너와 사이트 추가를 분리하는 방법을 모르기 때문에이 교환에서 질문 1에서 지적한 오류가 발생했기 때문입니다.SOAP 웹 서비스와 대화하고 멀티 레벨 MFA 플로우를 처리 할 수있는 샘플 애플리케이션을 보유하고 있습니까? 그러면 XML 상호 작용을 기록하고 응용 프로그램을 업데이트하여이를 모방 할 수 있기 때문에 앞으로해야 할 것을 제공 할 것입니다. – ethanvizitei

관련 문제