다음을 통해 공유


소셜 계정 클레임 변환

Azure AD B2C(Azure Active Directory B2C)에서 소셜 계정 ID는 alternativeSecurityIdCollection 클레임 유형의 alternativeSecurityIds 특성에 저장됩니다. alternativeSecurityIdCollection의 각 항목은 발급자(ID 공급자 이름, 예: facebook.com) 및 발급자의 고유한 사용자 식별자인 issuerUserId를 지정합니다.

"alternativeSecurityIds": [{
    "issuer": "google.com",
    "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"
  },
  {
    "issuer": "facebook.com",
    "issuerUserId": "MTIzNDU="
  }]

이 문서에서는 Azure AD B2C에서 ID 경험 프레임워크 스키마의 소셜 계정 클레임 변환을 사용하는 예를 제공합니다. 자세한 내용은 ClaimsTransformations를 참조하세요.

AddItemToAlternativeSecurityIdCollection

alternativeSecurityIdCollection 클레임에 AlternativeSecurityId를 추가합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 메모
InputClaim 요소 문자열 출력 클레임에 추가할 클레임입니다.
InputClaim collection alternativeSecurityIdCollection 정책에 사용 가능한 경우 클레임 변환에서 사용하는 클레임입니다. 제공된 경우 클레임 변환은 컬렉션의 끝에 item을 추가합니다.
OutputClaim collection alternativeSecurityIdCollection 이 클레임 변환이 호출된 후에 생성되는 클레임입니다. 입력 collectionitem의 항목을 둘 다 포함하는 새 컬렉션입니다.

AddItemToAlternativeSecurityIdCollection의 예

다음 예제는 새 소셜 ID를 기존 계정에 연결합니다. 새 소셜 ID를 연결하려면

  1. AAD-UserReadUsingAlternativeSecurityIdAAD-UserReadUsingObjectId 기술 프로필에서 사용자의 alternativeSecurityIds 클레임을 출력합니다.
  2. 사용자에게 이 사용자와 연결되지 않은 ID 공급자 중 하나로 로그인하도록 요청합니다.
  3. CreateAlternativeSecurityId 클레임 변환을 사용하여 이름이 AlternativeSecurityId2인 새 alternativeSecurityId 클레임 유형을 만듭니다.
  4. AddItemToAlternativeSecurityIdCollection 클레임 변환을 호출하여 AlternativeSecurityId2 클레임을 기존 AlternativeSecurityIds 클레임에 추가합니다.
  5. alternativeSecurityIds 클레임을 사용자 계정에 저장합니다.
<ClaimsTransformation Id="AddAnotherAlternativeSecurityId" TransformationMethod="AddItemToAlternativeSecurityIdCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="AlternativeSecurityId2" TransformationClaimType="item" />
    <InputClaim ClaimTypeReferenceId="AlternativeSecurityIds" TransformationClaimType="collection" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="AlternativeSecurityIds" TransformationClaimType="collection" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:

    • 항목:

      {
          "issuer": "facebook.com",
          "issuerUserId": "MTIzNDU="
      }
      
    • 컬렉션:

      [
          {
              "issuer": "live.com",
              "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"
          }
      ]
      
  • 출력 클레임:

    • 컬렉션:

      [
          {
              "issuer": "live.com",
              "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"
          },
          {
              "issuer": "facebook.com",
              "issuerUserId": "MTIzNDU="
          }
      ]
      

CreateAlternativeSecurityId

Microsoft Entra ID 호출에서 사용할 수 있는, 사용자의 alternativeSecurityId 속성에 대한 JSON 표현을 만듭니다. 이 클레임 변환의 라이브 데모를 확인하세요. 자세한 내용은 AlternativeSecurityId 스키마를 참조하세요.

요소 TransformationClaimType 데이터 형식 메모
InputClaim key 문자열 소셜 ID 공급자가 사용하는 고유한 사용자 식별자를 지정하는 클레임입니다.
InputClaim identityProvider 문자열 소셜 계정 ID 공급자 이름(예: facebook.com)을 지정하는 클레임입니다.
OutputClaim alternativeSecurityId 문자열 이 클레임 변환이 호출된 후에 생성되는 클레임입니다. 소셜 계정 사용자의 ID에 대한 정보를 포함합니다. issueridentityProvider 클레임의 값입니다. issuerUserId는 base64 형식인 key 클레임의 값입니다.

CreateAlternativeSecurityId의 예

이 클레임 변환을 사용하여 alternativeSecurityId 클레임을 생성할 수 있습니다. 모든 소셜 ID 공급자 기술 프로필(예: Facebook-OAUTH)에서 사용됩니다. 다음 클레임 변환은 사용자 소셜 계정 ID와 ID 공급자 이름을 수신합니다. 이 기술 프로필의 출력은 Microsoft Entra 디렉터리 서비스에서 사용할 수 있는 JSON 문자열 형식입니다.

