Share via


암호 없는 인증을 위해 Azure Active Directory B2C를 사용하여 전송 보안 구성

이 자습서에서는 Azure AD B2C(Azure Active Directory B2C) 인증을 Transmit Security 호스트 암호 없는 인증 솔루션과 통합하는 방법을 알아봅니다. Transmit Security는 신뢰할 수 있는 옴니채널 인증을 위해 강력한 FIDO2(Fast Identity Online) 생체 인식 인증을 사용합니다. 이 솔루션은 사기, 피싱 및 자격 증명 재사용을 줄이는 동시에 디바이스와 채널 전반에 걸쳐 고객의 원활한 로그인 환경을 보장합니다.

시나리오 설명

다음 아키텍처 다이어그램에서는 구현을 보여줍니다.

Diagram of the Transmit and Azure AD B2C architecture.

  1. 사용자가 Azure AD B2C 로그인 페이지를 열고 로그인하거나 등록합니다.
  2. Azure AD B2C에서 OIDC(OpenID Connect) 요청을 사용하여 사용자를 Transmit Security로 리디렉션합니다.
  3. Transmit Security는 지문과 같은 앱이 실행되지 않는 FIDO2 생체 인식을 사용하여 사용자를 인증합니다.
  4. 분산 인증 응답이 Transmit Security로 반환됩니다.
  5. OIDC 응답은 Azure AD B2C로 전달됩니다.
  6. 확인 결과에 따라 사용자에게 애플리케이션에 대한 액세스 권한이 부여되거나 거부됩니다.

필수 조건

시작하려면 다음이 필요합니다.

1단계: Transmit 앱 만들기

Transmit 관리 포털에 로그인하고 애플리케이션을 만듭니다.

  1. 애플리케이션에서 애플리케이션 추가를 선택합니다.

  2. 다음 특성으로 애플리케이션을 구성합니다.

    속성 설명
    애플리케이션 이름 애플리케이션 이름
    클라이언트 이름 클라이언트 이름
    리디렉션 URI https://<your-B2C-tenant>.b2clogin.com/<your-B2C-tenant>.onmicrosoft.com/oauth2/authresp. 여기서 <your-B2C-tenant>는 Azure AD B2C 테넌트 도메인 이름이거나 <your-B2C-tenant>.b2clogin.com은 사용자 지정 도메인입니다.
  3. 추가를 선택합니다.

  4. 등록하면 클라이언트 ID클라이언트 암호가 표시됩니다. 나중에 사용할 값을 기록해 두세요.

2단계: 로그인 환경 구성

Transmit 관리 포털에서 사용자 인증 환경을 구성합니다.

  1. 인증을 선택한 다음, 환경 관리를 선택합니다.

  2. 드롭다운 메뉴에서 애플리케이션을 선택합니다.

  3. 다음 특성으로 애플리케이션을 구성합니다.

    속성 설명
    사용자 ID 이메일을 선택합니다.
    기본 인증 방법 Passkey를 선택합니다.
    보조 인증 방법 WebAuthn QR이메일 OTP만 사용하도록 설정합니다.
    사용자 정보 선택 모든 기본 필드를 삭제합니다.
  4. 저장을 선택합니다.

3단계: ID 공급자로 Transmit 추가

사용자가 Transmit Security로 로그인하도록 설정하려면 새 ID 공급자로 Transmit Security를 구성합니다. Azure AD B2C에서 다음 단계를 수행합니다.

  1. 전역 관리자 권한으로 Azure Portal에 로그인합니다.

  2. 포털 도구 모음에서 디렉터리 + 구독을 선택합니다.

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

  4. Azure 서비스에서 Azure AD B2C를 선택합니다. 또는 추가 서비스를 선택하고 모든 서비스 검색 상자를 사용하여 Azure AD B2C를 검색합니다.

  5. ID 공급자를 선택한 다음, 새 OpenID Connect 공급자를 선택합니다.

  6. 다음과 같이 공급자를 등록합니다.

    속성 설명
    이름 이름(예: Transmit Security)
    메타데이터 URL https://api.transmitsecurity.io/cis/oidc/.well-known/openid-configuration
    클라이언트 ID Transmit에서 제공하는 클라이언트 ID
    클라이언트 암호 Transmit에서 제공하는 클라이언트 암호
    범위 openid email
    응답 형식 code
    응답 모드 form_post
    표시 이름 email
    Email email
  7. 저장을 선택합니다.

