Tutorial: Configurar o Azure Active Directory B2C com o BlokSec para autenticação sem senha

Antes de começar

O Azure Active Directory B2C tem dois métodos para definir a interação do usuário com os aplicativos: fluxos de usuários predefinidos ou políticas personalizadas configuráveis.

Observação

No Azure Active Directory B2C, as políticas personalizadas endereçam principalmente os cenários complexos. Para a maioria dos cenários, recomendamos os fluxos de usuários internos.
Confira, Fluxos de usuários e visão geral das políticas personalizadas

Azure AD B2C e BlokSec

Saiba como integrar a autenticação do Azure AD B2C (Azure Active Directory B2C) ao Roteador de Identidade Descentralizada do BlokSec. A solução BlokSec simplifica a entrada do usuário com autenticação sem senha e autenticação multifator sem token. A solução protege os clientes contra ataques relacionados à identidade, como recheio de senha, phishing e man-in-the-middle.

Para saber mais, acesse bloksec.com: BlokSec Technologies Inc.

Descrição do cenário

A integração do BlokSec inclui os seguintes componentes:

  • Azure AD B2C – Servidor de autorização e provedor de identidade (IdP) para aplicativos B2C
  • Roteador de identidade descentralizado do BlokSec – Gateway para serviços que aplicam BlokSec DIaaS para rotear solicitações de autenticação e autorização para aplicativos de PIdP (Provedor de Identidade Pessoal) do usuário
    • Trata-se de um provedor de identidade OIDC (OpenID Connect) no Azure AD B2C
  • Aplicativo móvel baseado em SDK do BlokSec – PIdP dos usuários no cenário de autenticação descentralizada.

O diagrama de arquitetura a seguir ilustra o fluxo de inscrição e entrada na implementação da solução BlokSec.

Diagrama do fluxo de inscrição e de entrada na implementação da solução do BlokSec.

  1. O usuário entra em um aplicativo do Azure AD B2C e é encaminhado para a política de entrada e de inscrição do Azure AD B2C
  2. O Azure AD B2C redireciona o usuário para o roteador descentralizado de identidade do BlokSec usando o fluxo de código de autorização do OIDC.
  3. O roteador do BlokSec envia uma notificação por push para o aplicativo móvel do usuário com os detalhes da solicitação de autenticação e autorização.
  4. O usuário examina o desafio de autenticação. Um usuário aceito é solicitado a fornecer biometria, como impressão digital ou verificação facial.
  5. A resposta é assinada digitalmente com a chave digital exclusiva do usuário. A resposta à autenticação final fornece prova de posse, presença e consentimento. A resposta retorna ao roteador.
  6. O roteador verifica a assinatura digital em relação à chave pública única e imutável do usuário armazenada em um registro distribuído. O roteador responde ao Azure AD B2C com o resultado da autenticação.
  7. É concedido ou negado o acesso ao usuário.

Habilitar BlokSec

  1. Acesse o bloksec.com e selecione Solicitar locatário de demonstração.
  2. No campo de mensagem, indique que deseja integrar com o Azure AD B2C.
  3. Baixe e instale o aplicativo móvel gratuito BlokSec yuID.
  4. Depois que o locatário de demonstração é preparado, chega um email.
  5. No dispositivo móvel que tem o aplicativo BlokSec, selecione o link para registrar sua conta de administrador no aplicativo yuID.

Pré-requisitos

Para começar, você precisa do seguinte:

Confira também, Tutorial: criar fluxos de usuários e políticas personalizadas no Azure AD B2C

Criar um registro de aplicativo no BlokSec

No email de registro de conta do BlokSec, localize o link do console de administração do BlokSec.

  1. Entre no console de administração do BlokSec.
  2. No painel principal, selecione Adicionar aplicativo > Criar personalizado.
  3. Em Nome, insira Azure AD B2C ou o nome de um aplicativo.
  4. Em Tipo do SSO, selecione OIDC.
  5. Em URI do logotipo, insira um link para a imagem do logotipo.
  6. Em URIs de redirecionamento, use https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp. Por exemplo, https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authresp. Em domínio personalizado, insira https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp.
  7. Em URIs de redirecionamento pós saída, insira https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/{policy}/oauth2/v2.0/logout.
  8. Selecione o aplicativo Azure AD B2C criado para abrir a configuração do aplicativo.
  9. Selecione Gerar Segredo do Aplicativo.

Saiba mais: Enviar uma solicitação de saída.

Observação

Você precisa da ID e do segredo do aplicativo para configurar o IdP (provedor de identidade) no Azure AD B2C.

Adicionar um novo provedor de Identidade no Azure AD B2C

