2017-10-26 3 views
3

AWS와 Azure B2C를 통합하는 프로세스입니다. 즉, AWS Cognito를 Azure B2C와 페더레이션 ID 공급자로 설정하고 모바일 응용 프로그램의 로그인 용도로 사용하는 프로세스입니다.AWS와의 Azure B2C 통합 Cognito Federated Identities

대부분의 경우 나는 모든 것을 올바르게 구성했다고 생각합니다. 이것은 내가 지금까지해온 것입니다.

  1. 저는 B2C Tenant를 만들고 세입자와 SignUpAndSignInPolicy에 "Application"을 설정했습니다. 응용 프로그램에는 네이티브 클라이언트와 웹 클라이언트가 모두 활성화되어 있으며 암시 적 플로우도 허용됩니다.
  2. Azure B2C Tenant를 AWS의 ID 제공 업체로 구성하고 IdP에 필요한 역할을 만들었습니다.
  3. I는 AWS Cognito 아이디 풀을 생성 구체적 IdP가
  4. I는 푸른 B2C 인증 할 MSAL 라이브러리를 사용하고 위를 사용 acquireToken 뒤에 MSALPublicClientApplication.init(clientId, kAuthority) 방식으로 구성 하였다.
  5. 브라우저에 대화식 로그인을 표시하고 맞춤 URL을 통해 앱에 토큰을 반환합니다. 토큰이 유효하며 JWT tool으로 확인했습니다.
  6. 그런 다음 3 단계에서 만든 Cognito Identity 풀과 AWS 설명서에 따라 getToken 및 logins 메소드를 구현 한 클래스 인 사용자 정의 identityProviderManager를 사용하여 AWSCognitoCredentialsProvider을 설정합니다.
  7. I는 다음 "복귀 AWSTask (["의 providerName "id_token"]로 Cognito 5 단계에서 토큰을 전달 돌아가는 톤 후 로그인 방법 내측 문

를 앞뒤로 I가있다. 그러나 지금 특히, AWS에서 토큰 유효성 검사 오류가 발생하고, 길을 따라 장애물의 대부분을 얻을 관리 : 결과의 톤을 생성하지 않습니다 정말 그 오류를 인터넷 검색을

error: Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=8 "(null)" UserInfo={__type=NotAuthorizedException, message=Invalid login token. Couldn't verify signed token.}

만에서 내가 애플리케이션의 일련의 이벤트는 정확하지만 AWS는 통신 할 때 토큰의 유효성 검사에 대해 불평하고있다. es와 Azure.

ID 공급자를 구성 할 수있는 AWS에는 비밀, 범위 또는 그와 같은 많은 요소가 없으므로 어디에서 볼지 잘 모르겠습니다.

노련한 OpenID 전문가에게이 오류 메시지가 의미하는 것 이상을 의미합니다.

내가 확신 할 수없는 것들 중 일부는 관련성이 있습니다. 1. Azure B2C에는 현재 구현하지 않는 키 용도를 지정할 수있는 곳이 없기 때문에 현재 사용하지 않는 응용 프로그램에서 "키"개념이 있습니다. 2. MSALPublicClientApplication.init 메서드는 application.acquireToken(forScopes: kScopes)을 호출하는 데 사용하는 응용 프로그램 인스턴스를 반환합니다. 내가 읽은 것만으로도 "openid"와 "offline_access"만 필요하기 때문에 스코프 값에 무엇을 넣을지 전혀 알지 못합니다. 그러나이를 지정하려고하면 기본적으로 이미 포함되어 있다는 오류가 발생합니다 내 API 호출에서이를 지정할 수 있습니다. 그러나이 필드를 비워 둘 수는 없으므로 정확한지 확실하지 않은 Azure B2C 응용 프로그램 ID (GUID 형식)가 있습니다.

도움을 주셔서 감사합니다.

+0

서명 된 토큰은 어떤 알고리즘입니까? –

답변

0

설정이 올바른 것처럼 보입니다.MSAL 라이브러리에 대해서는 잘 모르지만 Azure B2C 콘솔에서 직접 테스트 할 때 권한 부여 URl에서 서명 정책 ('p'매개 변수 사용)을 언급했는지 여부에 따라 다른 토큰을 얻습니다. 이 매개 변수가없는 매개 변수는 작동하지만 매개 변수가없는 매개 변수는 작동하지 않습니다. OIDC 검색이 작동하는 방식과 AWS IAM 콘솔에서 구성되는 방식과 관련이 있습니다.