Freigeben über


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.

Screenshot eines Blockdiagramms für den trichterbasierten Ansatz

Trichtermandant

  1. Erstellen eines Mandanten

  2. Konfigurieren von Verbünden für jede Kombination aus Azure AD B2C-Mandanten und -Richtlinie

  3. 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>
    
  4. 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

  1. Erstellen eines Mandanten

  2. Erstellen Sie eine Anwendungsregistrierung, um einen Verbund mit dem Trichtermandanten einzurichten.

Anmelden

  1. 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>
    
  2. 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.

    1. Ü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>
      
    2. 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

  1. Konfigurieren Sie die Suche nach Bezeichnern in einer Region über eine globale Nachschlagetabelle.

    Hinweis

    Aufgrund der hartcodierten Nachschlagetabelle ist keine Einrichtung erforderlich.

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

Nächste Schritte