Para ver as instruções a seguir, use o diretório que contém seu locatário do Azure AD B2C.

  1. Entre no portal do Azure como Administrador Global do seu locatário do Azure AD B2C.
  2. Na barra de ferramentas do portal, selecione Diretórios + assinaturas.
  3. Na página Configurações do portal, Diretórios + assinaturas, encontre o diretório Azure AD B2C na lista Nome do diretório.
  4. Selecione Alternar.
  5. No canto superior esquerdo do portal do Azure, selecione Todos os serviços.
  6. Pesquise e selecione Azure AD B2C.
  7. Navegue até os Painel>Azure Active Directory B2C>Provedores de identidade.
  8. Selecione Novo provedor do OpenID Connect.
  9. Selecione Adicionar.

Configure um provedor de identidade

  1. Selecione Tipo de provedor de identidade > OpenID Connect
  2. Em Nome, insira BlokSec yuID sem senha ou outro nome.
  3. Em URL de metadados, insira https://api.bloksec.io/oidc/.well-known/openid-configuration.
  4. Em IDV do Cliente, insira a ID do aplicativo da interface do usuário de administração do BlokSec.
  5. Em Segredo do Cliente, insira o segredo do aplicativo da interface do usuário de administração do BlokSec.
  6. Em Escopo, selecione perfil de email do OpenID.
  7. Em Tipo de resposta, selecione Código.
  8. Em Dica de domínio, selecione yuID.
  9. Selecione OK.
  10. Clique em Mapear essas declarações do provedor de identidade.
  11. Em ID de Usuário, selecione sub.
  12. Em Nome de exibição, selecione nome.
  13. Em Nome, use given_name.
  14. Em Sobrenome, use family_name.
  15. Em Email, use email.
  16. Clique em Salvar.

Registro de usuário

  1. Entre no console de administração do BlokSec com a credencial fornecida.
  2. Navegue até o aplicativo do Azure AD B2C criado anteriormente.
  3. No canto superior direito, selecione o ícone de engrenagem.
  4. Selecione Criar Conta.
  5. Em Criar Conta, insira as informações do usuário. Observe o Nome da Conta.
  6. Selecione Enviar.

O usuário receberá um email de registro de conta no endereço de email fornecido. Instrua o usuário a selecionar o link de registro no dispositivo móvel com o aplicativo yuID do BlokSec.

Criar uma política de fluxo de usuário

Para obter as instruções a seguir, verifique se o BlokSec é um novo IdP (provedor de identidade) OIDC.

  1. No locatário do Azure AD B2C, em Políticasselecione Fluxos de usuário.
  2. Selecione Novo fluxo de usuário.
  3. Selecione Inscrever-se e entrar>Versão>Criar.
  4. Insira uma política Nome.
  5. Na seção Provedores de identidade, selecione o provedor de identidade do BlokSec criado.
  6. Em Contas locais, selecione Nenhuma. Essa ação desabilita a autenticação por email e baseada em senha.
  7. Selecionar Executar fluxo de usuário.
  8. No formulário, insira a URL de resposta, como https://jwt.ms.
  9. O navegador é redirecionado para a página de entrada do BlokSec.
  10. Insira o nome da conta com base no registro do usuário.
  11. O usuário recebe uma notificação por push no dispositivo móvel com o aplicativo yuID do BlokSec.
  12. O usuário abre a notificação e o desafio de autenticação é exibido.
  13. Se o desafio de autenticação é aceito, o navegador redireciona o usuário à URL de resposta.

Observação

No Azure Active Directory B2C, as políticas personalizadas endereçam principalmente os cenários complexos. Para a maioria dos cenários, recomendamos os fluxos de usuários internos.
Confira, Fluxos de usuários e visão geral das políticas personalizadas

Criar uma chave de política

Armazene o Segredo do Cliente que você anotou no seu locatário do Azure AD B2C. Para obter as instruções a seguir, use o diretório com o locatário do Azure AD B2C.

  1. Entre no portal do Azure.
  2. Na barra de ferramentas do portal, selecione Diretórios + assinaturas.
  3. Na página Configurações do portal, Diretórios + assinaturas, encontre o diretório Azure AD B2C na lista Nome do diretório.
  4. Selecione Alternar.
  5. No canto superior esquerdo do portal do Azure, selecione Todos os serviços
  6. Pesquise e selecione Azure AD B2C.
  7. Na página Visão geral, selecione Identity Experience Framework.
  8. Selecione Chaves de Política.
  9. Selecione Adicionar.
  10. Para Opções, escolha Manual.
  11. Insira um Nome de política para a chave de política. Por exemplo, BlokSecAppSecret. O prefixo B2C_1A_ é adicionado ao nome da chave.
  12. Em Segredo, insira o segredo do cliente que você anotou.
  13. Para Uso de chave, selecione Assinatura.
  14. Selecione Criar.

Configurar o BlokSec como um provedor de identidade

Para permitir que os usuários entrem usando a identidade descentralizada do BlokSec, defina o BlokSec como um provedor de declarações. Essa ação garante que o Azure AD B2C se comunica com ele por meio de um ponto de extremidade. O Azure AD B2C usa declarações de ponto de extremidade para verificar se os usuários autenticam a identidade usando biometria, como impressão digital ou verificação facial.

