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.
- Se você não estiver usando o SDK do BlokSec, acesse Google Play para obter o yuID gratuito do BlokSec
O diagrama de arquitetura a seguir ilustra o fluxo de inscrição e entrada na implementação da solução BlokSec.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- É concedido ou negado o acesso ao usuário.
Habilitar BlokSec
- Acesse o bloksec.com e selecione Solicitar locatário de demonstração.
- No campo de mensagem, indique que deseja integrar com o Azure AD B2C.
- Baixe e instale o aplicativo móvel gratuito BlokSec yuID.
- Depois que o locatário de demonstração é preparado, chega um email.
- 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:
- Uma assinatura do Azure
- Se já não tiver, obtenha uma conta gratuita do Azure
- Um locatário do Azure AD B2C vinculado à assinatura do Azure.
- A BlokSec demo
- Registrar um aplicativo Web
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.
- Entre no console de administração do BlokSec.
- No painel principal, selecione Adicionar aplicativo > Criar personalizado.
- Em Nome, insira Azure AD B2C ou o nome de um aplicativo.
- Em Tipo do SSO, selecione OIDC.
- Em URI do logotipo, insira um link para a imagem do logotipo.
- 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, insirahttps://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp
. - 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
. - Selecione o aplicativo Azure AD B2C criado para abrir a configuração do aplicativo.
- 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.
- Entre no portal do Azure como Administrador Global do seu locatário do Azure AD B2C.
- Na barra de ferramentas do portal, selecione Diretórios + assinaturas.
- Na página Configurações do portal, Diretórios + assinaturas, encontre o diretório Azure AD B2C na lista Nome do diretório.
- Selecione Alternar.
- No canto superior esquerdo do portal do Azure, selecione Todos os serviços.
- Pesquise e selecione Azure AD B2C.
- Navegue até os Painel>Azure Active Directory B2C>Provedores de identidade.
- Selecione Novo provedor do OpenID Connect.
- Selecione Adicionar.
Configure um provedor de identidade
- Selecione Tipo de provedor de identidade > OpenID Connect
- Em Nome, insira BlokSec yuID sem senha ou outro nome.
- Em URL de metadados, insira
https://api.bloksec.io/oidc/.well-known/openid-configuration
. - Em IDV do Cliente, insira a ID do aplicativo da interface do usuário de administração do BlokSec.
- Em Segredo do Cliente, insira o segredo do aplicativo da interface do usuário de administração do BlokSec.
- Em Escopo, selecione perfil de email do OpenID.
- Em Tipo de resposta, selecione Código.
- Em Dica de domínio, selecione yuID.
- Selecione OK.
- Clique em Mapear essas declarações do provedor de identidade.
- Em ID de Usuário, selecione sub.
- Em Nome de exibição, selecione nome.
- Em Nome, use given_name.
- Em Sobrenome, use family_name.
- Em Email, use email.
- Clique em Salvar.
Registro de usuário
- Entre no console de administração do BlokSec com a credencial fornecida.
- Navegue até o aplicativo do Azure AD B2C criado anteriormente.
- No canto superior direito, selecione o ícone de engrenagem.
- Selecione Criar Conta.
- Em Criar Conta, insira as informações do usuário. Observe o Nome da Conta.
- 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.
- No locatário do Azure AD B2C, em Políticasselecione Fluxos de usuário.
- Selecione Novo fluxo de usuário.
- Selecione Inscrever-se e entrar>Versão>Criar.
- Insira uma política Nome.
- Na seção Provedores de identidade, selecione o provedor de identidade do BlokSec criado.
- Em Contas locais, selecione Nenhuma. Essa ação desabilita a autenticação por email e baseada em senha.
- Selecionar Executar fluxo de usuário.
- No formulário, insira a URL de resposta, como
https://jwt.ms
. - O navegador é redirecionado para a página de entrada do BlokSec.
- Insira o nome da conta com base no registro do usuário.
- O usuário recebe uma notificação por push no dispositivo móvel com o aplicativo yuID do BlokSec.
- O usuário abre a notificação e o desafio de autenticação é exibido.
- 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.
- Entre no portal do Azure.
- Na barra de ferramentas do portal, selecione Diretórios + assinaturas.
- Na página Configurações do portal, Diretórios + assinaturas, encontre o diretório Azure AD B2C na lista Nome do diretório.
- Selecione Alternar.
- No canto superior esquerdo do portal do Azure, selecione Todos os serviços
- Pesquise e selecione Azure AD B2C.
- Na página Visão geral, selecione Identity Experience Framework.
- Selecione Chaves de Política.
- Selecione Adicionar.
- Para Opções, escolha Manual.
- Insira um Nome de política para a chave de política. Por exemplo,
BlokSecAppSecret
. O prefixoB2C_1A_
é adicionado ao nome da chave. - Em Segredo, insira o segredo do cliente que você anotou.
- Para Uso de chave, selecione Assinatura.
- 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.
Abra o
TrustFrameworkExtensions.xml
.Localize o elemento ClaimsProviders. Se o elemento não aparecer, adicione-o sob o elemento raiz.
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>
Defina client_id para a ID do aplicativo de registro de aplicativo.
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.
- No pacote de inicialização, abra o arquivo
TrustFrameworkBase.xml
. - Localize e copie o conteúdo do elemento UserJourneys que inclui ID=
SignUpOrSignIn
. - Abra o
TrustFrameworkExtensions.xml
. - Localize o elemento UserJourneys. Se o elemento não aparecer, adicione um.
- Cole o conteúdo do elemento UserJourneys copiado como filho do elemento UserJourneys.
- 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.
- 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ê. - Adicione um elemento XML ClaimsProviderSelection.
- Defina o valor de TargetClaimsExchangeId com um nome amigável.
- Na próxima etapa de orquestração, adicione um elemento ClaimsExchange.
- Defina a ID como o valor da ID de troca de declarações de destino.
- 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.
- Localize o elemento DefaultUserJourney na terceira parte confiável.
- 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.
- Entre no portal do Azure.
- Na barra de ferramentas do portal, selecione Diretórios + assinaturas.
- Na página Configurações do portal, Diretórios + assinaturas, encontre o diretório do Azure AD B2C na lista Nome do diretório
- Selecione Alternar.
- No portal do Azure, pesquise e selecione Azure AD B2C.
- Em Políticas, selecione Identity Experience Framework.
- Selecione Carregar Política Personalizada.
- 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
- Selecione a política de terceira parte confiável, por exemplo,
B2C_1A_signup_signin
. - Para Aplicativo, selecione um aplicativo Web registrado por você.
- A URL de Resposta é exibida como
https://jwt.ms
. - Selecione Executar Agora.
- Na página de inscrição ou de entrada, selecione Google para entrar com a conta do Google.
- 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