중요합니다
2025년 5월 1일부터 새 고객을 위해 Azure AD B2C를 더 이상 구매할 수 없습니다. FAQ에서 자세히 알아보세요.
이 자습서에서는 Azure AD B2C(Azure Active Directory B2C) 인증을 전송 보안의 호스트된 암호 인증 솔루션과 통합하는 방법을 알아봅니다. 전송 보안은 신뢰할 수 있는 옴니 채널 인증을 위해 강력한 FIDO2(Fast Identity Online) 생체 인식 인증을 사용합니다. 이 솔루션은 사기, 피싱 및 자격 증명 재사용을 줄이면서 디바이스 및 채널에서 고객을 위한 원활한 로그인 환경을 보장합니다.
시나리오 설명
다음 아키텍처 다이어그램에서는 구현을 보여 줍니다.
- 사용자가 Azure AD B2C 로그인 페이지를 열고 로그인하거나 등록합니다.
- Azure AD B2C는 OIDC(OpenID Connect) 요청을 사용하여 사용자를 전송 보안으로 리디렉션합니다.
- 전송 보안은 앱이 필요 없는 FIDO2 생체 인식(예: 지문)을 사용하여 사용자를 인증합니다.
- 분산 인증 응답이 전송 보안에 반환됩니다.
- OIDC 응답은 Azure AD B2C로 전달됩니다.
- 확인 결과에 따라 사용자에게 애플리케이션에 대한 액세스 권한이 부여되거나 거부됩니다.
필수 조건
시작하려면 다음이 필요합니다.
- Microsoft Entra 구독입니다. 계정이 없는 경우 무료 계정을 가져옵니다.
- Entra 구독에 연결된 Azure AD B2C 테넌트입니다.
- Azure AD B2C 테넌트에 등록된 웹 애플리케이션입니다.
- Transmit Security 테넌트. transmitsecurity.com 이동합니다.
- Microsoft Entra 구독입니다. 계정이 없는 경우 무료 계정을 가져옵니다.
- Entra 구독에 연결된 Azure AD B2C 테넌트입니다.
- Azure AD B2C 테넌트에 등록된 웹 애플리케이션입니다.
- Azure AD B2C 사용자 지정 정책.
- Transmit Security 테넌트. transmitsecurity.com 이동합니다.
1단계: 전송 앱 만들기
전송 관리 포털에 로그인하고 애플리케이션을 만듭니다.
애플리케이션에서 애플리케이션 추가를 선택합니다.
다음 특성을 사용하여 애플리케이션을 구성합니다.
재산 설명 애플리케이션 이름 애플리케이션 이름 클라이언트 이름 클라이언트 이름 리디렉션 URI https://<your-B2C-tenant>.b2clogin.com/<your-B2C-tenant>.onmicrosoft.com/oauth2/authrespAzure AD B2C 테넌트 도메인(또는<your-B2C-tenant>사용자 지정 도메인)은 어디에 있나요<your-B2C-tenant>.b2clogin.com?추가를 선택합니다.
등록 시 클라이언트 ID 및 클라이언트 암호 가 표시됩니다. 나중에 사용할 값을 기록합니다.
2단계: 로그인 환경 구성
전송 관리 포털에서 사용자 인증 환경을 구성합니다.
인증을 선택한 다음, 환경 관리를 선택합니다.
드롭다운 메뉴에서 애플리케이션을 선택합니다.
다음 특성을 사용하여 애플리케이션을 구성합니다.
재산 설명 사용자 식별자 전자 메일 선택 기본 인증 방법 Passkey 선택 보조 인증 방법 WebAuthn QR 및 전자 메일 OTP만 사용하도록 설정 사용자 정보 선택 모든 기본 필드 삭제 저장을 선택합니다.
3단계: ID 공급자로 전송 추가
사용자가 전송 보안으로 로그인할 수 있도록 하려면 새 ID 공급자로 전송 보안을 구성합니다. Azure AD B2C에서 다음 단계를 수행합니다.
적어도 B2C IEF 정책 관리자로 Azure Portal 에 로그인합니다.
포털 도구 모음에서 디렉터리 + 구독을 선택합니다.
포털 설정 | 디렉터리 + 구독 페이지의 디렉터리 이름 목록에서 Azure AD B2C 디렉터리를 찾은 다음 스위치를 선택합니다.
Azure 서비스에서 AzureAD B2C를 선택하거나 추가 서비스를 선택하고 모든 서비스 검색 상자를 사용하여 Azure AD B2C를 검색합니다.
ID 공급자를 선택한 다음, 새 OpenID Connect 공급자를 선택합니다.
다음과 같이 공급자를 구성합니다.
재산 설명 이름 Transmit Security와 같은 이름 메타데이터 URL https://api.transmitsecurity.io/cis/oidc/.well-known/openid-configuration클라이언트 ID 전송에서 제공하는 클라이언트 ID 클라이언트 암호 전송에서 제공하는 클라이언트 암호 범위 openid email응답 형식 코드 응답 모드 양식_게시 표시 이름 email전자 메일 email저장을 선택합니다.
4단계: 사용자 흐름 만들기
이 시점에서 전송 보안 ID 공급자가 설정되었지만 로그인 페이지에서는 아직 사용할 수 없습니다. 사용자 흐름에 전송 보안 ID 공급자를 추가하려면 다음을 수행합니다.
- Azure AD B2C 테넌트에서 정책 아래에서 사용자 흐름을 선택합니다.
- 새 사용자 흐름을 선택합니다.
- 등록을 선택하고 사용자 흐름 유형을 로그인한 다음 만들기를 선택합니다.
- 사용자 흐름의 이름 (예: signupsignin)을 입력합니다.
-
ID 공급자에서:
- 로컬 계정의 경우 없음을 선택합니다.
- 사용자 지정 ID 공급자의 경우 전송 보안 공급자를 선택합니다.
- 만들기를 선택하여 사용자 흐름을 추가합니다.
5단계: 사용자 흐름 테스트
- Azure AD B2C 테넌트에서 사용자 흐름을 선택합니다.
- 만든 사용자 흐름(예: B2C_1_signupsignin)을 선택합니다.
-
사용자 흐름 실행을 선택합니다.
- 애플리케이션의 경우 등록된 웹 애플리케이션을 선택합니다.
-
회신 URL을 선택합니다
https://jwt.ms.
- 사용자 흐름 실행을 선택합니다.
- 브라우저가 전송의 로그인 페이지로 리디렉션됩니다.
- 로그인 흐름을 완료합니다. 계정 이메일을 입력하고 생체 인식(예: 지문)을 사용하여 인증합니다.
- 브라우저가 Azure AD B2C 토큰을 사용하여
https://jwt.ms로 리디렉션됩니다.
3단계: 정책 키 만들기
이전에 Azure AD B2C 테넌트에 기록한 전송 애플리케이션의 클라이언트 비밀을 저장해야 합니다.
Azure Portal에 로그인합니다.
포털 도구 모음에서 디렉터리 + 구독을 선택합니다.
포털 설정 | 디렉터리 + 구독 페이지의 디렉터리 이름 목록에서 Azure AD B2C 디렉터리를 찾은 다음 스위치를 선택합니다.
개요 페이지의 정책에서 ID 경험 프레임워크를 선택합니다.
정책 키, 추가를 차례로 선택합니다.
다음과 같이 정책 키를 구성합니다.
재산 설명 옵션 수동 이름 정책 키 이름(예: TransmitClientSecret) 비밀 전송에서 제공하는 클라이언트 암호 키 사용량 서명 만들기를 선택하여 정책 키를 추가합니다.
4단계: ID 공급자로 전송 추가
전송 보안을 사용하여 로그인을 사용하도록 설정하려면 Azure AD B2C가 엔드포인트를 통해 통신하는 클레임 공급자로 전송 보안을 정의합니다. 엔드포인트는 Azure AD B2C에서 디바이스에서 디지털 ID로 인증된 사용자를 확인하는 데 사용하는 클레임을 제공합니다.
정책의 확장 파일에서 ClaimsProviders 요소에 추가하여 전송 보안을 클레임 공급자로 정의할 수 있습니다.
GitHub에서 사용자 지정 정책 시작 팩을 가져온 다음, SocialAndLocalAccounts 시작 팩의 XML 파일을 Azure AD B2C 테넌트 이름으로 업데이트합니다.
.zip 파일을 다운로드 하거나 리포지토리를 복제합니다.
git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpackLocalAccounts 디렉터리의 파일에서 문자열
yourtenant을 Azure AD B2C 테넌트 이름으로 바꿉니다.
LocalAccounts/ TrustFrameworkExtensions.xml파일을 엽니다.ClaimsProviders 요소를 찾습니다. 표시되지 않으면 루트 요소 아래에 추가합니다.
다음 예제와 유사한 새 ClaimsProvider 를 추가합니다.
<ClaimsProvider> <Domain>api.transmitsecurity.io</Domain> <DisplayName>Transmit</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="TS-OpenIdConnect"> <DisplayName>Transmit</DisplayName> <Protocol Name="OpenIdConnect" /> <Metadata> <Item Key="METADATA">https://api.transmitsecurity.io/cis/oidc/.well-known/openid-configuration</Item> <!-- Update the Client ID below to the Transmit Security client ID --> <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item> <Item Key="response_types">code</Item> <Item Key="scope">openid email</Item> <Item Key="response_mode">form_post</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">false</Item> <Item Key="AccessTokenResponseFormat">json</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_TransmitClientSecret" /> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" /> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" /> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>전송 보안 클라이언트 ID를 사용하여 client_id 설정합니다.
client_secret 섹션을 만든 정책 키의 이름으로 업데이트합니다(예: B2C_1A_TransmitClientSecret).
<Key Id="client_secret" StorageReferenceId="B2C_1A_TransmitClientSecret" />저장을 선택합니다.
5단계: 사용자 경험 추가
이 시점에서 ID 공급자가 설정되었지만 로그인 페이지에서는 아직 사용할 수 없습니다. 사용자 지정 사용자 여정이 있는 경우 사용자 경험 단계에 전송 추가 단계를 계속 진행합니다. 그렇지 않으면 템플릿 사용자 경험 복제본을 만듭니다.
- 시작 팩에서 파일을 엽니다
LocalAccounts/ TrustFrameworkBase.xml. - 를 포함하는
Id=SignUpOrSignIn요소의 내용을 찾아 복사합니다. -
LocalAccounts/ TrustFrameworkExtensions.xml파일을 엽니다. - UserJourneys 요소를 찾습니다. 요소가 없으면 요소를 추가합니다.
- UserJourney 요소를 UserJourneys 요소의 자식으로 붙여넣습니다.
- 사용자 여정 ID 이름을 변경하기(예:
Id=TransmitSUSI)
6단계: 사용자 경험에 전송 추가
사용자 경험에 새 ID 공급자를 추가합니다.
- 사용자 여정에서
Type=CombinedSignInAndSignUp또는Type=ClaimsProviderSelection를 포함하는 오케스트레이션 단계 요소를 찾습니다. 일반적으로 첫 번째 오케스트레이션 단계입니다. ClaimsProviderSelections 요소에는 사용자가 로그인하는 ID 공급자 목록이 있습니다. 요소의 순서는 로그인 단추의 순서를 제어합니다. - ClaimsProviderSelection XML 요소를 추가합니다.
- TargetClaimsExchangeId 값을 친숙한 이름으로 설정합니다.
- ClaimsExchange 요소를 추가합니다.
- ID를 대상 클레임 교환 ID의 값으로 설정합니다.
- TechnicalProfileReferenceId 값을 만든 기술 프로필 ID로 업데이트합니다.
다음 XML은 ID 공급자와의 오케스트레이션 사용자 경험을 보여 줍니다.
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="TSIDExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="TSIDExchange" TechnicalProfileReferenceId="TS-OpenIdConnect" />
</ClaimsExchanges>
</OrchestrationStep>
7단계: 신뢰 당사자 정책 구성
신뢰 당사자 정책(예: SignUpSignIn.xml)은 Azure AD B2C가 실행하는 사용자 경험을 지정합니다. 신뢰 당사자 내에서 DefaultUserJourney 요소를 찾습니다. 사용자 여행 ID와 일치하도록 ReferenceId를 업데이트합니다. 여기에는 ID 공급자를 추가했습니다.
다음 예제에서는 TransmitSUSI 사용자 여정의 ReferenceId가 TransmitSUSI로 설정됩니다.
<RelyingParty>
<DefaultUserJourney ReferenceId="TransmitSUSI" />
<TechnicalProfile Id="TS-OpenIdConnect">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="identityProvider" />
<OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
8단계: 사용자 지정 정책 업로드
Azure AD B2C 테넌트에서 디렉터리를 사용하여 사용자 지정 정책을 업로드합니다.
- Azure Portal에 로그인합니다.
- 포털 도구 모음에서 디렉터리 + 구독을 선택합니다.
- 포털 설정 | 디렉터리 + 구독 페이지의 디렉터리 이름 목록에서 Azure AD B2C 디렉터리를 찾은 다음 스위치를 선택합니다.
- 정책에서 ID 환경 프레임워크를 선택합니다.
- 사용자 지정 정책 업로드를 선택한 다음, 업데이트된 파일을 다음 순서대로 업로드합니다.
- 기본 정책(예:
TrustFrameworkBase.xml - 지역화 정책(예:
TrustFrameworkLocalization.xml - 확장 정책(예:
TrustFrameworkExtensions.xml - 신뢰 당사자 정책(예:
SignUpOrSignIn.xml)
9단계: 사용자 지정 정책 테스트
Azure AD B2C 테넌트에서 디렉터리를 사용하여 사용자 지정 정책을 테스트합니다.
- Azure AD B2C 테넌트 및 정책에서 ID 경험 프레임워크를 선택합니다.
- 사용자 지정 정책에서 B2C_1A_signup_signin 선택합니다.
-
애플리케이션의 경우 등록한 웹 애플리케이션을 선택합니다.
회신 URL은 다음과 입니다
https://jwt.ms. - 지금 실행을 선택합니다.
- 브라우저가 전송의 로그인 페이지로 리디렉션됩니다.
- 로그인 흐름을 완료합니다. 계정 이메일을 입력하고 생체 인식(예: 지문)을 사용하여 인증합니다.
- 브라우저가 Azure AD B2C 토큰을 사용하여
https://jwt.ms로 리디렉션됩니다.
다음 단계
자세한 내용은 다음 문서를 검토하세요.