4단계: 사용자 흐름 만들기

현재 Transmit Security ID 공급자는 설정되었지만 아직 로그인 페이지에서 이 공급자를 사용할 수 없습니다. Transmit Security ID 공급자를 사용자 흐름에 추가하려면 다음을 수행합니다.

  1. Azure AD B2C 테넌트에서, 정책 아래 사용자 흐름을 선택합니다.
  2. 새 사용자 흐름을 선택합니다.
  3. 등록 및 로그인 사용자 흐름 형식을 선택한 다음, 만들기를 선택합니다.
  4. 사용자 흐름에 사용할 이름(예: signupsignin)을 입력합니다.
  5. ID 공급자에서:
    • 로컬 계정으로 없음을 선택합니다.
    • 사용자 지정 ID 공급자에 Transmit Security 공급자를 선택합니다.
  6. 만들기를 선택하여 사용자 흐름을 추가합니다.

5단계: 사용자 흐름 테스트

  1. Azure AD B2C 테넌트에서 사용자 흐름을 선택합니다.
  2. B2C_1_signupsignin과 같이 만들어진 사용자 흐름을 선택합니다.
  3. 사용자 흐름 실행을 선택합니다.
    • 애플리케이션에 등록한 웹 애플리케이션을 선택합니다.
    • 회신 URLhttps://jwt.ms를 선택합니다.
  4. 사용자 흐름 실행을 선택합니다.
  5. 브라우저가 Transmit 로그인 페이지로 리디렉션됩니다.
  6. 로그인 흐름을 완료합니다. 계정 이메일을 입력하고 생체 인식(예: 지문)을 사용하여 인증합니다.
  7. 브라우저는 Azure AD B2C 토큰을 사용하여 https://jwt.ms로 리디렉션됩니다.

3단계: 정책 키 만들기

이전에 Azure AD B2C 테넌트에 기록한 Transmit 애플리케이션의 클라이언트 암호를 저장해야 합니다.

  1. Azure Portal에 로그인합니다.

  2. 포털 도구 모음에서 디렉터리 + 구독을 선택합니다.

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

  4. 개요 페이지의 정책에서 Identity Experience Framework를 선택합니다.

  5. 정책 키, 추가를 차례로 선택합니다.

  6. 다음과 같이 정책 키를 구성합니다.

    속성 설명
    Options 수동
    이름 정책 키 이름(예: TransmitClientSecret)
    비밀 Transmit에서 제공하는 클라이언트 암호
    키 사용 서명
  7. 만들기를 선택하여 정책 키를 추가합니다.

4단계: ID 공급자로 Transmit 추가

Transmit Security를 사용하여 로그인하도록 설정하려면 Transmit Security를 Azure AD B2C가 엔드포인트를 통해 통신하는 클레임 공급자로 정의합니다. 엔드포인트는 Azure AD B2C에서 디바이스의 디지털 ID로 인증된 사용자를 확인하는 데 사용되는 클레임을 제공합니다.

정책 확장 파일의 ClaimsProviders 요소에 Transmit Security를 추가하여 클레임 공급자로 정의할 수 있습니다.

  1. GitHub에서 사용자 지정 정책 시작 팩을 가져온 다음, Azure AD B2C 테넌트 이름으로 SocialAndLocalAccounts 시작 팩의 XML 파일을 업데이트합니다.

    1. .zip 파일을 다운로드하거나 리포지토리를 복제합니다.

      git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
      
    2. LocalAccounts 디렉터리의 파일에서 문자열 yourtenant를 Azure AD B2C 테넌트 이름으로 바꿉니다.

  2. LocalAccounts/ TrustFrameworkExtensions.xml 파일을 엽니다.

  3. ClaimsProviders 요소를 찾습니다. 표시되지 않으면 루트 요소 아래에 추가합니다.

  4. 다음 예제와 유사한 새 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">00000000-0000-0000-0000-000000000000</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>    
    
  5. Transmit Security 클라이언트 ID를 사용하여 client_id를 설정합니다.

  6. 만든 정책 키의 이름(예: B2C_1A_TransmitClientSecret)으로 client_secret 섹션을 업데이트합니다.

    <Key Id="client_secret" StorageReferenceId="B2C_1A_TransmitClientSecret" />
    
  7. 저장을 선택합니다.

5단계: 사용자 경험 추가

현재 ID 공급자가 설정되었지만 아직 이 공급자를 로그인 페이지에서 사용할 수 없습니다. 사용자 지정 사용자 경험이 있는 경우 사용자 경험에 Transmit 추가 단계로 계속 진행합니다. 그렇지 않으면 템플릿 사용자 경험 복제본을 만듭니다.

  1. 시작 팩에서 LocalAccounts/ TrustFrameworkBase.xml 파일을 엽니다.
  2. Id=SignUpOrSignIn을 포함하는 UserJourney 요소의 콘텐츠를 찾아 복사합니다.
  3. LocalAccounts/ TrustFrameworkExtensions.xml 파일을 엽니다.
  4. UserJourneys 요소를 찾습니다. 요소가 없으면 추가합니다.
  5. UserJourney 요소를 UserJourneys 요소의 자식 요소로 붙여넣습니다.
  6. 사용자 경험 ID 이름을 바꿉니다(예: Id=TransmitSUSI).

6단계: 사용자 경험에 Transmit 추가

사용자 경험에 새 ID 공급자를 추가합니다.

  1. 사용자 경험의 Type=CombinedSignInAndSignUp 또는 Type=ClaimsProviderSelection을 포함하는 오케스트레이션 단계 요소를 찾습니다. 일반적으로 첫 번째 오케스트레이션 단계입니다. ClaimsProviderSelections 요소에는 사용자가 로그인하는 ID 공급자 목록이 있습니다. 요소의 순서는 로그인 단추의 순서를 제어합니다.
  2. ClaimsProviderSelection XML 요소를 추가합니다.
  3. TargetClaimsExchangeId의 값을 친숙한 이름으로 설정합니다.
  4. ClaimsExchange 요소를 추가합니다.
  5. Id를 대상 클레임 교환 ID 값으로 설정합니다.
  6. 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 공급자를 추가한 사용자 경험 ID와 일치하도록 ReferenceId를 업데이트합니다.

다음 예제에서는 TransmitSUSI 사용자 경험에 대해 ReferenceIdTransmitSUSI으로 설정됩니다.

  <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 테넌트에서 디렉터리를 사용하여 사용자 지정 정책을 업로드합니다.

  1. Azure Portal에 로그인합니다.
  2. 포털 도구 모음에서 디렉터리 + 구독을 선택합니다.
  3. 포털 설정 | 디렉터리 + 구독 페이지의 디렉터리 이름 목록에서 Azure AD B2C 디렉터리를 찾은 다음, 전환을 선택합니다.
  4. 정책에서 Identity Experience Framework를 선택합니다.
  5. 사용자 지정 정책 업로드를 선택한 다음, 다음 순서에 따라 파일을 업로드합니다.
  • 기본 정책(예: TrustFrameworkBase.xml)
  • 지역화 정책(예: TrustFrameworkLocalization.xml)
  • 확장 정책(예: TrustFrameworkExtensions.xml)
  • 신뢰 당사자 정책(예: SignUpOrSignIn.xml)

9단계: 사용자 지정 정책 테스트

Azure AD B2C 테넌트에서 디렉터리를 사용하여 사용자 지정 정책을 테스트합니다.

  1. Azure AD B2C 테넌트를 열고 정책에서 Identity Experience Framework를 선택합니다.
  2. 사용자 지정 정책에서 B2C_1A_signup_signin을 선택합니다.
  3. 애플리케이션에 대해 등록한 웹 애플리케이션을 선택합니다. 회신 URLhttps://jwt.ms입니다.
  4. 지금 실행을 선택합니다.
  5. 브라우저가 Transmit 로그인 페이지로 리디렉션됩니다.
  6. 로그인 흐름을 완료합니다. 계정 이메일을 입력하고 생체 인식(예: 지문)을 사용하여 인증합니다.
  7. 브라우저는 Azure AD B2C 토큰을 사용하여 https://jwt.ms로 리디렉션됩니다.

다음 단계

자세한 내용은 다음 문서를 참조하세요: