다음을 통해 공유


Azure Active Directory B2C를 사용하여 TypingDNA를 구성하기 위한 자습서

이 연습에서는 Azure Active Directory B2C의 샘플 온라인 결제 앱을 TypingDNA 앱과 통합하는 방법을 알아봅니다. TypingDNA 앱을 사용하면 Azure AD B2C 고객은 키 입력 역학 및 강력한 고객 인증을 통해 PSD2(Payment Services 지시문 2) 트랜잭션 요구 사항을 준수할 수 있습니다. TypingDNA에 대한 자세한 내용은 여기를 참조하십시오.

Azure AD B2C는 TypingDNA의 기술을 사용하여 입력 특성을 캡처하고 각 인증에 대한 친숙함을 기록하고 분석하도록 합니다. 이것은 인증의 위험성과 관련된 보호 레이어를 추가하고 위험 수준을 평가합니다. Azure AD B2C는 다른 메커니즘을 호출하여 Microsoft Entra 다단계 인증을 호출하고 이메일 확인을 강제하거나 시나리오에 대한 기타 사용자 지정 논리를 통해 사용자가 자신이 누구라고 주장하는지에 대해 더욱 신뢰를 제공할 수 있습니다.

참고 항목

이 샘플 정책은 SocialAndLocalAccountsWithMfa 스타터 팩을 기반으로 합니다.

시나리오 설명

TypingDNA 아키텍처 다이어그램 스크린샷

등록

  1. Azure AD B2C 페이지는 TypingDNA의 JavaScript 라이브러리를 사용하여 사용자의 입력 패턴을 기록합니다. 예를 들어 사용자 이름과 암호는 초기 등록을 위해 등록할 때 기록된 다음 확인을 위해 모든 로그인에 기록됩니다.

  2. 사용자가 페이지를 제출하면 TypingDNA 라이브러리가 사용자의 입력 특성을 계산합니다. 그런 다음 Azure AD B2C가 렌더링한 숨겨진 텍스트 필드에 정보를 삽입합니다. 이 필드는 CSS를 사용하여 숨겨집니다.

    샘플에는 JavaScript 및 CSS 수정 사항이 있는 HTML 파일이 포함되어 있으며 api.selfasserted.tdnasigninapi.selfasserted.tdnasignup 콘텐츠 정의에서 참조됩니다. HTML 파일을 호스트하는 페이지 콘텐츠 호스팅을 참조하세요.

  3. 이제 Azure AD B2C는 사용자가 자격 증명을 제출할 때 클레임 모음 내에 입력 패턴을 줍니다. 이 데이터를 TypingDNA REST API 엔드포인트에 전달하려면 API(사용자)를 호출해야 합니다. 이 API는 샘플(typingDNA-API-Interface)에 포함되어 있습니다.

  4. 그런 다음 중간 계층 API는 입력 패턴 데이터를 TypingDNA REST API에 전달합니다. 등록 시 사용자 확인 엔드포인트 가 호출되어 사용자가 존재하지 않았는지 확인한 다음 , 사용자의 첫 번째 입력 패턴을 저장하기 위해 저장 패턴 엔드포인트가 호출됩니다.

참고 항목

TypingDNA REST API 엔드포인트에 대한 모든 호출은 UserId를 보냅니다. 해시된 값이어야 합니다. Azure AD B2C는 클레임 변환을 HashObjectIdWithEmail 사용하여 임의 솔트 및 비밀로 이메일을 해시합니다.

REST API 호출은 다음 내에서 LocalAccountSignUpWithLogonEmail-TDNA모델링됩니다validationTechnicalProfiles.


<ValidationTechnicalProfiles>

    <ValidationTechnicalProfile ReferenceId="AAD-UserWriteUsingLogonEmail-TDNA" />
    <ValidationTechnicalProfile ReferenceId="REST-TDNA-CheckUser" ContinueOnError="true"/>

    <ValidationTechnicalProfile ReferenceId="REST-TDNA-SaveUser"/>

</ValidationTechnicalProfiles>

로그인

이후 로그인 시 사용자의 입력 패턴은 사용자 지정 HTML을 사용하여 등록 시와 동일한 방식으로 계산됩니다. 입력 프로필이 Azure AD B2C 클레임 모음 내에 있으면 Azure AD B2C는 API를 호출하여 TypingDNA REST API 엔드포인트를 호출합니다. 사용자 확인 엔드포인트가 호출되어 사용자가 있는지 확인합니다. 다음으로, 패턴을 반환하기 위해 엔드 포인트가 호출되는지 확인합니다 net_score. 이는 net_score 등록 시 입력 패턴이 원본에 얼마나 근접했는지를 나타냅니다.

이 입력 패턴은 다음 내에서 SelfAsserted-LocalAccountSignin-Email-TDNA모델링됩니다validationTechnicalProfiles.


