Partilhar via


Configurar a Transmissão de Segurança com o Azure Active Directory B2C para autenticação sem palavra-passe

Neste tutorial, saiba como integrar a autenticação B2C (Azure AD B2C) do Azure Active Directory com o BindID de Transmissão de Segurança, uma solução de autenticação sem palavra-passe. O BindID utiliza autenticação biométrica do Fast Identity Online (FIDO2) forte para autenticação omnicanal fiável. A solução garante uma experiência de início de sessão suave para os clientes em todos os dispositivos e canais, ao mesmo tempo que reduz a fraude, phishing e reutilização de credenciais.

Descrição do cenário

O seguinte diagrama de arquitetura ilustra a implementação.

Diagrama da arquitetura BindID e Azure AD B2C.

  1. O utilizador abre a página de início de sessão Azure AD B2C e inicia sessão ou inscreve-se.
  2. Azure AD B2C redireciona o utilizador para BindID com um pedido openID Connect (OIDC).
  3. BindID autentica o utilizador com biometria FIDO2 de maçãs, como impressão digital.
  4. É devolvida uma resposta de autenticação descentralizada ao BindID.
  5. A resposta OIDC passa para Azure AD B2C.
  6. É concedido ou negado acesso ao utilizador à aplicação, com base nos resultados de verificação.

Pré-requisitos

Para começar, precisa do seguinte:

Registar uma aplicação no BindID

Para começar:

  1. Aceda a developer.bindid.io para Configurar a Sua Aplicação.
  2. Adicione uma aplicação no Portal de Administração BindID. É necessário iniciar sessão.
Propriedade Descrição
Nome Nome da aplicação
Domínio Introduza your-B2C-tenant-name.onmicrosoft.com. Substitua pelo your-B2C-tenant seu inquilino Azure AD B2C.
URIs de Redirecionamento https://jwt.ms/
URLs de Redirecionamento Introduza https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp. Substitua pelo your-B2C-tenant seu inquilino Azure AD B2C. Para um domínio personalizado, substitua pelo your-B2C-tenant-name.b2clogin.com seu domínio personalizado.
  1. Após o registo, é apresentado um ID de Cliente e Um Segredo do Cliente .
  2. Registe os valores a utilizar mais tarde.

Configurar o BindID como um fornecedor de identidade no Azure AD B2C

Para obter as seguintes instruções, utilize o diretório com a sua Azure AD inquilino B2C.

  1. Inicie sessão no portal do Azure como Administrador Global.
  2. Na barra de ferramentas do portal, selecione Diretórios + subscrições.
  3. Nas definições do Portal | Na página Diretórios + subscrições, na lista Nome do diretório, localize o diretório Azure AD B2C.
  4. Selecione Mudar.
  5. No canto superior esquerdo do portal do Azure, selecione Todos os serviços.
  6. Procure e selecione Azure AD B2C.
  7. Selecione Fornecedores de identidade.
  8. Selecione Novo fornecedor do OpenID Connect.
  9. Introduza um Nome.
  10. Para o URL de Metadados, introduza https://signin.bindid-sandbox.io/.well-known/openid-configuration.
  11. Para o ID de Cliente, introduza o ID de Cliente que gravou.
  12. Em Segredo do cliente, introduza o Segredo do Cliente que gravou.
  13. Para o Âmbito, introduza .openid email
  14. Para Tipo de resposta, selecione código.
  15. Em Modo de resposta, selecione form_post.
  16. Em Mapeamento de afirmações do fornecedor de identidade, para ID de Utilizador, selecione .sub
  17. Para Email, selecione email.
  18. Selecione Guardar.

Criar um fluxo de utilizador

  1. Na sua Azure AD inquilino B2C, em Políticas, selecione Fluxos de utilizador.
  2. Selecione Novo fluxo de utilizador.
  3. Selecione Inscrever-se e inicie sessão no tipo de fluxo de utilizador.
  4. Selecione Criar.
  5. Introduza um Nome.
  6. Em Fornecedores de identidade, para Contas Locais, selecione Nenhuma. Esta ação desativa a autenticação baseada em e-mail e palavra-passe.
  7. Para Fornecedores de identidade personalizados, selecione o fornecedor de Identidade BindID criado, como Iniciar sessão com BindID.
  8. Selecione Criar.

