중요합니다
2025년 5월 1일부터 새 고객을 위해 Azure AD B2C를 더 이상 구매할 수 없습니다. FAQ에서 자세히 알아보세요.
다음 섹션에서는 깔때기 기반 오케스트레이션에 대한 개념 증명 구현을 만드는 방법을 설명합니다. 완성된 Azure AD B2C(Azure Active Directory B2C) 사용자 지정 정책은 여기에서 찾을 수 있습니다.
깔때기 기반 접근 방식
다음 블록 다이어그램은 개념 증명을 보여줍니다. 이 지침에서는 Azure AD B2C 테넌트를 구성하는 방법을 보여 줍니다. 외부 API 계층 및 지역 분산 조회 테이블은 이 가이드의 일부로 포함되지 않습니다.
깔때기 테넌트
지역에 대한 client_id 매핑을 구성하고 조회 클레임 변환을 사용하여 모방합니다.
<ClaimsTransformation Id="ClientIdToRegion" TransformationMethod="LookupValue"> <InputClaims> <InputClaim ClaimTypeReferenceId="regionFromURL" TransformationClaimType="inputParameterId" /> </InputClaims> <InputParameters> <InputParameter Id="0dd7579e-fb90-4178-bc36-77a3fe658683" DataType="string" Value="APAC" /> <InputParameter Id="7e7f5403-b3d7-41cc-85fc-130ab6fd9361" DataType="string" Value="NOAM" /> <InputParameter Id="4ea5d578-9c51-4091-96d1-58e15e98e9b9" DataType="string" Value="EMEA" /> <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="false" /> </InputParameters> <OutputClaims> <OutputClaim ClaimTypeReferenceId="sendToRegion" TransformationClaimType="outputClaim" /> </OutputClaims> </ClaimsTransformation>
client_id – 지역 매핑에 따라 페더레이션을 사용하도록 구성합니다.
<TechnicalProfile Id="HRDLogic"> <DisplayName>ParseDomainHint</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Metadata> <Item Key="IncludeClaimResolvingInClaimsHandling">true</Item> </Metadata> <InputClaims> <InputClaim ClaimTypeReferenceId="regionFromURL" DefaultValue="{OIDC:ClientId}" AlwaysUseDefaultValue="true" /> </InputClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="sendToRegion" /> <OutputClaim ClaimTypeReferenceId="identityProviders" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="ClientIdToRegion" /> <OutputClaimsTransformation ReferenceId="CreateidentityProvidersCollection" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" /> </TechnicalProfile>
지역 테넌트
퍼널 테넌트와 연합을 설정하기 위해 애플리케이션 등록을 생성합니다.
로그인
전역 조회 테이블을 통해 지역 조회에 대한 식별자를 구성하고 조회 클레임 변환 을 사용하여 에뮬레이트합니다.
<ClaimsTransformation Id="UserIdToRegion" TransformationMethod="LookupValue"> <InputClaims> <InputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="inputParameterId" /> </InputClaims> <InputParameters> <InputParameter Id="bob@noam.com" DataType="string" Value="NOAM" /> <InputParameter Id="bob@noam1.com" DataType="string" Value="NOAM" /> <InputParameter Id="john@emea.com" DataType="string" Value="EMEA" /> <InputParameter Id="john@emea1.com" DataType="string" Value="EMEA" /> <InputParameter Id="alice@apac.com" DataType="string" Value="APAC" /> <InputParameter Id="alice@apac1.com" DataType="string" Value="APAC" /> <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="false" /> </InputParameters> <OutputClaims> <OutputClaim ClaimTypeReferenceId="userLookupRegion" TransformationClaimType="outputClaim" /> </OutputClaims> </ClaimsTransformation>
이동 중인 사용자에 대한 API 기반 인증을 구성하고 MS Graph API 호출을 구성하여 사용자 프로필을 가져옵니다.
자격 증명을 확인하고 해당 테넌트에서 MS Graph API 토큰을 가져옵니다. 각 지역 테넌트에 네이티브 앱 등록을 통해 MS Graph API에 대한 위임된 권한 user.read를 설정합니다.
<TechnicalProfile Id="REST-login-NonInteractive-APAC"> <DisplayName>non interactive authentication to APAC</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Metadata> <Item Key="ServiceUrl">https://login.microsoftonline.com/b2capac.onmicrosoft.com/oauth2/v2.0/token</Item> <Item Key="AuthenticationType">None</Item> <Item Key="SendClaimsIn">Form</Item> <Item Key="AllowInsecureAuthInProduction">true</Item> </Metadata> <InputClaims> <InputClaim ClaimTypeReferenceId="apac_client_id" PartnerClaimType="client_id" DefaultValue="00001111-aaaa-2222-bbbb-3333cccc4444" /> <InputClaim ClaimTypeReferenceId="ropc_grant_type" PartnerClaimType="grant_type" DefaultValue="password" /> <InputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="username" /> <InputClaim ClaimTypeReferenceId="password" /> <InputClaim ClaimTypeReferenceId="scope" DefaultValue="https://graph.microsoft.com/.default" AlwaysUseDefaultValue="true" /> <InputClaim ClaimTypeReferenceId="nca" PartnerClaimType="nca" DefaultValue="1" /> </InputClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="bearerToken" PartnerClaimType="access_token" /> </OutputClaims> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" /> </TechnicalProfile>
여행 사용자에 대한 MS Graph API를 통해 프로필을 읽습니다.
<TechnicalProfile Id="Azure AD-Read-User-MSGraph"> <DisplayName>revoke my refresh token</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Metadata> <Item Key="ServiceUrl">https://graph.microsoft.com/beta/me</Item> <Item Key="AuthenticationType">Bearer</Item> <Item Key="UseClaimAsBearerToken">bearerToken</Item> <Item Key="SendClaimsIn">Url</Item> <Item Key="DebugMode">true</Item> </Metadata> <InputClaims> <InputClaim ClaimTypeReferenceId="bearerToken" /> </InputClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="id" /> <OutputClaim ClaimTypeReferenceId="givenName" /> <OutputClaim ClaimTypeReferenceId="surName" /> <OutputClaim ClaimTypeReferenceId="displayName" /> <OutputClaim ClaimTypeReferenceId="userPrincipalName" PartnerClaimType="upn" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" /> </OutputClaims> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" /> </TechnicalProfile>
등록하세요
전역 조회 테이블에 사용자 영역을 씁니다.
비고
하드 코딩된 조회 테이블로 인해 설정이 없습니다.
암호 재설정
전역 조회 테이블을 통해 지역 조회에 대한 식별자를 구성합니다.
비고
하드 코딩된 조회 테이블로 인해 설정이 없습니다.
REST API 호출을 통해 테넌트 간 암호 재설정을 구성합니다.
비고
서비스 주체에 적용된 client_credential 인증 및 사용자 관리자 역할을 사용하여 API를 조정해야 합니다.