Para definir o BlokSec como um provedor de declarações, adicione-o ao elemento ClaimsProvider no arquivo de extensão da política.

  1. Abra o TrustFrameworkExtensions.xml.

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

  3. Para adiciona um novo ClaimsProvider:

    <ClaimsProvider>
      <Domain>bloksec</Domain>
      <DisplayName>BlokSec</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="BlokSec-OpenIdConnect">
          <DisplayName>BlokSec</DisplayName>
          <Description>Login with your BlokSec decentriled identity</Description>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="METADATA">https://api.bloksec.io/oidc/.well-known/openid-configuration</Item>
            <!-- Update the Client ID below to the BlokSec Application ID -->
            <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid profile email</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="DiscoverMetadataByTokenIssuer">true</Item>
            <Item Key="ValidTokenIssuerPrefixes">https://api.bloksec.io/oidc</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_BlokSecAppSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Defina client_id para a ID do aplicativo de registro de aplicativo.

  5. Clique em Salvar.

Adicione um percurso de usuário

Use as instruções a seguir se o provedor de identidade estiver configurado, mas não em nenhuma página de entrada. Se você não tiver um percurso do usuário personalizado, copie um modelo de percurso do usuário.

  1. No pacote de inicialização, abra o arquivo TrustFrameworkBase.xml.
  2. Localize e copie o conteúdo do elemento UserJourneys que inclui ID=SignUpOrSignIn.
  3. Abra o TrustFrameworkExtensions.xml.
  4. Localize o elemento UserJourneys. Se o elemento não aparecer, adicione um.
  5. Cole o conteúdo do elemento UserJourneys copiado como filho do elemento UserJourneys.
  6. Renomeie a ID do percurso do usuário. Por exemplo, ID=CustomSignUpSignIn.

Adicione o provedor de identidade a um percurso de usuário

Se você tem um percurso de usuário, adicione a ele o novo provedor de identidade. Primeiro, adicione um botão de entrada e vincule-o a uma ação, que é o perfil técnico que você criou.

  1. No percurso do usuário, localize o elemento da etapa de orquestração que inclui Type=CombinedSignInAndSignUp ou Type=ClaimsProviderSelection. Normalmente é a primeira etapa de orquestração. O elementoClaimsProviderSelections contém uma lista de provedores de identidade para entrada do usuário. A ordem dos elementos controla a ordem dos botões de entrada que o usuário vê.
  2. Adicione um elemento XML ClaimsProviderSelection.
  3. Defina o valor de TargetClaimsExchangeId com um nome amigável.
  4. Na próxima etapa de orquestração, adicione um elemento ClaimsExchange.
  5. Defina a ID como o valor da ID de troca de declarações de destino.
  6. Atualize o valor de TechnicalProfileReferenceId para a ID do perfil técnico você criou.

O seguinte XML demonstra as duas primeiras etapas da orquestração do percurso do usuário com o provedor de identidade:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="BlokSecExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="BlokSecExchange" TechnicalProfileReferenceId="BlokSec-OpenIdConnect" />
  </ClaimsExchanges>
</OrchestrationStep>

Configurar a política de terceira parte confiável

A política de terceira parte confiável, por exemplo SignUpSignIn.xml, especifica o percurso do usuário que o Azure AD B2C executa.

  1. Localize o elemento DefaultUserJourney na terceira parte confiável.
  2. Atualize a ReferenceId para corresponder à ID do percurso do usuário, na qual você adicionou o provedor de identidade.

No exemplo a seguir, para o percurso do usuário CustomSignUpOrSignIn, a ReferenceId é definida como CustomSignUpOrSignIn.

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Carregar a política personalizada

Para obter as instruções a seguir, use o diretório com o locatário do Azure AD B2C.

  1. Entre no portal do Azure.
  2. Na barra de ferramentas do portal, selecione Diretórios + assinaturas.
  3. Na página Configurações do portal, Diretórios + assinaturas, encontre o diretório do Azure AD B2C na lista Nome do diretório
  4. Selecione Alternar.
  5. No portal do Azure, pesquise e selecione Azure AD B2C.
  6. Em Políticas, selecione Identity Experience Framework.
  7. Selecione Carregar Política Personalizada.
  8. Carregue os dois arquivos de política que você alterou na seguinte ordem:
  • Política de extensão, por exemplo TrustFrameworkExtensions.xml
  • Política de terceira parte confiável, como SignUpSignIn.xml

Teste a política personalizada

  1. Selecione a política de terceira parte confiável, por exemplo, B2C_1A_signup_signin.
  2. Para Aplicativo, selecione um aplicativo Web registrado por você.
  3. A URL de Resposta é exibida como https://jwt.ms.
  4. Selecione Executar Agora.
  5. Na página de inscrição ou de entrada, selecione Google para entrar com a conta do Google.
  6. O navegador é redirecionado para https://jwt.ms. Confira o conteúdo do token retornado pelo Azure AD B2C.

Saiba mais: Tutorial: Registrar um aplicativo Web no Azure Active Directory B2C

Próximas etapas