Testar o fluxo de utilizador

  1. No inquilino Azure AD B2C, selecione Fluxos de utilizador.
  2. Selecione o fluxo de utilizador criado, como B2C_1_signupsignin.
  3. Em Aplicação, selecione a aplicação Web que registou. O URL de Resposta é https://jwt.ms.
  4. Selecione Executar fluxo de utilizador.
  5. O browser é redirecionado para a página de início de sessão bindID.
  6. Introduza o e-mail da conta registada.
  7. Autentica através de biometria FIDO2 de maçãs, como impressão digital.
  8. O browser é redirecionado para https://jwt.ms. Os conteúdos são apresentados para o token devolvido pelo Azure AD B2C.

Criar uma chave de política BindID

Adicione a aplicação BindID Client Secret como uma chave de política. Para obter as seguintes instruções, utilize o diretório com a sua Azure AD inquilino B2C.

  1. Inicie sessão no portal do Azure.
  2. Na barra de ferramentas do portal, selecione Diretórios + subscrições.
  3. Nas definições do Portal | Na página Diretórios + subscrições, na lista Nome do diretório, localize o diretório Azure AD B2C.
  4. Selecione Mudar.
  5. Na página Descrição geral, em Políticas, selecione Identity Experience Framework.
  6. Selecione Chaves de Política.
  7. Selecione Adicionar.
  8. Para Opções, selecione Manual.
  9. Introduza um Nome. O prefixo B2C_1A_ é acrescentado ao nome da chave.
  10. Em Segredo, introduza o Segredo do Cliente que gravou.
  11. Em Utilização da chave, selecione Assinatura.
  12. Selecione Criar.

Configurar o BindID como um fornecedor de identidade

Para ativar o início de sessão com o BindID, defina BindID como um fornecedor de afirmações com o qual Azure AD B2C comunica através de um ponto final. O ponto final fornece afirmações utilizadas pelo Azure AD B2C para verificar um utilizador autenticado com identidade digital num dispositivo.

Adicione BindID como um fornecedor de afirmações. Para começar, obtenha os pacotes de introdução de políticas personalizadas a partir do GitHub e, em seguida, atualize os ficheiros XML no pacote de arranque SocialAndLocalAccounts com o seu nome de inquilino Azure AD B2C:

  1. Abra a pasta zip active-directory-b2c-custom-policy-starterpack-main.zip ou clone o repositório:

        git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. Nos ficheiros no diretório LocalAccounts, substitua a cadeia yourtenant pelo nome de inquilino Azure AD B2C.

  3. Abra o LocalAccounts/ TrustFrameworkExtensions.xml.

  4. Localize o elemento ClaimsProviders . Se não aparecer, adicione-o sob o elemento raiz.

  5. Adicione um novo ClaimsProvider semelhante ao seguinte exemplo:

     <ClaimsProvider>
         <Domain>signin.bindid-sandbox.io</Domain>
         <DisplayName>BindID</DisplayName>
         <TechnicalProfiles>
           <TechnicalProfile Id="BindID-OpenIdConnect">
             <DisplayName>BindID</DisplayName>
             <Protocol Name="OpenIdConnect" />
             <Metadata>
               <Item Key="METADATA">https://signin.bindid-sandbox.io/.well-known/openid-configuration</Item>
                <!-- Update the Client ID below to the BindID Application ID -->
               <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
               <Item Key="response_types">code</Item>
               <Item Key="scope">openid email</Item>
               <Item Key="response_mode">form_post</Item>
               <Item Key="HttpBinding">POST</Item>
               <Item Key="UsePolicyInRedirectUri">false</Item>
               <Item Key="AccessTokenResponseFormat">json</Item>
             </Metadata>
             <CryptographicKeys>
               <Key Id="client_secret" StorageReferenceId="B2C_1A_BindIDClientSecret" />
             </CryptographicKeys>
             <OutputClaims>
               <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
               <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
               <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
               <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
             </OutputClaims>
             <OutputClaimsTransformations>
               <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
               <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
               <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
             </OutputClaimsTransformations>
             <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
           </TechnicalProfile>
         </TechnicalProfiles>
       </ClaimsProvider>    
    
  6. Defina client_id com o ID da Aplicação BindID que registou.

  7. Selecione Guardar.

Adicionar um percurso de utilizador

O fornecedor de identidade não está nas páginas de início de sessão. Se tiver um percurso de utilizador personalizado, continue para Adicionar o fornecedor de identidade a um percurso de utilizador. Caso contrário, crie um percurso de utilizador de modelo duplicado:

  1. A partir do pacote de arranque, abra o LocalAccounts/ TrustFrameworkBase.xml ficheiro.
  2. Localize e copie o conteúdo do elemento UserJourney que inclui Id=SignUpOrSignIn.
  3. Abra o LocalAccounts/ TrustFrameworkExtensions.xml.
  4. Localize o elemento UserJourneys . Se não existir nenhum elemento, adicione um.
  5. Cole o elemento UserJourney como subordinado do elemento UserJourneys.
  6. Mude o nome do ID de percurso do utilizador.

