Proof of Concept für das globale Azure Active Directory B2C-Identitätsframework für die trichterbasierte Konfiguration
Im folgenden Abschnitt wird beschrieben, wie Sie Proof of Concept-Implementierungen für die trichterbasierte Orchestrierung erstellen. Die vollständigen benutzerdefinierten Azure Active Directory B2C-Richtlinien (Azure AD B2C) finden Sie hier.
Trichterbasierter Ansatz
Das folgende Blockdiagramm zeigt den Proof of Concept. In diesem Leitfaden wird gezeigt, wie Sie die Azure AD B2C-Mandanten konfigurieren. Die externe API-Ebene und die geografisch verteilte Nachschlagetabelle sind in diesem Leitfaden nicht enthalten.
Trichtermandant
Konfigurieren von Verbünden für jede Kombination aus Azure AD B2C-Mandanten und -Richtlinie
Konfigurieren Sie die Client-ID-Zuordnung zur Region. Verwenden Sie zum Emulieren die Transformation von Lookupansprüchen.
<ClaimsTransformation Id="ClientIdToRegion" TransformationMethod="LookupValue"> <InputClaims> <InputClaim ClaimTypeReferenceId="regionFromURL" TransformationClaimType="inputParameterId" /> </InputClaims> <InputParameters> <InputParameter Id="0dd7579e-fb90-4178-bc36-77a3fe658683" DataType="string" Value="APAC" /> <InputParameter Id="7e7f5403-b3d7-41cc-85fc-130ab6fd9361" DataType="string" Value="NOAM" /> <InputParameter Id="4ea5d578-9c51-4091-96d1-58e15e98e9b9" DataType="string" Value="EMEA" /> <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="false" /> </InputParameters> <OutputClaims> <OutputClaim ClaimTypeReferenceId="sendToRegion" TransformationClaimType="outputClaim" /> </OutputClaims> </ClaimsTransformation>
Konfigurieren Sie Verbünde, die basierend auf der Zuordnung der Client-ID zur Region aktiviert werden.
<TechnicalProfile Id="HRDLogic"> <DisplayName>ParseDomainHint</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Metadata> <Item Key="IncludeClaimResolvingInClaimsHandling">true</Item> </Metadata> <InputClaims> <InputClaim ClaimTypeReferenceId="regionFromURL" DefaultValue="{OIDC:ClientId}" AlwaysUseDefaultValue="true" /> </InputClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="sendToRegion" /> <OutputClaim ClaimTypeReferenceId="identityProviders" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="ClientIdToRegion" /> <OutputClaimsTransformation ReferenceId="CreateidentityProvidersCollection" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" /> </TechnicalProfile>
Regionaler Mandant
Erstellen Sie eine Anwendungsregistrierung, um einen Verbund mit dem Trichtermandanten einzurichten.
Anmelden
Konfigurieren Sie die Suchen nach Bezeichnern in einer Region über eine globale Nachschlagetabelle, und verwenden Sie zum Emulieren die Transformation von Lookupansprüchen.
<ClaimsTransformation Id="UserIdToRegion" TransformationMethod="LookupValue"> <InputClaims> <InputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="inputParameterId" /> </InputClaims> <InputParameters> <InputParameter Id="bob@noam.com" DataType="string" Value="NOAM" /> <InputParameter Id="bob@noam1.com" DataType="string" Value="NOAM" /> <InputParameter Id="john@emea.com" DataType="string" Value="EMEA" /> <InputParameter Id="john@emea1.com" DataType="string" Value="EMEA" /> <InputParameter Id="alice@apac.com" DataType="string" Value="APAC" /> <InputParameter Id="alice@apac1.com" DataType="string" Value="APAC" /> <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="false" /> </InputParameters> <OutputClaims> <OutputClaim ClaimTypeReferenceId="userLookupRegion" TransformationClaimType="outputClaim" /> </OutputClaims> </ClaimsTransformation>
Konfigurieren Sie die API-basierte Authentifizierung für Benutzer*innen außerhalb der Organisation und einen Aufruf der MS Graph-API zum Abrufen der Benutzerprofile.
Überprüfen Sie die Anmeldeinformationen, und rufen Sie das MS Graph-API-Token vom jeweiligen Mandanten ab. Registrieren Sie die native App-Registrierung in jedem regionalen Mandanten mit Berechtigungen für die MS Graph-API für delegierte Berechtigungen: user.read.
<TechnicalProfile Id="REST-login-NonInteractive-APAC"> <DisplayName>non interactive authentication to APAC</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Metadata> <Item Key="ServiceUrl">https://login.microsoftonline.com/b2capac.onmicrosoft.com/oauth2/v2.0/token</Item> <Item Key="AuthenticationType">None</Item> <Item Key="SendClaimsIn">Form</Item> <Item Key="AllowInsecureAuthInProduction">true</Item> </Metadata> <InputClaims> <InputClaim ClaimTypeReferenceId="apac_client_id" PartnerClaimType="client_id" DefaultValue="00001111-aaaa-2222-bbbb-3333cccc4444" /> <InputClaim ClaimTypeReferenceId="ropc_grant_type" PartnerClaimType="grant_type" DefaultValue="password" /> <InputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="username" /> <InputClaim ClaimTypeReferenceId="password" /> <InputClaim ClaimTypeReferenceId="scope" DefaultValue="https://graph.microsoft.com/.default" AlwaysUseDefaultValue="true" /> <InputClaim ClaimTypeReferenceId="nca" PartnerClaimType="nca" DefaultValue="1" /> </InputClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="bearerToken" PartnerClaimType="access_token" /> </OutputClaims> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" /> </TechnicalProfile>
Lesen Sie das Profil über die MS Graph-API für externe Benutzer*innen.
<TechnicalProfile Id="Azure AD-Read-User-MSGraph"> <DisplayName>revoke my refresh token</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Metadata> <Item Key="ServiceUrl">https://graph.microsoft.com/beta/me</Item> <Item Key="AuthenticationType">Bearer</Item> <Item Key="UseClaimAsBearerToken">bearerToken</Item> <Item Key="SendClaimsIn">Url</Item> <Item Key="DebugMode">true</Item> </Metadata> <InputClaims> <InputClaim ClaimTypeReferenceId="bearerToken" /> </InputClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="id" /> <OutputClaim ClaimTypeReferenceId="givenName" /> <OutputClaim ClaimTypeReferenceId="surName" /> <OutputClaim ClaimTypeReferenceId="displayName" /> <OutputClaim ClaimTypeReferenceId="userPrincipalName" PartnerClaimType="upn" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" /> </OutputClaims> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" /> </TechnicalProfile>
Registrieren
Schreiben Sie die Benutzerregion in eine globale Nachschlagetabelle.
Hinweis
Aufgrund der hartcodierten Nachschlagetabelle ist keine Einrichtung erforderlich.
Zurücksetzen von Kennwörtern
Konfigurieren Sie die Suche nach Bezeichnern in einer Region über eine globale Nachschlagetabelle.
Hinweis
Aufgrund der hartcodierten Nachschlagetabelle ist keine Einrichtung erforderlich.
Konfigurieren Sie die mandantenübergreifende Kennwortzurücksetzung über einen REST-API-Aufruf.
Hinweis
Dies erfordert die Broker-API mit client_credential-Authentifizierung. Außerdem muss die Benutzeradministratorrolle auf den Dienstprinzipal angewandt werden.