다음을 통해 공유


자습서: Azure Active Directory B2C로 IDEMIA Mobile ID 구성

시작하기 전에

Azure AD B2C(Azure Active Directory B2C)에는 애플리케이션과 사용자의 상호 작용을 정의하는 두 가지 방법(미리 정의된 사용자 흐름 또는 구성 가능한 사용자 지정 정책)이 있습니다. 사용자 흐름 및 사용자 지정 정책 비교를 참조하세요.

Azure AD B2C를 IDEMIA 모바일 ID와 통합

IDEMIA는 얼굴 ID 및 지문과 같은 생체 인식 인증 서비스를 제공하여 사기 및 자격 증명 재사용을 줄입니다. 모바일 ID를 사용하면 시민은 실제 ID를 보완하는 신뢰할 수 있는 정부 발급 디지털 ID의 이점을 누릴 수 있습니다. 모바일 ID는 자체 선택한 PIN, 터치 ID 또는 얼굴 ID를 사용하여 ID를 확인합니다. 시민은 트랜잭션에 필요한 정보를 공유함으로써 신분을 제어합니다. 많은 DMV(자동차 관련 부처)에서 모바일 ID를 사용합니다.

자세히 알아보려면 idemia.com(IDEMIA)으로 이동합니다.

시나리오 설명

모바일 ID 통합에는 다음 구성 요소가 포함됩니다.

  • Azure AD B2C – 사용자 자격 증명을 확인하는 권한 부여 서버
    • IdP(ID 공급자)라고도 합니다.
  • IDEMIA 모바일 ID - Azure AD B2C 외부 공급자로 구성된 OIDC(OpenID Connect) 공급자
  • IDEMIA 모바일 ID 애플리케이션 - 휴대폰의 앱에 있는 디지털 버전의 운전면허증 또는 국가 발급 신분증

모바일 ID는 DMV가 개인 ID를 확인하는 데 사용하는 휴대용 모바일 ID 토큰인 디지털 신분증입니다. 서명된 디지털 ID는 Edge의 ID로 사용자 휴대폰에 저장됩니다. 서명된 자격 증명은 나이 증명, 고객의 재무 정보, 계정 액세스 등과 같은 ID 검증 서비스에 쉽게 액세스할 수 있습니다.

다음 다이어그램은 모바일 ID를 사용한 등록 및 로그인 사용자 흐름을 보여 줍니다.

Diagram of the sign-up and sign-in user flows with Mobile ID.

  1. 사용자는 디바이스 및 모바일 ID로 Azure AD B2C 로그인 페이지(회신 당사자)를 방문하여 트랜잭션을 수행합니다.
  2. Azure AD B2C는 ID 확인을 수행합니다. OIDC 인증 코드 흐름을 통해 사용자를 IDEMIA 라우터로 리디렉션합니다.
  3. 라우터는 인증 및 권한 부여 요청 세부 정보와 함께 사용자의 모바일 앱에 생체 인식 질문을 보냅니다.
  4. 보안에 따라 사용자에게 PIN 입력, 라이브 셀카 찍기 또는 둘 다와 같은 추가 세부 정보를 제공하라는 메시지가 표시될 수 있습니다.
  5. 인증 응답은 소유, 존재 및 동의의 증거를 제공합니다. 응답이 라우터로 반환됩니다.
  6. 라우터는 사용자 정보를 확인하고 그 결과를 Azure AD B2C에 회신합니다.
  7. 사용자에게 액세스 권한이 허용되거나 거부됩니다.

모바일 ID 사용

시작하려면 idemia.com 문의하기 페이지로 이동하여 데모를 요청합니다. 요청 양식 텍스트 필드에 Azure AD B2C 통합에 대한 관심을 표시합니다.

Azure AD B2C와 모바일 ID 통합

다음 섹션을 사용하여 통합 프로세스를 준비하고 수행합니다.

필수 조건

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

  • IDEMIA, 미국 주에서 발급한 mID(모바일 ID 자격 증명)가 있는 사용자에 대한 액세스

    • 또는 테스트 단계에서 IDEMIA의 mID 데모 애플리케이션
  • Azure 구독

  • Azure 구독에 연결된 Azure AD B2C 테넌트

  • Azure AD B2C 테넌트에서 등록된 비즈니스 웹 애플리케이션입니다.

    • 테스트를 위해 디코딩된 토큰 콘텐츠가 있는 Microsoft 웹 애플리케이션인 https://jwt.ms를 구성합니다.

    참고 항목

    토큰 콘텐츠는 브라우저를 벗어나지 않습니다.

mID에 대한 신뢰 당사자 애플리케이션 제출

모바일 ID 연동 시 아래와 같은 정보를 제공합니다.

속성 설명
애플리케이션 이름 Azure AD B2C 또는 다른 애플리케이션 이름
Client_ID IdP(ID 공급자)의 고유 식별자
클라이언트 암호 신뢰 당사자 애플리케이션이 IDEMIA IdP 인증에 사용하는 암호
메타데이터 엔드포인트 OpenID 잘 알려진 구성 엔드포인트라고도 하는 토큰 발급자 구성 문서를 가리키는 URL
리디렉션 URI https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp
예를 들어 https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authresp

사용자 지정 도메인을 사용하는 경우 https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp를 입력합니다.
로그아웃 후 리디렉션 URI https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/{policy}/oauth2/v2.0/logout
로그아웃 요청을 보냅니다.

참고 항목

나중에 Azure AD B2C에서 IdP를 구성하려면 클라이언트 ID와 클라이언트 암호가 필요합니다.

정책 키 만들기

Azure AD B2C 테넌트에 명시된 IDEMIA 클라이언트 암호를 저장합니다. 다음 지침에서는 Azure AD B2C 테넌트와 함께 디렉터리를 사용합니다.

  1. Azure Portal에 로그인합니다.
  2. 포털 도구 모음에서 디렉터리 + 구독을 선택합니다.
  3. 포털 설정, 디렉터리 + 구독 페이지의 디렉터리 이름 목록에서 Azure AD B2C 디렉터리를 찾습니다.
  4. 전환을 선택합니다.
  5. Azure Portal의 왼쪽 상단 모서리에서 전체 서비스를 선택합니다.
  6. Azure AD B2C를 검색하고 선택합니다.
  7. 개요 페이지에서 Identity Experience Framework를 선택합니다.
  8. 정책 키를 선택합니다.
  9. 추가를 선택합니다.
  10. 옵션에서 수동을 선택합니다.
  11. 정책 키의 이름을 입력합니다. 예: IdemiaAppSecret. 접두사 B2C_1A_가 키 이름에 추가됩니다.
  12. 비밀에 기록해 둔 클라이언트 암호를 입력합니다.
  13. 사용으로는 서명을 선택합니다.
  14. 만들기를 실행합니다.

모바일 ID를 외부 IdP로 구성

사용자가 모바일 ID로 로그인할 수 있도록 하려면 IDEMIA를 클레임 공급자로 정의합니다. 이 작업은 Azure AD B2C가 생체 인식을 통해 사용자 인증을 확인하는 데 사용하는 클레임을 제공하는 엔드포인트를 통해 Azure AD B2C가 통신하도록 합니다.

IDEMIA를 클레임 공급자로 정의하려면 정책 확장 파일의 ClaimsProvider 요소에 추가합니다.

     <TechnicalProfile Id="Idemia-Oauth2">
          <DisplayName>IDEMIA</DisplayName>
          <Description>Login with your IDEMIA identity</Description>
          <Protocol Name="OAuth2" />
          <Metadata>
            <Item Key="METADATA">https://idp.XXXX.net/oxauth/.well-known/openid-configuration</Item>
            <!-- Update the Client ID below to the Application ID -->
            <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid id_basic mt_scope</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="token_endpoint_auth_method">client_secret_basic</Item>
            <Item Key="ClaimsEndpoint">https://idp.XXXX.net/oxauth/restv1/userinfo</Item>
            <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_IdemiaAppSecret" />
</CryptographicKeys>
          <InputClaims>
            <InputClaim ClaimTypeReferenceId="acr" PartnerClaimType="acr_values" DefaultValue="loa-2" />
          </InputClaims>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="firstName1" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="lastName1" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="idemia" />
            <OutputClaim ClaimTypeReferenceId="documentId" />
            <OutputClaim ClaimTypeReferenceId="address1" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
           

client_id를 애플리케이션 등록의 애플리케이션 ID로 설정합니다.

속성 Description
범위 OIDC(OpenID Connect)의 경우 최소 요구 사항은 범위 매개 변수를 openid로 설정하는 것입니다. 더 많은 범위를 공백으로 구분된 목록으로 추가합니다.
redirect_uri 여기는 사용자 에이전트가 인증 코드를 Azure AD B2C로 보내는 위치입니다.
response_type 인증 코드 흐름에서 코드를 선택합니다.
acr_values 이 매개 변수는 인증 중에 사용자가 수행해야 하는 인증 방법을 제어합니다.

다음 값 중 하나를 선택하십시오.

매개 변수 값 사용자 인증 프로세스에 미치는 영향
loa-2 암호화 기반 Microsoft Entra 다단계 인증만
loa-3 암호화 기반 MFA에 또 다른 단계
loa-4 암호화 기반 MFA와 사용자가 PIN 및 생체 인식 인증을 수행합니다.

/userinfo 엔드포인트는 권한 부여 요청에서 요청된 범위에 대한 클레임을 제공합니다. <mt_scope>의 경우 이름, 성, 운전면허증 번호 등의 항목이 있습니다. 범위에 대해 설정된 클레임은 검색 API의 scope_to_claims_mapping 섹션에 게시됩니다. Azure AD B2C는 클레임 엔드포인트에서 클레임을 요청하고 OutputClaims 요소에 반환합니다. 정책의 클레임 이름을 IdP의 이름에 매핑해야 할 수 있습니다. ClaimSchema 요소에서 클레임 형식을 정의합니다.

<ClaimType Id="documentId">
     <DisplayName>documentId</DisplayName>
     <DataType>string</DataType>
</ClaimType>
<ClaimType Id="address1">
     <DisplayName>address</DisplayName>
     <DataType>string</DataType>
</ClaimType>

사용자 경험 추가

이 지침의 경우 IdP가 설정되었지만 로그인 페이지에 없습니다. 사용자 지정 사용자 경험이 없는 경우 템플릿 사용자 경험을 복사합니다.

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

사용자 경험에 IdP 추가

사용자 경험이 있는 경우 새 IdP를 추가합니다. 먼저 로그인 단추를 추가한 다음 만든 기술 프로필인 작업에 연결합니다.

  1. 사용자 경험에서 Type=CombinedSignInAndSignUp 또는 Type=ClaimsProviderSelection인 오케스트레이션 단계 요소를 찾습니다. 일반적으로 첫 번째 오케스트레이션 단계입니다. ClaimsProviderSelections 요소에는 사용자가 로그인하는 IdP 목록이 있습니다. 요소 컨트롤의 순서는 사용자에게 표시되는 로그인 단추의 순서입니다.
  2. ClaimsProviderSelection XML 요소를 추가합니다.
  3. TargetClaimsExchangeId 값을 식별 이름으로 설정합니다.
  4. ClaimsExchange 요소를 추가합니다.
  5. Id를 대상 클레임 교환 ID 값으로 설정합니다.
  6. TechnicalProfileReferenceId 값을 만든 기술 프로필 ID로 업데이트합니다.

다음 XML은 IdP를 사용하여 사용자 경험의 처음 두 오케스트레이션 단계를 보여줍니다.

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="IdemiaExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="IdemiaExchange" TechnicalProfileReferenceId="Idemia-Oauth2" />
  </ClaimsExchanges>
</OrchestrationStep>

신뢰 당사자 정책 구성

신뢰 당사자 정책(예: SignUpSignIn.xml)은 Azure AD B2C가 실행하는 사용자 경험을 지정합니다.

  1. 신뢰 당사자에서 DefaultUserJourney 요소를 찾습니다.
  2. IdP를 추가한 사용자 경험 ID와 일치하도록 ReferenceId를 업데이트합니다.

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

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

사용자 지정 정책 업로드

다음 지침에서는 Azure AD B2C 테넌트와 함께 디렉터리를 사용합니다.

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

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

  3. 포털 설정, 디렉터리 + 구독 페이지의 디렉터리 이름 목록에서 Azure AD B2C 디렉터리를 찾습니다.

  4. 전환을 선택합니다.

  5. Azure Portal에서 Azure AD B2C를 검색하고 선택합니다.

  6. 정책에서 Identity Experience Framework를 선택합니다.

  7. 사용자 지정 정책 업로드를 선택합니다.

  8. 변경한 정책 파일 2개를 다음 순서로 업로드합니다.

    • 확장 정책(예: TrustFrameworkExtensions.xml)
    • 신뢰 당사자 정책(예: SignUpSignIn.xml)

사용자 지정 정책 테스트

  1. 신뢰 당사자 정책(예: B2C_1A_signup_signin)을 선택합니다.
  2. 애플리케이션에서 등록한 웹 애플리케이션을 선택합니다.
  3. https://jwt.ms회신 URL에 나타납니다.
  4. 지금 실행을 선택합니다.
  5. 등록 또는 로그인 페이지에서 IDEMIA를 선택합니다.
  6. 브라우저가 https://jwt.ms로 리디렉션됩니다. Azure AD B2C에서 반환된 토큰 콘텐츠를 참조하세요.

자세히 알아보기: 자습서: Azure AD B2C에서 웹 애플리케이션 등록

다음 단계