Adicionar o fornecedor de identidade a um percurso do utilizador

Adicione o novo fornecedor de identidade ao percurso do utilizador.

  1. Localize o elemento do passo de orquestração que inclui Type=CombinedSignInAndSignUpou Type=ClaimsProviderSelection no percurso do utilizador. Normalmente, é o primeiro passo de orquestração. O elemento ClaimsProviderSelections tem uma lista de fornecedores de identidade com a qual os utilizadores iniciam sessão. A ordem dos elementos controla a ordem dos botões de início de sessão.
  2. Adicione um elemento ClaimsProviderSelection XML.
  3. Defina o valor de TargetClaimsExchangeId como um nome amigável.
  4. Adicione um elemento ClaimsExchange .
  5. Defina o ID para o valor do ID de troca de afirmações de destino. Esta ação liga o botão BindID a BindID-SignIn.
  6. Atualize o valor TechnicalProfileReferenceId para o ID do perfil técnico que criou.

O XML seguinte demonstra o percurso do utilizador de orquestração com o fornecedor de identidade.

    <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
      <ClaimsProviderSelections>
        ...
        <ClaimsProviderSelection TargetClaimsExchangeId="BindIDExchange" />
      </ClaimsProviderSelections>
      ...
    </OrchestrationStep>
    
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      ...
      <ClaimsExchanges>
        <ClaimsExchange Id="BindIDExchange" TechnicalProfileReferenceId="BindID-OpenIdConnect" />
      </ClaimsExchanges>
    </OrchestrationStep>

Configurar a política da entidade confiadora

A política da entidade confiadora, por exemplo, SignUpOrSignIn.xml, especifica o percurso do utilizador Azure AD O B2C é executado. Pode controlar as afirmações transmitidas à sua aplicação ao ajustar o elemento OutputClaims do elemento PolicyProfile TechnicalProfile. Neste tutorial, a aplicação recebe os atributos de utilizador, tais como nome a apresentar, nome dado, apelido, e-mail, objectId, fornecedor de identidade e tenantId.

Veja Azure-Samples/active-directory-b2c-custom-policy-starterpack

  <RelyingParty>
    <DefaultUserJourney ReferenceId="SignUpOrSignInWithBindID" />
    <TechnicalProfile Id="BindID-OpenIdConnect">
      <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="displayName" />
        <OutputClaim ClaimTypeReferenceId="givenName" />
        <OutputClaim ClaimTypeReferenceId="surname" />
        <OutputClaim ClaimTypeReferenceId="email" />
        <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
        <OutputClaim ClaimTypeReferenceId="identityProvider" />
        <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
      </OutputClaims>
      <SubjectNamingInfo ClaimType="sub" />
    </TechnicalProfile>
  </RelyingParty>

Carregar a política personalizada

  1. Inicie sessão no portal do Azure.
  2. Na barra de ferramentas do portal, selecione Diretórios + subscrições.
  3. Nas definições do Portal | Na página Diretórios + subscrições, na lista Nome do diretório, localize o Azure AD diretório B2C.
  4. Selecione Mudar.
  5. Na portal do Azure, procure e selecione Azure AD B2C.
  6. Em Políticas, selecione Identity Experience Framework.
  7. Selecione Carregar Política Personalizada.
  8. Carregue os ficheiros no pacote inicial LocalAccounts pela seguinte ordem:
  • Política base, por exemplo TrustFrameworkBase.xml
  • Política de localização, por exemplo TrustFrameworkLocalization.xml
  • Política de extensão, por exemplo TrustFrameworkExtensions.xml
  • Política de entidade confiadora, como SignUpOrSignIn.xml

Testar a política personalizada

Para obter as seguintes instruções, utilize o diretório com o seu inquilino Azure AD B2C.

  1. No Azure AD inquilino B2C e, em Políticas, selecione Identity Experience Framework.
  2. Em Políticas personalizadas, selecione B2C_1A_signup_signin.
  3. Em Aplicação, selecione a aplicação Web que registou. O URL de Resposta é https://jwt.ms.
  4. Selecione Executar agora.
  5. O browser é redirecionado para a página de início de sessão do BindID.
  6. Introduza o e-mail da conta registada.
  7. Autenticar com a biometria FIDO2 de maçãs, como impressão digital.
  8. O browser é redirecionado para https://jwt.ms. Os conteúdos do token, devolvidos por Azure AD B2C, são apresentados.

Passos seguintes

Para obter informações adicionais, veja os seguintes artigos: