2013-07-15 3 views
0

SWT Token 요청을 통해 Identity Provider (Facebook) 토큰과 교환하여 ACS 토큰을 요청하는 공식 자습서 (http://msdn.microsoft.com/en-us/library/hh674475)를 따랐습니다. ID 교환과 함께 ACS 끝점에서 토큰 요청

나는 가능한 모든 일을 시도하고이 오류를 제거 할 수없는거야

ErrorCode가 : 400 : 서브 코드 : T1019 : 세부 사항 : Inavlid SWT 토큰. wrap_assertion 값은 SWT 주장하지

참고 : 이미 발급자는 =

  • 서명 키가 동일한 대칭 키입니다 [편집 ID 공급자 페이지에서 영역]에서와 같이 확인했습니다

    1. 토큰 서명 키
    2. 또한 ACS 토큰을 받기 위해 facebook accesstoken을 ACS 끝점에 대한 SWT 토큰의 클레임으로 래핑합니다.

    내가 뭔가 잘못하고있는 경우 나에게 맞춰주세요. 예, 이것에 대해 많이 봤지만 해결할 것이 없습니다.

    P .: 서비스 ID로 암호 토큰 요청을 시도했지만 정상적으로 작동합니다.

  • +0

    FB 토큰을 얻은 방법과 ACS 토큰을 요청하는 방법을 모두 구체적으로 구체적으로 설명하는 구체적인 요청과 응답 (중요한 데이터가 생략 된 전체 덤프)을 제공하십시오. 또한 정확한 ACS 구성 (IdP + RP + 규칙 그룹). – astaykov

    +0

    페이스 북 그래프 API 탐색기에서 내 accessToken을 복사하고 발급자 및 HMACSHA256과 함께 "WRAPv0.9"의 POST 요청에 추가했습니다. 또한 내 ACS는, IdP가 이미 방금 추가 코드가 정확히 builder.Append (HttpUtility.UrlEncode ("HTTP 공식 튜토리얼과 동일 RelyingParty (로컬 호스트)에서 페이스 북에 설정되어 accessToken의 주장을 변환하도록 구성되어 : //www.facebook.com/claims/AccessToken= ")); builder.Append (HttpUtility.UrlEncode (accessToken)); –

    +0

    이 시나리오는 나에게별로 의미가 없습니다. 일반적으로 ACS의 Facebook 지원에는 사용자 로그인이 포함되지만이 ServiceIdentity 사례에 적용되는 방식은 분명하지 않습니다. ACS가 액세스 토큰으로 무엇을할까요? –

    답변

    0

    당신의 문제는 당신이 페이스 북을 직접 다루고 있고 ACS에게 액세스 토큰을주고있는 것처럼 보입니다. 페이스 북을위한 ACS 모델이 아닙니다. 기본 모델은 ACS가 앱이 아닌 Facebook을 먼저 다루는 것입니다. 이 작동 방식은 다음과 같습니다.

    1. 최종 사용자가 Facebook에 액세스 토큰을 요청합니다. 이는 ACS (예 : WS-Federation 로그인 요청) 또는 ACS (IdentityProviders.js)를 통해 지정된 URL로 직접 발생합니다.
    2. 사용자가 Facebook에 로그인합니다.
    3. 인증 코드가 ACS로 전송됩니다.
    4. ACS는 액세스 토큰에 대한 인증 코드를 교환하고 일부 사용자 데이터를 검색합니다. 이것은 규칙을 거치며 토큰에 패키지화되어 RP로 보내집니다. 이 토큰의 클레임 중 하나는 RP가 추가 Facebook 호출을 할 때 사용할 수있는 액세스 토큰입니다.

    ACS는 액세스 토큰을 직접받는 모델을 지원하지 않습니다. 사용자가하려는 것처럼 보입니다.

    +0

    최근에 발견했는데 지금은 효과가 있습니다. :) –

    1

    두 가지 일은 여기서 실패합니다.

    첫 번째로 나는 페이스 북이 당신에게 유효한 SWT 토큰을 제공하는지 의심 스럽다. 그들은 "토큰"이라고 부르는 노래 한 줄을 제공합니다. 그리고이 것은 다른 STS-es (예 : ACS)에서 SWT 토큰으로 사용할 수있는 유효한 SWT 토큰이 아닙니다 (FB에서 전문가가 아니기 때문에 여기에 잘못되었을 수 있습니다. 그러나이 오류 이후로 매우 내가 맞을 가능성이있다). 따라서 FB의 토큰이 유효한 SWT 토큰이 아니라면 여기서 이야기가 끝납니다.

    다음 것은 - 당신의 끝에 SWT 토큰을 생성하고 있습니다. 지금 당신이 토큰에 서명하고 있다는 것을 의미합니다. 하지만 페이스 북에서 토큰을 변환해야한다고 말합니다. 음, Facebook의 서명 키로 토큰에 서명 할 수있는 방법이 없습니다! ACS의 키로 토큰을 부르면 페이스 북의 토큰으로 표시되므로 무효화됩니다.

    요컨대, 페이스 북 그래프 API 토큰은 시도하는 방식으로 사용할 수 없습니다. 해결하고자하는 더 큰 문제를 설명해 주시면 적절한 도움을 드릴 수 있습니다.

    +0

    Faceboo 토큰은 불투명 한 문자열이며 암호화가 전혀 없습니다. Facebook API를 호출하기위한 무기 토큰으로 사용됩니다. – woloski

    +0

    내가 원하는 것은 모바일 응용 프로그램에서 페이스 북 사용자를 인증 한 다음 인증 된 사용자의 ACS 토큰을 요청하여 보안 웹 API에 대한 추가 요청을하는 것입니다. 위와 같은 방법으로 시도했지만 성공하지 못했습니다. 어떤 생각이든 그것을하는 방법? –