Aracılığıyla paylaş


Azure Active Directory B2C ile TypingDNA yapılandırma öğreticisi

Bu kılavuzda, Azure Active Directory B2C'deki örnek bir çevrimiçi ödeme uygulamasını TypingDNA UYGULAMASıyla tümleştirmeyi öğrenin. Azure AD B2C müşterileri, TypingDNA Uygulamasını kullanarak tuş vuruşu dinamiği ve güçlü müşteri kimlik doğrulaması aracılığıyla Ödeme Hizmetleri Yönergesi 2 (PSD2) işlem gereksinimlerine uyabilir. Burada TypingDNA hakkında daha fazla bilgi bulabilirsiniz.

Azure AD B2C, kullanıcıların yazma özelliklerini yakalamak için TypingDNA teknolojilerini kullanır ve her kimlik doğrulaması hakkında bilgi sahibi olmaları için bunları kaydeder ve analiz eder. Bu, kimlik doğrulamasının riskiyle ilgili bir koruma katmanı ekler ve risk düzeylerini değerlendirir. Azure AD B2C, çok faktörlü kimlik doğrulaması Microsoft Entra çağırarak, e-posta doğrulamayı zorlayarak veya senaryonuz için başka bir özel mantık kullanarak kullanıcının iddia ettiği kişi olduğundan daha fazla güven sağlamak için başka mekanizmalar çağırabilir.

Not

Bu örnek ilkesi SocialAndLocalAccountsWithMfa başlangıç paketini temel alır.

Senaryo açıklaması

TypingDNA mimari diyagramının ekran görüntüsü

Kayıt

  1. Azure AD B2C sayfaları, kullanıcının yazma desenini kaydetmek için TypingDNA'nın JavaScript kitaplığını kullanır. Örneğin, kullanıcı adı ve parola ilk kayıt için kaydolmaya ve ardından doğrulama için her oturum açmada kaydedilir.

  2. Kullanıcı sayfayı gönderdiğinde, TypingDNA kitaplığı kullanıcının yazma özelliğini hesaplar. Bundan sonra, bilgileri B2C Azure AD nin işlediği gizli bir metin alanına ekleyin. Bu alan CSS ile gizlenir.

    Örnek, JavaScript ve CSS değişikliklerini içeren HTML dosyalarını içerir ve ve api.selfasserted.tdnasignup içerik tanımları tarafından api.selfasserted.tdnasignin başvurulur. HTML dosyalarınızı barındırmak için sayfa içeriğini barındırmaya bakın.

  3. Azure AD B2C artık kullanıcı kimlik bilgilerini gönderdiğinde talep çantasında yazma düzenine sahiptir. Bu verileri TypingDNA REST API uç noktasına geçirmek için bir API 'yi (sizin) çağırması gerekir. Bu API , örnekte (typingDNA-API-Interface) bulunur.

  4. Orta katman API'si daha sonra yazma deseni verilerini TypingDNA REST API'sine geçirir. Kayıt sırasında, kullanıcının var olmadığını onaylamak için denetim kullanıcı uç noktası çağrılır ve ardından kullanıcının ilk yazma desenini kaydetmek için kayıt deseni uç noktası çağrılır.

Not

TypingDNA REST API uç noktasına yapılan tüm çağrılar bir UserId gönderir. Bu karma değer olmalıdır. Azure AD B2C, e-postayı HashObjectIdWithEmail rastgele bir tuz ve gizli diziyle karma yapmak için talep dönüştürmesini kullanır.

REST API çağrıları içinde LocalAccountSignUpWithLogonEmail-TDNAile validationTechnicalProfiles modellenir:


<ValidationTechnicalProfiles>

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

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

</ValidationTechnicalProfiles>

Oturum açma

Sonraki oturum açma işlemlerinde kullanıcının yazma düzeni, özel HTML kullanılarak kaydolma sırasındakiyle aynı şekilde hesaplanır. Yazma profili Azure AD B2C talep paketine eklendikten sonra Azure AD B2C, TypingDNA REST API uç noktasını çağırmak için API'nizi çağırır. Kullanıcının var olduğunu onaylamak için kullanıcı uç noktasını denetleme çağrılır. Ardından, desen uç noktasının döndürülmesi için net_scoreçağrıldığını doğrulayın. Bu net_score , yazma düzeninin kaydolma sırasında özgün desene ne kadar yakın olduğunu gösterir.

