Prova de conceito do framework de identidade global do Azure Active Directory B2C para configuração baseada em funil
A secção seguinte descreve como criar uma prova de implementações de conceito para orquestração baseada em funil. As políticas personalizadas do Azure Active Directory B2C (Azure AD B2C) concluídas podem ser encontradas aqui.
Abordagem baseada em funil
O diagrama de bloco seguinte mostra a prova de conceito. A documentação de orientação mostrará como configurar os inquilinos do Azure AD B2C. A camada de API Externa e a tabela de referência distribuída geograficamente não estão incluídas como parte deste guia.
Inquilino de funil
Configurar federações para cada Azure AD combinação de inquilinos/políticas B2C
Configure client_id mapeamento para a região – utilize a transformação de afirmações de pesquisa para emular.
<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>
Configure as federações para serem ativadas com base no client_id – mapeamento de regiões.
<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>
Inquilino regional
Crie um registo de aplicação para estabelecer a federação com o inquilino de funil.
Iniciar sessão
Configure o identificador para pesquisa de região através da tabela de pesquisa global, utilize a transformação de afirmações de pesquisa para emular.
<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>
Configure a autenticação baseada em API para utilizador itinerante e o MS Graph API chamada para obter o perfil de utilizadores.
Verifique as credenciais e obtenha o token ms Graph API do respetivo inquilino. Registe o Registo de aplicações nativas em cada inquilino regional com permissões para MS Graph API para permissão delegada: 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>
Leia o perfil através do MS Graph API para utilizador itinerante.
<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>
Inscrever-se
Escreva a região de utilizadores na tabela de pesquisa global.
Nota
Nenhuma configuração devido à tabela de pesquisa codificada.
Reposição de palavras-passe
Configure o identificador para pesquisa de região através da tabela de pesquisa global.
Nota
Nenhuma configuração devido à tabela de pesquisa codificada.
Configurar a reposição de palavra-passe entre inquilinos através da chamada à API REST.
Nota
Exigirá a mediação da API com a autenticação client_credential e a função Administração utilizador aplicada ao principal de serviço.