Tutorial: Configurar o Azure Active Directory B2C com BlokSec para autenticação sem palavra-passe
Antes de começar
O Azure Active Directory B2C tem dois métodos para definir interações do utilizador com aplicações: fluxos de utilizador predefinidos ou políticas personalizadas configuráveis.
Nota
No Azure Active Directory B2C, as políticas personalizadas abordam principalmente cenários complexos. Para a maioria dos cenários, recomendamos fluxos de utilizador incorporados.
Veja Descrição geral dos fluxos de utilizador e das políticas personalizadas
Azure AD B2C e BlokSec
Saiba como integrar a autenticação B2C (Azure AD B2C) do Azure Active Directory com o Router de Identidade Descentralizada blokSec. A solução BlokSec simplifica o início de sessão do utilizador com autenticação sem palavra-passe e autenticação multifator sem tokens. A solução protege os clientes de ataques relacionados com identidades, como o recheio de palavras-passe, phishing e man-in-the-middle.
Para saber mais, aceda a 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 fornecedor de identidade (IdP) para aplicações B2C
-
BlokSec Decentralized Identity Router – gateway para serviços que aplicam BlokSec DIaaS para encaminhar pedidos de autenticação e autorização para aplicações do Fornecedor de Identidade Pessoal (PIdP) do utilizador
- É um fornecedor de identidade do OpenID Connect (OIDC) no Azure AD B2C
-
Aplicação móvel baseada em BlokSec SDK – PIdP do utilizador no cenário de autenticação descentralizada.
- Se não estiver a utilizar o SDK BlokSec, aceda ao Google Play para obter o yuID de BlokSec gratuito
O seguinte diagrama de arquitetura ilustra o fluxo de inscrição e início de sessão na implementação da solução BlokSec.
- O utilizador inicia sessão numa aplicação B2C Azure AD e é reencaminhado para Azure AD política de início de sessão e inscrição B2C
- Azure AD B2C redireciona o utilizador para o router de identidade descentralizado BlokSec com o fluxo de código de autorização OIDC.
- O router BlokSec envia uma notificação push para a aplicação móvel do utilizador com detalhes do pedido de autenticação e autorização.
- O utilizador revê o desafio de autenticação. É pedido a um utilizador aceite biometria, como impressão digital ou análise facial.
- A resposta é assinada digitalmente com a chave digital exclusiva do utilizador. A resposta de autenticação fornece prova de posse, presença e consentimento. A resposta regressa ao router.
- O router verifica a assinatura digital relativamente à chave pública exclusiva imutável do utilizador armazenada num livro razão distribuído. O router responde ao Azure AD B2C com o resultado da autenticação.
- É concedido ou negado acesso ao utilizador.
Ativar BlokSec
- Aceda a bloksec.com e selecione Pedir um inquilino de demonstração .
- No campo de mensagem, indique que pretende integrar com Azure AD B2C.
- Transfira e instale a aplicação móvel gratuita BlokSec yuID.
- Depois de o inquilino de demonstração estar preparado, é recebido um e-mail.
- No dispositivo móvel com a aplicação BlokSec, selecione a ligação para registar a sua conta de administrador na sua aplicação yuID.
Pré-requisitos
Para começar, precisa do seguinte:
- Uma subscrição do Azure
- Se não tiver uma, obtenha uma conta do Azfree
- Um inquilino B2C Azure AD ligado à subscrição do Azure
- Uma demonstração blokSec
- Registar uma aplicação Web
Veja também Tutorial: Criar fluxos de utilizador e políticas personalizadas no Azure AD B2C
Criar um registo de aplicação no BlokSec
No e-mail de registo da conta do BlokSec, localize a ligação para a consola de administração do BlokSec.
- Inicie sessão na consola de administração do BlokSec.
- No dashboard principal, selecione Adicionar Criação de Aplicação > Personalizada.
- Em Nome, introduza Azure AD B2C ou um nome de aplicação.
- Para tipo de SSO, selecione OIDC.
- Para o URI do Logótipo, introduza uma ligação para a imagem do logótipo.
- Para URIs de Redirecionamento, utilize
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
. Para um domínio personalizado, introduzahttps://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp
. - Para Publicar URIs de redirecionamento de início de sessão, introduza
https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/{policy}/oauth2/v2.0/logout
. - Selecione o Azure AD aplicação B2C criado para abrir a configuração da aplicação.
- Selecione Gerar Segredo da Aplicação.
Saiba mais: Enviar um pedido de início de sessão.
Nota
Precisa do ID da aplicação e do segredo da aplicação para configurar o fornecedor de identidade (IdP) no Azure AD B2C.
Adicionar um novo fornecedor de identidade no Azure AD B2C
Para obter as seguintes instruções, utilize o diretório que contém a sua Azure AD inquilino B2C.
- Inicie sessão no portal do Azure como Administrador Global do seu inquilino Azure AD B2C.
- Na barra de ferramentas do portal, selecione Diretórios + subscrições.
- Na página Definições do portal, Diretórios + subscrições, na lista Nome do diretório, localize a sua Azure AD diretório B2C.
- Selecione Mudar.
- No canto superior esquerdo do portal do Azure, selecione Todos os serviços.
- Procure e selecione Azure AD B2C.
- Navegue para FornecedoresdeIdentidade B2C >do Azure Active Directory do Dashboard>.
- Selecione Novo Fornecedor de Ligação OpenID.
- Selecione Adicionar.
Configurar um fornecedor de identidade
- Selecionar Tipo de fornecedor > de identidade OpenID Connect
- Em Nome, introduza BlokSec yuID Sem palavra-passe ou outro nome.
- Para o URL de Metadados, introduza
https://api.bloksec.io/oidc/.well-known/openid-configuration
. - Para O IDV do Cliente, introduza o ID da aplicação a partir da IU do administrador do BlokSec.
- Para Segredo do Cliente, introduza o segredo da aplicação da IU de administração do BlokSec.
- Em Âmbito, selecione Perfil de e-mail OpenID.
- Para Tipo de resposta, selecione Código.
- Para Sugestão de domínio, selecione yuID.
- Selecione OK.
- Selecione Mapear as afirmações deste fornecedor de identidade.
- Para ID de Utilizador, selecione sub.
- Em Nome a apresentar, selecione nome.
- Para Nome especificado, utilize given_name.
- Para Apelido, utilize family_name.
- Para Email, utilize o e-mail.
- Selecione Guardar.
Registo de utilizadores
- Inicie sessão na consola de administração do BlokSec com a credencial fornecida.
- Navegue para o Azure AD aplicação B2C criada anteriormente.
- No canto superior direito, selecione o ícone de engrenagem .
- Selecione Criar Conta.
- Em Criar Conta, introduza as informações do utilizador. Anote o Nome da Conta.
- Selecione Submeter.
O utilizador recebe um e-mail de registo de conta no endereço de e-mail fornecido. Indique ao utilizador para selecionar a ligação de registo no dispositivo móvel com a aplicação BlokSec yuID.
Criar uma política de fluxo de utilizador
Para obter as seguintes instruções, confirme que BlokSec é um novo fornecedor de identidade OIDC (IdP).
- No seu Azure AD inquilino B2C, em Políticas, selecione Fluxos de utilizador.
- Selecione Novo fluxo de utilizador.
- Selecione Inscrever-se e inicie sessão na>Criação da Versão>.
- Introduza um Nome de política.
- Na secção fornecedores de identidade, selecione o fornecedor de identidade BlokSec criado.
- Em Conta Local, selecione Nenhuma. Esta ação desativa o e-mail e a autenticação baseada em palavra-passe.
- Selecione Executar fluxo de utilizador
- No formulário, introduza o URL de Resposta, como
https://jwt.ms
. - O browser é redirecionado para a página de início de sessão blokSec.
- Introduza o nome da conta do registo de utilizador.
- O utilizador recebe uma notificação push no dispositivo móvel com a aplicação BlokSec yuID.
- O utilizador abre a notificação e é apresentado o desafio de autenticação.
- Se a autenticação for aceite, o browser redireciona o utilizador para o URL de resposta.
Nota
No Azure Active Directory B2C, as políticas personalizadas abordam principalmente cenários complexos. Para a maioria dos cenários, recomendamos fluxos de utilizador incorporados.
Veja Descrição geral dos fluxos de utilizador e das políticas personalizadas
Criar uma chave de política
Armazene o segredo do cliente que anotou no inquilino do Azure AD B2C. Para obter as seguintes instruções, utilize o diretório com o seu inquilino Azure AD B2C.
- Inicie sessão no portal do Azure.
- Na barra de ferramentas do portal, selecione Diretórios + subscrições.
- Na página Definições do portal, Diretórios + subscrições, na lista Nome do diretório, localize o Azure AD diretório B2C.
- Selecione Mudar.
- No canto superior esquerdo da portal do Azure, selecione Todos os serviços
- Procure e selecione Azure AD B2C.
- Na página Descrição geral , selecione Identity Experience Framework.
- Selecione Chaves de Política.
- Selecione Adicionar.
- Em Opções, selecione Manual.
- Introduza um Nome de política para a chave de política. Por exemplo,
BlokSecAppSecret
. O prefixoB2C_1A_
é adicionado ao nome da chave. - Em Segredo, introduza o segredo do cliente que anotou.
- Em Utilização da chave, selecione Assinatura.
- Selecione Criar.
Configurar BlokSec como um fornecedor de identidade
Para permitir que os utilizadores iniciem sessão com a identidade descentralizada blokSec, defina BlokSec como um fornecedor de afirmações. Esta ação garante que Azure AD B2C comunica com o mesmo através de um ponto final. Azure AD B2C utiliza afirmações de ponto final para verificar a identidade de autenticação dos utilizadores através da biometria, como a impressão digital ou a análise facial.
Para definir BlokSec como um fornecedor de afirmações, adicione-o ao elemento ClaimsProvider no ficheiro de extensão de política.
Abra o
TrustFrameworkExtensions.xml
.Localize o elemento ClaimsProviders . Se o elemento não aparecer, adicione-o sob o elemento raiz.
Para adicionar 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 o ID da aplicação a partir do registo da aplicação.
Selecione Guardar.
Adicionar um percurso de utilizador
Utilize as seguintes instruções se o fornecedor de identidade estiver configurado, mas não numa página de início de sessão. Se não tiver um percurso de utilizador personalizado, copie um percurso de utilizador de modelo.
- A partir do pacote de arranque, abra o
TrustFrameworkBase.xml
ficheiro. - 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 UserJourney que copiou como subordinado do elemento UserJourneys .
- Mude o nome do ID de percurso do utilizador. Por exemplo, ID=
CustomSignUpSignIn
.
Adicionar o fornecedor de identidade a um percurso do utilizador
Se tiver um percurso de utilizador, adicione o novo fornecedor de identidade ao mesmo. Primeiro, adicione um botão de início de sessão e, em seguida, ligue-o a uma ação, que é o perfil técnico que criou.
- No percurso do utilizador, localize o elemento do passo de orquestração que inclui Type=
CombinedSignInAndSignUp
ou Type=ClaimsProviderSelection
. Normalmente, é o primeiro passo de orquestração. O elemento ClaimsProviderSelections contém uma lista de fornecedores de identidade para o início de sessão do utilizador. A ordem dos elementos controla a ordem dos botões de início de sessão que o utilizador vê. - Adicione um elemento ClaimsProviderSelection XML.
- Defina o valor de TargetClaimsExchangeId como um nome amigável.
- No passo de orquestração seguinte, adicione um elemento ClaimsExchange .
- Defina o ID para o valor do ID de troca de afirmações de destino.
- Atualize o valor de TechnicalProfileReferenceId para o ID do perfil técnico que criou.
O XML seguinte demonstra os dois primeiros passos de orquestração do percurso do utilizador com o fornecedor 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 da entidade confiadora
A política da entidade confiadora, por exemplo SignUpSignIn.xml, especifica o percurso do utilizador Azure AD B2C executa.
- Localize o elemento DefaultUserJourney na entidade confiadora.
- Atualize o ReferenceId para corresponder ao ID de percurso do utilizador, no qual adicionou o fornecedor de identidade.
No exemplo seguinte, para o percurso do CustomSignUpOrSignIn
utilizador, o ReferenceId está definido como CustomSignUpOrSignIn
.
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Carregar a política personalizada
Para obter as seguintes instruções, utilize o diretório com o seu inquilino Azure AD B2C.
- Inicie sessão no portal do Azure.
- Na barra de ferramentas do portal, selecione Diretórios + subscrições.
- Na página Definições do portal, Diretórios + subscrições, na lista Nome do diretório, localize o Azure AD diretório B2C
- Selecione Mudar.
- Na portal do Azure, procure e selecione Azure AD B2C.
- Em Políticas, selecione Identity Experience Framework.
- Selecione Carregar Política Personalizada.
- Carregue os dois ficheiros de política que alterou pela seguinte ordem:
- Política de extensão, por exemplo
TrustFrameworkExtensions.xml
- Política de entidade confiadora, como
SignUpSignIn.xml
Testar a política personalizada
- Selecione a política da entidade confiadora, por exemplo
B2C_1A_signup_signin
. - Em Aplicação, selecione uma aplicação Web que tenha registado.
- O URL de Resposta é apresentado como
https://jwt.ms
. - Selecione Executar agora.
- Na página de inscrição ou início de sessão, selecione Google para iniciar sessão com a conta Google.
- O browser é redirecionado para
https://jwt.ms
. Veja o conteúdo do token devolvido pelo Azure AD B2C.
Saiba mais: Tutorial: Registar uma aplicação Web no Azure Active Directory B2C