Bu yazma düzeni içinde SelfAsserted-LocalAccountSignin-Email-TDNAile validationTechnicalProfiles modellenmiştir:


<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>

Kullanıcı yüksek net_scoreolan bir yazma deseni elde ederse, YazmaDNA kaydetme deseni uç noktasını kullanarak bunu kaydedebilirsiniz.

YazmaDNA kaydetme deseni uç noktasının Azure AD B2C tarafından çağrılabilmesini istiyorsanız (API'niz aracılığıyla) API'nizin bir talep saveTypingPattern döndürmesi gerekir.

Depodaki örnek, aşağıdaki özelliklerle yapılandırılmış bir API (TypingDNA-API-Interface) içerir.

  • Eğitim modu - Kullanıcının kaydedilmiş ikiden az deseni varsa, her zaman MFA iste.

  • Kullanıcının kaydedilmiş 2-5 deseni varsa ve net_score 50'den düşükse MFA isteminde bulunabilirsiniz.

  • Kullanıcının kaydedilmiş 5'ten fazla deseni varsa ve net_score 65'ten küçükse MFA isteminde bulunabilirsiniz.

Bu eşikler kullanım örneğinizde ayarlanmalıdır.

  • API'niz değerini değerlendirdikten net_scoresonra B2C - promptMFAöğesine boole talebi döndürmelidir.

  • TaleppromptMFA, çok faktörlü Microsoft Entra kimlik doğrulamasını koşullu olarak yürütmek için ön koşul içinde kullanılır.


<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 ile ekleme

  1. Burada TypingDNA'ya kaydolun
  2. TypingDNA panosunda oturum açın ve API anahtarı ile API gizli dizilerini alın. Bu, daha sonra API arabirimi kurulumunda gerekli olacaktır

TypingDNA'Azure AD B2C ile tümleştirme

  1. Tercih edilen barındırma sağlayıcınızda TypingDNA-API-Interface'i barındırın

  2. TypingDNA-API-Interface çözümündeki tüm ve apiSecret örneklerini apiKey TypingDNA panonuzdaki kimlik bilgileriyle değiştirin

  3. HTML dosyalarını burada CORS gereksinimlerini izleyerek istediğiniz sağlayıcıda barındırın

  4. Dosyadaki ve api.selfasserted.tdnasignin içerik tanımları TrustFrameworkExtensions.xml için api.selfasserted.tdnasignup LoadURI öğelerini sırasıyla barındırılan HTML dosyalarınızın URI'si ile değiştirin.

  5. Azure portal Microsoft Entra dikey penceresinde kimlik deneyimi çerçevesi altında bir B2C ilke anahtarı oluşturun. Generate seçeneğini kullanın ve bu anahtarı tdnaHashedIdolarak adlandırın.

  6. İlke dosyalarındaki TenantId değerlerini değiştirme

  7. Tüm TypingDNA REST API teknik profillerindeki (REST-TDNA-VerifyUser, REST-TDNA-SaveUser, REST-TDNA-CheckUser) ServiceURL'leri TypingDNA-API-Interface API'nizin uç noktasıyla değiştirin.

  8. İlke dosyalarını kiracınıza yükleyin.

Kullanıcı akışını test edin

  1. B2C kiracısını açın ve kimlik deneyimi çerçevesini seçin.

  2. Daha önce oluşturduğunuz Kullanıcı Akışını seçin.

  3. Kullanıcı akışını çalıştır'ı seçin

    a. Uygulama - Kayıtlı uygulamayı seçin (örnek JWT'dir)

    b. Yanıt URL'si - Yeniden yönlendirme URL'sini seçin

    c. Kullanıcı akışını çalıştır'ı seçin.

  4. Kaydolma akışına gidin ve bir hesap oluşturun

  5. Oturumu kapat

  6. Oturum açma akışından geçme

  7. Elde edilen JWT sonucu, TypingDNA sonuçlarını gösterir

Canlı sürüm

• Bu test sürümünde MFA devre dışı bırakıldı, ancak kimlik doğrulamasından sonra MFA'nın talep promptMFA tarafından istenip istenmeyeceğini görebilirsiniz.

Buradan kaydolun ve Buradan oturum açın

Sonraki adımlar

Ek bilgi için aşağıdaki makaleleri gözden geçirin: