Tutorial: Konfigurieren von Azure Active Directory B2C mit BlokSec für die kennwortlose Authentifizierung
Voraussetzungen
Azure Active Directory B2C bietet zwei Methoden zum Definieren von Benutzerinteraktionen bei Anwendungen: vordefinierte Benutzerflows oder konfigurierbare benutzerdefinierte Richtlinien.
Hinweis
In Azure Active Directory B2C sind benutzerdefinierte Richtlinien hauptsächlich für komplexe Szenarien konzipiert. Für die meisten Szenarien empfehlen wir integrierte Benutzerflows.
Lesen Sie dazu Übersicht über Benutzerflows und benutzerdefinierte Richtlinien.
Azure AD B2C und BlokSec
Informieren Sie sich, wie Sie die Azure Active Directory B2C (Azure AD B2C)-Authentifizierung in den dezentralisierten BlokSec-Identitätsrouter integrieren. Die BlokSec-Lösung vereinfacht die Benutzeranmeldung mit kennwortloser Authentifizierung und mehrstufiger Authentifizierung ohne Token. Die Lösung schützt Kunden vor identitätsbezogenen Angriffen wie Password Stuffing, Phishing und Man-in-the-Middle.
Weitere Informationen finden Sie unter „bloksec.com“: BlokSec Technologies Inc.
Beschreibung des Szenarios
Die BlokSec-Integration umfasst die folgenden Komponenten:
- Azure AD B2C – Autorisierungsserver und Identitätsanbieter (IdP) für B2C-Anwendungen
-
Dezentralisierter BlokSec-Identitätsrouter – Gateway für Dienste, die Authentifizierungs- und Autorisierungsanforderungen mithilfe von BlokSec DIaaS an Personal Identity Provider (PIdP)-Anwendungen von Benutzern weiterleiten
- Es handelt sich dabei um einen OpenID Connect (OIDC)-Identitätsanbieter in Azure AD B2C.
-
Mobile, auf dem BlokSec-SDK basierende App – PIdP der Benutzer im dezentralisierten Authentifizierungsszenario.
- Wenn Sie das BlokSec-SDK nicht verwenden, wechseln Sie zu Google Play, um die kostenlose BlokSec-App „yuID“ zu erhalten.
Das folgende Architekturdiagramm veranschaulicht den Registrierungs- und Anmeldeflow in der BlokSec-Lösungsimplementierung.
- Ein Benutzer meldet sich bei einer Azure AD B2C-Anwendung an und wird zur Anmelde- und Registrierungsrichtlinie von Azure AD B2C weitergeleitet.
- Azure AD B2C leitet den Benutzer mithilfe des OIDC-Autorisierungscodeflows zum dezentralisierten BlokSec-Identitätsrouter weiter.
- Der BlokSec-Router sendet eine Pushbenachrichtigung mit Details zur Authentifizierungs- und Autorisierungsanforderung an die mobile Benutzer-App.
- Der Benutzer überprüft die Authentifizierungsanforderung. Ein akzeptierter Benutzer wird zur Biometrie aufgefordert, z. B. einem Fingerabdruck oder Gesichtsscan.
- Die Antwort wird mit dem eindeutigen digitalen Schlüssel des Benutzers digital signiert. Die Authentifizierungsantwort liefert den Eigentumsnachweis, die Präsenz und Einwilligung. Die Antwort wird an den Router zurückgesendet.
- Der Router überprüft die digitale Signatur mit dem unveränderlichen eindeutigen öffentlichen Schlüssel des Benutzers, der in einem Distributed Ledger gespeichert ist. Dann sendet der Router eine Antwort mit dem Authentifizierungsergebnis an Azure AD B2C.
- Dem Benutzer wird der Zugriff gewährt oder verweigert.
Aktivieren von BlokSec
- Wechseln Sie zu „bloksec.com“, und wählen Sie Demomandanten anfordern aus.
- Geben Sie im Nachrichtenfeld an, dass Sie eine Integration in Azure AD B2C durchführen möchten.
- Laden Sie die kostenlose mobile BlokSec-App „yuID“ herunter, und installieren Sie sie.
- Nachdem der Demomandant vorbereitet wurde, wird eine E-Mail empfangen.
- Wählen Sie auf dem mobilen Gerät, auf dem die BlokSec-Anwendung installiert ist, den Link zum Registrieren Ihres Administratorkontos bei Ihrer App „yuID“ aus.
Voraussetzungen
Zunächst benötigen Sie Folgendes:
- Ein Azure-Abonnement
- Wenn Sie kein Konto haben, können Sie ein kostenloses Azure-Konto erhalten.
- Ein Azure AD B2C-Mandant, der mit dem Azure-Abonnement verknüpft ist
- Eine BlokSec-Demo
- Registrieren einer Webanwendung
Lesen Sie auch das Tutorial: Erstellen von Benutzerflows und benutzerdefinierten Richtlinien in Azure AD B2C.
Erstellen einer Anwendungsregistrierung in BlokSec
Suchen Sie in der Kontoregistrierungs-E-Mail von BlokSec den Link zur BlokSec-Administratorkonsole.
- Melden Sie sich an der BlokSec-Administratorkonsole an.
- Wählen Sie im Hauptdashboard Anwendung hinzufügen > Benutzerdefiniert erstellen aus.
- Geben Sie unter Name „Azure AD B2C“ oder einen Anwendungsnamen ein.
- Wählen Sie unter SSO-Typ die Option OIDC aus.
- Geben Sie unter Logo-URI einen Link zum Logobild ein.
- Verwenden Sie
https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp
als Umleitungs-URIs. Beispielsweisehttps://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authresp
. Geben Sie für eine benutzerdefinierte Domänehttps://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp
ein. - Geben Sie unter Umleitungs-URIs nach dem Abmelden ein:
https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/{policy}/oauth2/v2.0/logout
. - Wählen Sie die erstellte Azure AD B2C-Anwendung zum Öffnen der Anwendungskonfiguration aus.
- Wählen Sie App-Geheimnis generieren aus.
Weitere Informationen finden Sie unter Senden einer Abmeldeanforderung.
Hinweis
Sie benötigen die Anwendungs-ID und das Anwendungsgeheimnis zum Konfigurieren des Identitätsanbieters (IdP) in Azure AD B2C.
Hinzufügen eines neuen Identitätsanbieters in Azure AD B2C
Verwenden Sie bei den folgenden Anleitungen das Verzeichnis, das Ihren Azure AD B2C-Mandanten enthält.
- Melden Sie sich beim Azure-Portal als globaler Administrator Ihres Azure AD B2C-Mandanten an.
- Wählen Sie auf der Toolbar des Portals Verzeichnisse + Abonnements aus.
- Suchen Sie auf der Seite Portaleinstellungen, Verzeichnisse + Abonnements Ihr Azure AD B2C-Verzeichnis in der Liste Verzeichnisname.
- Wählen Sie Wechseln aus.
- Wählen Sie in der linken oberen Ecke im Azure-Portal die Option Alle Dienste aus.
- Suchen Sie nach Azure AD B2C, und wählen Sie diese Option aus.
- Navigieren Sie zu Dashboard>Azure Active Directory B2C>Identitätsanbieter.
- Wählen Sie Neuer OpenID Connect-Anbieter aus.
- Wählen Sie Hinzufügen.
Konfigurieren eines Identitätsanbieters
- Wählen Sie Identitätsanbietertyp > OpenID Connect
- Geben Sie unter Name den Namen BlokSec yuID – Kennwortlos oder einen anderen Namen ein.
- Geben Sie unter Metadaten-URL die URL
https://api.bloksec.io/oidc/.well-known/openid-configuration
ein. - Geben Sie unter Client-IDV die Anwendungs-ID von der BlokSec-Verwaltungsoberfläche ein.
- Geben Sie unter Geheimer Clientschlüssel das Anwendungsgeheimnis von der BlokSec-Verwaltungsoberfläche ein.
- Wählen Sie unter Bereich die Option OpenID-E-Mail-Profil aus.
- Wählen Sie unter Antworttyp die Option Code aus.
- Wählen Sie unter Domänenhinweis die Option yuID aus.
- Klicken Sie auf OK.
- Wählen Sie Ansprüche dieses Identitätsanbieters zuordnen aus.
- Wählen Sie unter Benutzer-ID die Option sub aus.
- Wählen Sie unter Anzeigename die Option name aus.
- Verwenden Sie für Vorname die Option given_name.
- Verwenden Sie für Nachname die Option family_name.
- Verwenden Sie für E-Mail die Option email.
- Wählen Sie Speichern aus.
Benutzerregistrierung
- Melden Sie sich an der BlokSec-Verwaltungskonsole mit den bereitgestellten Anmeldeinformationen an.
- Navigieren Sie zu der zuvor erstellten Azure AD B2C-Anwendung.
- Wählen Sie oben rechts das Symbol Zahnrad aus.
- Wählen Sie Konto erstellen aus.
- Geben Sie in Konto erstellen Benutzerinformationen ein. Notieren Sie sich den Kontonamen.
- Klicken Sie auf Senden.
Der Benutzer empfängt unter der angegebenen E-Mail-Adresse eine Kontoregistrierungs-E-Mail. Weisen Sie den Benutzer an, den Registrierungslink auf dem mobilen Gerät mit der BlokSec-App „yuID“ auszuwählen.
Erstellen einer Benutzerflowrichtlinie
Stellen Sie für die folgenden Anleitungen sicher, dass BlokSec ein neuer OIDC-Identitätsanbieter (IdP) ist.
- Wählen Sie auf Ihrem Azure AD B2C-Mandanten unter Richtlinien die Option Benutzerflows aus.
- Wählen Sie die Option Neuer Benutzerflow aus.
- Klicken Sie auf Registrierung und Anmeldung>Version>Erstellen.
- Geben Sie einen Namen für die Richtlinie ein.
- Wählen Sie im Abschnitt „Identitätsanbieter“ den erstellten BlokSec-Identitätsanbieter aus.
- Wählen Sie unter „Lokales Konto“ die Option Kein aus. Diese Aktion deaktiviert die E-Mail- und kennwortbasierte Authentifizierung.
- Klicken Sie auf Benutzerflow ausführen.
- Geben Sie im Formular die Antwort-URL ein, z. B.
https://jwt.ms
. - Der Browser wird an die Anmeldeseite von BlokSec umgeleitet.
- Geben Sie den Kontonamen aus der Benutzerregistrierung ein.
- Der Benutzer erhält eine Pushbenachrichtigung auf dem mobilen Gerät mit der BlokSec-Anwendung „yuID“.
- Der Benutzer öffnet die Benachrichtigung, und die Authentifizierungsanforderung wird angezeigt.
- Wenn die Authentifizierung akzeptiert wird, leitet der Browser den Benutzer an die Antwort-URL weiter.
Hinweis
In Azure Active Directory B2C sind benutzerdefinierte Richtlinien hauptsächlich für komplexe Szenarien konzipiert. Für die meisten Szenarien empfehlen wir integrierte Benutzerflows.
Lesen Sie dazu Übersicht über Benutzerflows und benutzerdefinierte Richtlinien.
Erstellen eines Richtlinienschlüssels
Speichern Sie den geheimen Clientschlüssel, den Sie sich notiert haben, in Ihrem Azure AD B2C-Mandanten. Verwenden Sie bei den folgenden Anleitungen das Verzeichnis mit Ihrem Azure AD B2C-Mandanten.
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie auf der Toolbar des Portals Verzeichnisse + Abonnements aus.
- Suchen Sie auf der Seite Portaleinstellungen, Verzeichnisse + Abonnements Ihr Azure AD B2C-Verzeichnis in der Liste Verzeichnisname.
- Wählen Sie Wechseln aus.
- Wählen Sie in der oberen linken Ecke des Azure-Portals die Option Alle Dienste aus.
- Suchen Sie nach Azure AD B2C, und wählen Sie diese Option aus.
- Wählen Sie auf der Seite Übersicht die Option Identity Experience Framework aus.
- Wählen Sie Richtlinienschlüssel aus.
- Wählen Sie Hinzufügen.
- Wählen Sie unter Optionen die Option Manuell aus.
- Geben Sie einen Richtliniennamen für den Richtlinienschlüssel ein. Beispielsweise
BlokSecAppSecret
. Das PräfixB2C_1A_
wird dem Schlüsselnamen hinzugefügt. - Geben Sie unter Geheimnis den geheimen Clientschlüssel ein, den Sie sich notiert haben.
- Wählen Sie unter SchlüsselverwendungSignatur aus.
- Klicken Sie auf Erstellen.
Konfigurieren von BlokSec als Identitätsanbieter
Damit sich Benutzer mit einer dezentralisierten BlokSec-Identität anmelden können, definieren Sie BlokSec als Anspruchsanbieter. Diese Aktion stellt sicher, dass Azure AD B2C über einen Endpunkt mit sich selbst kommuniziert. Azure AD B2C verwendet Endpunktansprüche zur Überprüfung, ob Benutzer ihre Identität mithilfe von Biometrie authentifizieren, z. B. Fingerabdruck oder Gesichtsscan.
Um BlokSec als Anspruchsanbieter zu definieren, fügen Sie sie in der Erweiterungsdatei Ihrer Richtlinie dem Element ClaimsProvider hinzu.
Öffnen Sie die Datei
TrustFrameworkExtensions.xml
.Suchen Sie nach dem Element ClaimsProviders. Wenn das Element nicht angezeigt wird, fügen Sie es unter dem Stammelement hinzu.
So fügen Sie einen neuen ClaimsProvider hinzu:
<ClaimsProvider> <Domain>bloksec</Domain> <DisplayName>BlokSec</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="BlokSec-OpenIdConnect"> <DisplayName>BlokSec</DisplayName> <Description>Login with your BlokSec decentriled identity</Description> <Protocol Name="OpenIdConnect" /> <Metadata> <Item Key="METADATA">https://api.bloksec.io/oidc/.well-known/openid-configuration</Item> <!-- Update the Client ID below to the BlokSec Application ID --> <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item> <Item Key="response_types">code</Item> <Item Key="scope">openid profile email</Item> <Item Key="response_mode">form_post</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">false</Item> <Item Key="DiscoverMetadataByTokenIssuer">true</Item> <Item Key="ValidTokenIssuerPrefixes">https://api.bloksec.io/oidc</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_BlokSecAppSecret" /> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" /> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" /> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" /> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Legen Sie client_id auf die Anwendungs-ID aus der Anwendungsregistrierung fest.
Wählen Sie Speichern aus.
Hinzufügen einer User Journey
Nutzen Sie die folgenden Anleitungen, wenn der Identitätsanbieter eingerichtet ist, aber nicht auf einer Anmeldeseite. Wenn Sie keine benutzerdefinierte User Journey haben, kopieren Sie eine Vorlagen-User Journey.
- Öffnen Sie im Starter-Paket die Datei
TrustFrameworkBase.xml
. - Suchen und kopieren Sie den Inhalt des Elements UserJourneys, das „ID=
SignUpOrSignIn
“ enthält. - Öffnen Sie die Datei
TrustFrameworkExtensions.xml
. - Suchen Sie das Element UserJourneys. Wenn das Element nicht angezeigt wird, fügen Sie eines hinzu.
- Fügen Sie den Inhalt des kopierten UserJourney-Elements als untergeordnetes Element des UserJourneys-Elements ein.
- Benennen Sie die User Journey-ID um. Zum Beispiel, ID=
CustomSignUpSignIn
.
Hinzufügen des Identitätsanbieters zu einer User Journey
Wenn Sie eine User Journey haben, fügen Sie ihr den neuen Identitätsanbieter hinzu. Fügen Sie zuerst eine Anmeldeschaltfläche hinzu, und verknüpfen Sie sie dann mit einer Aktion, die das von Ihnen erstellte technische Profil ist.
- Suchen Sie in der User Journey nach dem Orchestrierungsschrittelement, das „Type=
CombinedSignInAndSignUp
“ oder „Type=ClaimsProviderSelection
“ enthält. Dies ist in der Regel der erste Orchestrierungsschritt. Das Element ClaimsProviderSelections enthält eine Liste von Identitätsanbietern für die Benutzeranmeldung. Die Reihenfolge der Elemente steuert die Reihenfolge der Anmeldeschaltflächen, die dem Benutzer angezeigt werden. - Fügen Sie ein ClaimsProviderSelection-XML-Element hinzu.
- Legen Sie für TargetClaimsExchangeId einen Anzeigenamen fest.
- Fügen Sie im nächsten Orchestrierungsschritt ein ClaimsExchange-Element hinzu.
- Legen Sie die Id auf den Wert der Zielanspruchsaustausch-ID fest.
- Ändern Sie den Wert von TechnicalProfileReferenceId in die ID des technischen Profils, das Sie erstellt haben.
Der folgende XML-Code veranschaulicht die ersten beiden User-Journey-Orchestrierungsschritte beim Identitätsanbieter:
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="BlokSecExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="BlokSecExchange" TechnicalProfileReferenceId="BlokSec-OpenIdConnect" />
</ClaimsExchanges>
</OrchestrationStep>
Konfigurieren einer Richtlinie für die vertrauende Seite
Die Richtlinie für die vertrauende Seite, z. B. SignUpSignIn.xml, gibt die von Azure AD B2C ausgeführte User Journey an.
- Suchen Sie in „Vertrauende Seite“ das Element DefaultUserJourney.
- Aktualisieren Sie ReferenceId auf die ID der User Journey, in der Sie den Identitätsanbieter hinzugefügt haben.
Im folgenden Beispiel ist ReferenceId für die User Journey CustomSignUpOrSignIn
auf CustomSignUpOrSignIn
festgelegt:
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Hochladen der benutzerdefinierten Richtlinie
Verwenden Sie bei den folgenden Anleitungen das Verzeichnis mit Ihrem Azure AD B2C-Mandanten.
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie auf der Symbolleiste des Portals die Option Verzeichnisse und Abonnements aus.
- Suchen Sie auf der Seite Portaleinstellungen, Verzeichnisse und Abonnements in der Liste Verzeichnisname Ihr Azure AD B2C-Verzeichnis.
- Wählen Sie Wechseln aus.
- Suchen Sie im Azure-Portal nach Azure AD B2C, und wählen Sie diese Option dann aus.
- Wählen Sie unter Richtlinien die Option Identity Experience Framework aus.
- Wählen Sie Benutzerdefinierte Richtlinie hochladen aus.
- Laden Sie die beiden von Ihnen geänderten Richtliniendateien in dieser Reihenfolge hoch:
- Erweiterungsrichtlinie, z. B.
TrustFrameworkExtensions.xml
- Richtlinie für die vertrauende Seite z. B.
SignUpSignIn.xml
Testen der benutzerdefinierten Richtlinie
- Wählen Sie die Richtliniendatei für die vertrauende Seite aus, z. B.
B2C_1A_signup_signin
. - Wählen Sie unter Anwendung eine von Ihnen registrierte Webanwendung aus.
- Die Antwort-URL wird als
https://jwt.ms
angezeigt. - Wählen Sie Jetzt ausführen aus.
- Wählen Sie auf der Registrierungs- oder Anmeldeseite die Option Google aus, um sich mit einem Google-Konto anzumelden.
- Der Browser wird an
https://jwt.ms
umgeleitet. Sehen Sie sich die von Azure AD B2C zurückgegebenen Tokeninhalte an.
Weitere Informationen finden Sie im Tutorial: Registrieren einer Webanwendung in Azure Active Directory B2C.