Поделиться через


Подтверждение концепции платформы глобальных удостоверений Azure Active Directory B2C для конфигурации на основе воронки

В следующем разделе описывается создание подтверждений реализации концепции для оркестрации на основе воронки. Готовые пользовательские политики Azure Active Directory B2C (Azure AD B2C) можно найти здесь.

Подход на основе воронки

На следующей блок-схеме показано подтверждение концепции. В этом руководстве показано, как настроить Azure AD клиентов B2C. Внешний уровень API и таблица географического распределенного поиска не включены в это руководство.

Снимок экрана: блок-схема подхода на основе воронки.

Воронкообразный клиент

  1. Создайте клиент.

  2. Настройка федераций для каждого сочетания клиента и политики B2C Azure AD

  3. Настройка client_id сопоставления с регионом — используйте преобразование утверждения подстановки для эмуляции.

    <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. Настройте федерации для включения на основе client_id — сопоставление регионов.

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

Региональный клиент

  1. Создайте клиент.

  2. Создайте регистрацию приложения , чтобы установить федерацию с воронкообразным клиентом.

Войти

  1. Настройте идентификатор для подстановки региона с помощью глобальной таблицы подстановки, используйте преобразование утверждения подстановки для эмуляции.

    <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. Настройте проверку подлинности на основе API для перемещающегося пользователя, а MS API Graph вызов для получения профиля пользователей.

    1. Проверьте учетные данные и получите маркер MS API Graph от соответствующего клиента. Регистрация регистрации собственного приложения в каждом региональном клиенте с разрешениями на ms API Graph для делегированного разрешения: 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. Чтение профиля через MS API Graph для путешествующего пользователя.

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

Регистрация

Запись региона пользователей в глобальную таблицу подстановки.

Примечание

Нет настройки из-за жестко закодированных таблиц подстановок.

Сброс паролей

  1. Настройка идентификатора для подстановки региона с помощью глобальной таблицы подстановки.

    Примечание

    Нет настройки из-за жестко закодированных таблиц подстановок.

  2. Настройка сброса паролей между клиентами с помощью вызова REST API.

    Примечание

    Потребуется API брокера, использующий проверку подлинности client_credential и роль Администратор пользователя, примененную к субъекту-службе.

Дальнейшие действия