Azure Active Directory B2C의 애플리케이션에 ID 공급자 액세스 토큰 전달

시작하기 전 에_ _ 정책 유형 선택 선택기를 사용하여 설정하려는 정책 유형을 선택합니다. Azure Active Directory B2C는 사용자가 애플리케이션과 상호 작용하는 방법을 정의하는 두 가지 방법, 즉 미리 정의된 사용자 흐름 또는 완전히 구성 가능한 사용자 지정 정책을 통해 제공합니다. 이 문서에서 필요한 단계는 각 방법마다 다릅니다.

Azure Active Directory B2C(Azure AD B2C)의 사용자 흐름은 ID 공급자에 가입하거나 로그인할 수 있는 기회를 애플리케이션의 사용자에게 제공합니다. 이 과정이 시작되면 Azure AD B2C는 ID 공급자로부터 액세스 토큰을 받습니다. Azure AD B2C는 이 토큰을 사용하여 해당 사용자에 대한 정보를 검색합니다. 사용자는 Azure AD B2C에서 등록한 애플리케이션으로 토큰이 통과되도록 사용자 흐름에서 클레임을 활성화합니다.

Azure AD B2C는 OAuth 2.0 ID 공급자의 액세스 토큰 전달을 지원하며,이는 FacebookGoogle을 포함합니다. 다른 모든 ID 공급자에 대한 클레임은 빈 상태로 반환됩니다.

Azure AD B2C에서는 OAuth 2.0OpenID Connect ID 공급자의 액세스 토큰을 전달할 수 있습니다. 다른 모든 ID 공급자에 대한 클레임은 빈 상태로 반환됩니다.

다음 다이어그램은 ID 공급자 토큰이 앱으로 반환되는 방식을 보여 줍니다.

ID 공급자 흐름 통과

필수 구성 요소

클레임 사용

  1. Azure AD B2C 테넌트의 전역 관리자로 Azure Portal에 로그인합니다.

  2. Azure AD B2C 테넌트가 포함된 디렉터리를 사용하고 있는지 확인합니다. 포털 도구 모음에서 디렉터리 + 구독 아이콘을 선택합니다.

  3. 포털 설정 | 디렉터리 + 구독 페이지의 디렉터리 이름 목록에서 Azure AD B2C 디렉터리를 찾은 다음, 전환 을 선택합니다.

  4. Azure Portal의 왼쪽 상단 모서리에서 모든 서비스 를 선택하고 Azure AD B2C 를 검색하여 선택합니다.

  5. 사용자 흐름(정책) 을 선택한 다음 사용자 흐름을 선택하세요. 예를 들어 B2C_1_signupsignin1 으로 업데이트합니다.

  6. 애플리케이션 클레임 을 선택합니다.

  7. ID 공급자 액세스 토큰 클레임을 사용하도록 설정하세요.

    ID 공급자 액세스 토큰 클레임 사용

  8. 저장 을 클릭하여 사용자 흐름을 저장합니다.

사용자 흐름 테스트

Azure AD B2C에서 애플리케이션을 테스트하는 경우 포함된 클레임을 검토하기 위해 Azure AD B2C 토큰이 https://jwt.ms로 반환되도록 하는 것이 유용할 수 있습니다.

  1. 사용자 흐름의 개요 페이지에서 사용자 흐름 실행 을 선택합니다.

  2. 애플리케이션 은 이전에 등록한 애플리케이션을 선택합니다. 아래 예제에서 토큰을 보려면 회신 URL 에서 https://jwt.ms가 표시되어야 합니다.

  3. 사용자 흐름 실행 을 클릭한 다음, 계정 자격 증명으로 로그인합니다. idp_access_token 클레임에 ID 공급자의 액세스 토큰이 표시되어야 합니다.

    다음 예제와 비슷한 내용이 표시됩니다.

    jwt.ms의 디코딩된 토큰(idp_access_decord 블록 강조 표시)

클레임 요소 추가

  1. TrustframeworkExtensions.xml 파일을 열고 identityProviderAccessToken 식별자를 사용하여 다음 ClaimType 요소를 ClaimsSchema 요소에 추가합니다.

    <BuildingBlocks>
      <ClaimsSchema>
        <ClaimType Id="identityProviderAccessToken">
          <DisplayName>Identity Provider Access Token</DisplayName>
          <DataType>string</DataType>
          <AdminHelpText>Stores the access token of the identity provider.</AdminHelpText>
        </ClaimType>
        ...
      </ClaimsSchema>
    </BuildingBlocks>
    
  2. 액세스 토큰을 사용할 각 OAuth 2.0 공급자에 대해 TechnicalProfile 요소에 OutputClaim 요소를 추가합니다. 다음 예제는 Facebook 기술 프로필에 추가된 요소를 보여 줍니다.

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="{oauth2:access_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. TrustframeworkExtensions.xml 파일을 저장합니다.

  4. 신뢰 당사자 정책 파일(예: SignUpOrSignIn.xml)을 열고 OutputClaim 요소를 TechnicalProfile 에 추가합니다.

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="idp_access_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  5. 정책 파일을 저장합니다.

정책 테스트

Azure AD B2C에서 애플리케이션을 테스트하는 경우 포함된 클레임을 검토할 수 있도록 Azure AD B2C 토큰이 https://jwt.ms에 반환되도록 하는 것이 유용할 수 있습니다.

파일 업로드

  1. Azure Portal에 로그인합니다.
  2. Azure AD B2C 테넌트가 포함된 디렉터리를 사용하고 있는지 확인합니다. 포털 도구 모음에서 디렉터리 + 구독 아이콘을 선택합니다.
  3. 포털 설정 | 디렉터리 + 구독 페이지의 디렉터리 이름 목록에서 Azure AD B2C 디렉터리를 찾은 다음, 전환 을 선택합니다.
  4. Azure Portal의 왼쪽 상단 모서리에서 모든 서비스 를 선택하고 Azure AD B2C 를 검색하여 선택합니다.
  5. ID 경험 프레임워크 를 선택합니다.
  6. 사용자 지정 정책 페이지에서 정책 업로드 를 클릭합니다.
  7. 정책이 있는 경우 덮어쓰기 를 선택한 후 TrustFrameworkExtensions.xml 파일을 찾아서 선택합니다.
  8. 업로드 를 선택합니다.
  9. 신뢰 당사자 파일(예: SignUpOrSignIn.xml)에 대해 5~7단계를 반복합니다.

정책 실행

  1. 변경한 정책을 엽니다. 예를 들어 B2C_1A_signup_signin입니다.

  2. 애플리케이션 은 이전에 등록한 애플리케이션을 선택합니다. 아래 예제에서 토큰을 보려면 회신 URL 에서 https://jwt.ms가 표시되어야 합니다.

  3. 지금 실행 을 선택합니다.

    다음 예제와 비슷한 내용이 표시됩니다.

    jwt.ms의 디코딩된 토큰(idp_access_decord 블록 강조 표시)

다음 단계

Azure AD B2C 토큰 개요에서 자세히 알아보세요.