다음을 통해 공유


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

중요합니다

2025년 5월 1일부터 새 고객을 위해 Azure AD B2C를 더 이상 구매할 수 없습니다. FAQ에서 자세히 알아보세요.

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

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

Azure AD B2C는 FacebookGoogle을 포함한 OAuth 2.0 ID 공급자의 액세스 토큰 전달을 지원합니다. 다른 모든 ID 공급자의 경우 클레임이 비어 반환됩니다.

Azure AD B2C는 OAuth 2.0OpenID Connect ID 공급자의 액세스 토큰 전달을 지원합니다. 다른 모든 ID 공급자의 경우 클레임이 비어 반환됩니다. 자세한 내용은 ID 공급자 페더레이션 라이브 데모를 확인하세요.

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

ID 공급자가 흐름을 통과합니다.

필수 조건

클레임을 활성화하다

  1. Azure AD B2C 테넌트의 외부 ID 사용자 흐름 관리자Azure Portal에 로그인합니다.

  2. 여러 테넌트에 액세스할 수 있는 경우 상단 메뉴의 설정 아이콘을 선택하여 디렉터리 + 구독 메뉴에서 Azure AD B2C 테넌트로 전환합니다.

  3. Azure Portal의 왼쪽 위 모서리에 있는 모든 서비스를 선택하고 Azure AD B2C를 검색하여 선택합니다.

  4. 사용자 흐름(정책)을 선택한 다음 사용자 흐름을 선택합니다. 예를 들어 B2C_1_signupsignin1.

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

  6. ID 공급자 액세스 토큰 클레임을 사용하도록 설정합니다.

    ID 공급자 액세스 토큰 클레임 활성화

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

사용자 흐름 테스트

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

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

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

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

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

    jwt.ms에서 디코딩된 토큰으로, idp_access_token 블록이 강조되어 있습니다

클레임 요소 추가

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

    <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 ID 공급자의 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같은 신뢰 당사자 정책 파일을 열고 TechnicalProfileOutputClaim 요소를 추가합니다.

    <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 Portal의 왼쪽 상단 모서리에서 모든 서비스를 선택하고 Azure AD B2C를 검색하여 선택합니다.
  4. ID 경험 프레임워크를 선택합니다.
  5. 사용자 지정 정책 페이지에서 정책 업로드를 클릭합니다.
  6. 정책 덮어쓰기(있는 경우)를 선택한 다음 ,TrustframeworkExtensions.xml 파일을 검색하여 선택합니다.
  7. 업로드선택합니다.
  8. 신뢰 당사자 파일(예: SignUpOrSignIn.xml)에 대해 5~7단계를 반복합니다.

정책 실행

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

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

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

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

    jwt.ms에서 디코딩된 토큰으로, idp_access_token 블록이 강조되어 있습니다

IDP 새로 고침 토큰 전달(선택 사항)

ID 공급자가 반환하는 액세스 토큰은 짧은 기간 동안 유효합니다. 일부 ID 공급자는 액세스 토큰과 함께 새로 고침 토큰을 발급합니다. 클라이언트 애플리케이션은 필요할 때 ID 공급자의 새로 고침 토큰을 새 액세스 토큰으로 교환할 수 있습니다.

Azure AD B2C 사용자 지정 정책은 Facebook, GoogleGitHub를 포함하는 OAuth 2.0 ID 공급자의 새로 고침 토큰 전달을 지원합니다.

ID 공급자의 새로 고침 토큰을 전달하려면 다음 단계를 수행합니다.

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

    <ClaimType Id="identityProviderRefreshToken">
        <DisplayName>Identity provider refresh token</DisplayName>
        <DataType>string</DataType>
    </ClaimType>
    
  2. 새로 고침 토큰을 원하는 각 OAuth 2.0 ID 공급자의 TechnicalProfile 요소에 OutputClaim 요소를 추가합니다. 다음 예제에서는 Facebook 기술 프로필에 추가된 요소를 보여줍니다.

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="{oauth2:refresh_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. 일부 ID 공급자는 ID 공급자의 기술 프로필에 메타데이터 또는 범위를 포함해야 합니다.

    • Google ID 제공자를 위해 access_typeprompt의 두 클레임 유형을 추가하십시오. 그런 다음 ID 공급자의 기술 프로필에 다음 입력 클레임을 추가합니다.

      <InputClaims>
          <InputClaim ClaimTypeReferenceId="access_type" PartnerClaimType="access_type" DefaultValue="offline" AlwaysUseDefaultValue="true" />
      
          <!-- The refresh_token is return only on the first authorization for a given user. Subsequent authorization request doesn't return the refresh_token.
              To fix this issue we add the prompt=consent query string parameter to the authorization request-->
          <InputClaim ClaimTypeReferenceId="prompt" PartnerClaimType="prompt" DefaultValue="consent" AlwaysUseDefaultValue="true" />
      </InputClaims>
      
    • 다른 ID 공급자는 새로 고침 토큰을 발급하는 다른 메서드를 가질 수 있습니다. ID 공급자의 대상을 따르고 ID 공급자의 기술 프로필에 필요한 요소를 추가합니다.

  4. TrustframeworkExtensions.xml 파일에 변경한 내용을 저장합니다.

  5. SignUpOrSignIn.xml같은 신뢰 당사자 정책 파일을 열고 TechnicalProfileOutputClaim 요소를 추가합니다.

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="idp_refresh_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  6. 정책의 신뢰 당사자 정책 파일에 변경한 내용을 저장합니다.

  7. TrustframeworkExtensions.xml 파일을 업로드한 다음 신뢰 당사자 정책 파일을 업로드합니다.

  8. 정책 테스트

다음 단계

Azure AD B2C 토큰 개요에 대해 자세히 알아봅니다.