<ValidationTechnicalProfiles>

    <ValidationTechnicalProfile ReferenceId="login-NonInteractive"/>

    <ValidationTechnicalProfile ReferenceId="REST-TDNA-CheckUser" ContinueOnError="false"/>

    <ValidationTechnicalProfile ReferenceId="REST-TDNA-VerifyUser"/>

    <ValidationTechnicalProfile ReferenceId="REST-TDNA-SaveUser">

        <Preconditions>

            <Precondition Type="ClaimEquals" ExecuteActionsIf="true">

            <Value>saveTypingPattern</Value>

            <Value>False</Value>

            <Action>SkipThisValidationTechnicalProfile</Action>

            </Precondition>

        </Preconditions>

    </ValidationTechnicalProfile>

</ValidationTechnicalProfiles>

사용자가 높은 net_score입력 패턴을 가져오는 경우 TypingDNA 를 사용하여 입력 패턴 엔드포인트를 저장하여 저장할 수 있습니다.

(API를 통해)Azure AD B2C에서 TypingDNA 저장 입력 패턴 엔드포인트를 호출하려면 API에서 클레임 saveTypingPattern을 반환해야 합니다.

리포지토리의 예제에는 다음 속성으로 구성된 API(TypingDNA-API-Interface)가 포함되어 있습니다.

  • 학습 모드 - 사용자가 두 개 미만의 패턴을 저장한 경우 항상 MFA를 묻는 메시지를 표시합니다.

  • 사용자에게 2-5개의 패턴이 저장되어 있고 net_score 50보다 낮은 경우 MFA를 묻는 메시지를 표시합니다.

  • 사용자에게 5개 이상의 패턴이 저장되어 있고 net_score이 65보다 작은 경우 MFA를 묻는 메시지를 표시합니다.

이러한 임계값은 사용 사례에 따라 조정해야 합니다.

  • API가 net_score을 평가한 후 B2C - promptMFA에 부울 클레임을 반환해야 합니다.

  • promptMFA 클레임은 Microsoft Entra 다단계 인증을 조건부로 실행하기 위한 전제 조건 내에서 사용됩니다.


<OrchestrationStep Order="3" Type="ClaimsExchange">

    <Preconditions>

        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">

            <Value>isActiveMFASession</Value>

            <Action>SkipThisOrchestrationStep</Action>

        </Precondition>

        <Precondition Type="ClaimEquals" ExecuteActionsIf="true">

            <Value>promptMFA</Value>

            <Value>False</Value>

            <Action>SkipThisOrchestrationStep</Action>

        </Precondition>

    </Preconditions>

    <ClaimsExchanges>

        <ClaimsExchange Id="PhoneFactor-Verify" TechnicalProfileReferenceId="PhoneFactor-InputOrVerify" />

    </ClaimsExchanges>

</OrchestrationStep>

TypingDNA를 사용하여 온보딩

  1. 여기에서 TypingDNA 에 등록
  2. TypingDNA 대시보드에 로그인하여 API 키API 암호를 가져옵니다. 이 작업은 나중에 API 인터페이스 설정에서 필요합니다.

TypingDNA를 Azure AD B2C와 통합

  1. 선택한 호스팅 공급자에서 TypingDNA-API-Interface를 호스팅

  2. TypingDNA-API-Interface 솔루션의 apiKey apiSecret 모든 인스턴스를 TypingDNA 대시보드의 자격 증명으로 바꿉니다.

  3. 여기에서 CORS 요구 사항에 따라 선택한 공급자에서 HTML 파일을 호스팅

  4. 파일의 콘텐츠 정의 TrustFrameworkExtensions.xmlapi.selfasserted.tdnasignin LoadURI 요소를 api.selfasserted.tdnasignup 각각 호스트된 HTML 파일의 URI로 바꿉니다.

  5. Azure Portal의 Microsoft Entra 블레이드에 있는 ID 경험 프레임워크에서 B2C 정책 키를 만듭니다. 옵션을 사용하고 이 키의 Generate 이름을 지정합니다 tdnaHashedId.

  6. 정책 파일에서 TenantId를 변경

  7. 모든 TypingDNA REST API 기술 프로필(REST-TDNA-VerifyUser, REST-TDNA-SaveUser, REST-TDNA-CheckUser)의 ServiceURL을 TypingDNA-API-Interface API의 엔드포인트로 바꿉니다.

  8. 테넌트에 정책 파일을 업로드합니다.

사용자 흐름 테스트

  1. B2C 테넌트 열기 및 ID 환경 프레임워크 선택

  2. 이전에 만든 사용자 흐름을 선택합니다.

  3. 사용자 흐름 실행 선택

    a. 애플리케이션 - 등록된 앱 선택(샘플은 JWT)

    b. 회신 URL - 리디렉션 URL 선택

    c. 사용자 흐름 실행을 선택합니다.

  4. 등록 흐름을 따라 계정 만들기

  5. 로그아웃

  6. 로그인 흐름 진행

  7. 결과 JWT 결과에 TypingDNA 결과가 표시됩니다.

라이브 버전

• 이 테스트 버전에서 MFA를 사용하지 않도록 설정했지만 인증 후 클레임 promptMFA 에서 MFA를 묻는 메시지가 표시되었는지 여부에 대한 결과를 볼 수 있습니다.

• 여기에서 등록하고 여기에 로그인합니다.

다음 단계

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