<ClaimsTransformation Id="CreateAlternativeSecurityId" TransformationMethod="CreateAlternativeSecurityId">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="issuerUserId" TransformationClaimType="key" />
    <InputClaim ClaimTypeReferenceId="identityProvider" TransformationClaimType="identityProvider" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="alternativeSecurityId" TransformationClaimType="alternativeSecurityId" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • key: 12334
    • identityProvider: Facebook.com
  • 출력 클레임:
    • alternativeSecurityId: { "issuer": "facebook.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"}

GetIdentityProvidersFromAlternativeSecurityIdCollectionTransformation

alternativeSecurityIdCollection 클레임의 발급자 목록을 새 stringCollection 클레임에 반환합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 메모
InputClaim alternativeSecurityIdCollection alternativeSecurityIdCollection ID 공급자(발급자) 목록을 가져오는 데 사용할 클레임입니다.
OutputClaim identityProvidersCollection stringCollection 이 클레임 변환이 호출된 후에 생성되는 클레임입니다. 입력 클레임과 연결된 ID 공급자의 목록입니다.

GetIdentityProvidersFromAlternativeSecurityIdCollectionTransformation의 예

다음 클레임 변환은 사용자 alternativeSecurityIds 클레임을 읽고 해당 계정과 연결된 ID 공급자 이름 목록을 추출합니다. 출력 identityProvidersCollection을 사용하여 계정과 연결된 ID 공급자 목록을 사용자에게 표시합니다. 또는 ID 공급자 선택 페이지에서 출력 identityProvidersCollection 클레임을 기준으로 ID 공급자 목록을 필터링합니다. 따라서 사용자는 아직 계정과 연결되지 않은 새 소셜 ID를 연결하도록 선택할 수 있습니다.

<ClaimsTransformation Id="ExtractIdentityProviders" TransformationMethod="GetIdentityProvidersFromAlternativeSecurityIdCollectionTransformation">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="alternativeSecurityIds" TransformationClaimType="alternativeSecurityIdCollection" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="identityProviders" TransformationClaimType="identityProvidersCollection" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:

    • alternativeSecurityIdCollection:

      [
          {
              "issuer": "google.com",
              "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"
          },
          {
              "issuer": "facebook.com",
              "issuerUserId": "MTIzNDU="
          }
      ]
      
  • 출력 클레임:

    • identityProvidersCollection: [ "facebook.com", "google.com" ]

RemoveAlternativeSecurityIdByIdentityProvider

alternativeSecurityIdCollection 클레임에서 AlternativeSecurityId를 제거합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 메모
InputClaim identityProvider 문자열 컬렉션에서 제거할 ID 공급자 이름을 포함하는 클레임입니다.
InputClaim collection alternativeSecurityIdCollection 클레임 변환에 사용되는 클레임입니다. 클레임 변환은 컬렉션에서 identityProvider를 제거합니다.
OutputClaim collection alternativeSecurityIdCollection 이 클레임 변환이 호출된 후에 생성되는 클레임입니다. 컬렉션에서 identityProvider가 제거된 후의 새 컬렉션입니다.

RemoveAlternativeSecurityIdByIdentityProvider의 예

다음 예제는 기존 계정과 소셜 ID 중 하나의 연결을 해제합니다. 소셜 ID의 연결을 해제하려면

  1. AAD-UserReadUsingAlternativeSecurityIdAAD-UserReadUsingObjectId 기술 프로필에서 사용자의 alternativeSecurityIds 클레임을 출력합니다.
  2. 사용자에게 이 사용자와 연결된 ID 공급자 목록에서 제거할 소셜 계정을 선택하도록 요청합니다.
  3. ID 공급자 이름을 사용하여 선택한 소셜 ID를 제거한 RemoveAlternativeSecurityIdByIdentityProvider 클레임 변환을 호출하는 클레임 변환 기술 프로필을 호출합니다.
  4. alternativeSecurityIds 클레임을 사용자 계정에 저장합니다.
<ClaimsTransformation Id="RemoveAlternativeSecurityIdByIdentityProvider" TransformationMethod="RemoveAlternativeSecurityIdByIdentityProvider">
    <InputClaims>
        <InputClaim ClaimTypeReferenceId="secondIdentityProvider" TransformationClaimType="identityProvider" />
        <InputClaim ClaimTypeReferenceId="AlternativeSecurityIds" TransformationClaimType="collection" />
    </InputClaims>
    <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="AlternativeSecurityIds" TransformationClaimType="collection" />
    </OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
  • 입력 클레임:
    • identityProvider: facebook.com
    • collection: [ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" }, { "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" } ]
  • 출력 클레임:
    • collection: [ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" } ]

다음 단계