Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais em nossas perguntas frequentes.
O Azure AD B2C (Azure Active Directory B2C) dá suporte à federação com provedores de identidade SAML 2.0. Este artigo mostra como habilitar a entrada com uma conta de usuário do provedor de identidade SAML, permitindo que os usuários façam login com suas identidades sociais ou corporativas existentes, como ADFS e Salesforce.
Antes de começar, use o seletor Escolha um tipo de política na parte superior dessa página para escolher o tipo de política que você está configurando. O Azure Active Directory B2C oferece dois métodos para definir como os usuários interagem com seus aplicativos: por meio de fluxos de usuários predefinidos ou por meio de políticas personalizadas totalmente configuráveis. As etapas necessárias neste artigo são diferentes para cada método.
Esse recurso está disponível apenas para políticas personalizadas. Para as etapas de instalação, selecione Política personalizada no seletor anterior.
Visão geral do cenário
Você pode configurar o Azure AD B2C para permitir que os usuários entrem em seu aplicativo com credenciais de provedores de identidade SAML (IdP) sociais ou corporativos externos. Quando o Azure AD B2C federa com um provedor de identidade SAML, ele atua como um provedor de serviços iniciando uma solicitação SAML para o provedor de identidade SAML e aguardando uma resposta SAML. No seguinte diagrama:
- O aplicativo inicia uma solicitação de autorização para o Azure AD B2C. O aplicativo pode ser um aplicativo OAuth 2.0 ou OpenId Connect ou um provedor de serviços SAML.
- Na página de entrada do Azure AD B2C, o usuário opta por entrar com uma conta de provedor de identidade SAML (por exemplo, Contoso). O Azure AD B2C inicia uma solicitação de autorização SAML e leva o usuário ao provedor de identidade SAML para concluir a entrada.
- O provedor de identidade SAML retorna uma resposta SAML.
- O Azure AD B2C valida o token SAML, extrai declarações, emite seu próprio token e leva o usuário de volta ao aplicativo.
Pré-requisitos
- Conclua as etapas em Comece a usar políticas personalizadas no Active Directory B2C. Esse tutorial mostra como atualizar arquivos de política personalizados para usar sua configuração de locatário do Azure AD B2C.
- Se você não registrou um aplicativo Web, registre um usando as etapas para registrar um aplicativo Web.
Componentes da solução
Os seguintes componentes necessários são para este cenário:
- Um provedor de identidade SAML com a capacidade de receber, decodificar e responder a solicitações SAML do Azure AD B2C.
- Um endpoint de metadados SAML disponível publicamente para seu provedor de identidade.
- Um inquilino do Azure AD B2C.
Importante
Seus endpoints devem cumprir os requisitos de segurança do Azure AD B2C. Versões e criptografias TLS mais antigas são preteridas. Para obter mais informações, consulte os requisitos do TLS do Azure AD B2C e do conjunto de criptografias.
Criar uma chave de política
Para estabelecer confiança entre o Azure AD B2C e o provedor de identidade SAML, você precisa fornecer um certificado X509 válido com a chave privada. O Azure AD B2C assina as solicitações SAML, usando a chave privada do certificado. O provedor de identidade valida a solicitação usando a chave pública do certificado. A chave pública pode ser acessada por meio de metadados de perfil técnico. Como alternativa, você pode fazer upload manualmente do arquivo .cer para seu provedor de identidade SAML.
Um certificado autoassinado é aceitável para a maioria dos cenários. Para ambientes de produção, é recomendável usar um certificado X509 emitido por uma autoridade de certificação. Além disso, conforme descrito posteriormente neste documento, para um ambiente de não produção é possível desabilitar a assinatura do SAML em ambos os lados.
Obter um certificado
Se você ainda não tiver um certificado, será possível usar um certificado autoassinado. Um certificado autoassinado é um certificado de segurança que não é assinado por uma autoridade de certificação (AC) e não fornece as garantias de segurança de um certificado assinado por uma AC.
No Windows, use o cmdlet New-SelfSignedCertificate no PowerShell para gerar um certificado.
Execute o seguinte comando do PowerShell para gerar um certificado autoassinado. Modifique o argumento
-Subjectconforme apropriado para o aplicativo e o nome do locatário do Azure AD B2C, comocontosowebapp.contoso.onmicrosoft.com. Você também pode ajustar a data-NotAfterpara especificar uma expiração diferente para o certificado.New-SelfSignedCertificate ` -KeyExportPolicy Exportable ` -Subject "CN=yourappname.yourtenant.onmicrosoft.com" ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -KeyUsage DigitalSignature ` -NotAfter (Get-Date).AddMonths(12) ` -CertStoreLocation "Cert:\CurrentUser\My"No Windows, pesquise e selecione Gerenciar certificados de usuário
Em Certificados – Usuário Atual, selecione Pessoal>Certificados>yourappname.yourtenant.onmicrosoft.com.
Selecione o certificado e, em seguida, selecione Ação>Todas as Tarefas>Exportar.
Selecione Próximo>Sim, exportar a chave privada>Próximo.
Aceite os padrões para Formato de arquivo para exportação e selecione Próximo.
Habilite a opção Senha, insira uma senha para o certificado e selecione Próximo.
Para especificar um local para salvar seu certificado, selecione Procurar e navegue até um diretório de sua preferência.
Na janela Salvar como, insira um Nome de arquivo e, em seguida, selecione Salvar.
Selecione Avançar>Concluir.
Para o Azure AD B2C aceitar a senha do arquivo .pfx, a senha deve estar criptografada com a opção TripleDES-SHA1 no utilitário de exportação do repositório de certificados do Windows, em oposição ao AES256-SHA256.
Carregar o certificado
Você precisa armazenar seu certificado em seu locatário do Azure AD B2C.
- Entre no portal do Azure.
- Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para seu locatário do Azure AD B2C no menu Diretórios + assinaturas.
- Escolha Todos os serviços no canto superior esquerdo do Portal do Azure, pesquise Azure AD B2C e selecione-o.
- Na página Visão geral, selecione Identity Experience Framework.
- Selecione Chaves de Política e, em seguida, selecione Adicionar.
- Para Opções, escolha
Upload. - Insira um Nome para a chave de política. Por exemplo,
SAMLSigningCert. O prefixoB2C_1A_é adicionado automaticamente ao nome da chave. - Navegue até o seu arquivo .pfx do certificado com a chave privada e selecione-o.
- Clique em Criar.
Configurar o perfil técnico SAML
Defina o provedor de identidade SAML adicionando-o ao elemento ClaimsProviders no arquivo de extensão da sua política. Os provedores de declarações contêm um perfil técnico SAML que determina os pontos de extremidade e os protocolos necessários para se comunicar com o provedor de identidade SAML. Para adicionar um provedor de declarações com um perfil técnico SAML:
Abra TrustFrameworkExtensions.xml.
Localize o elemento ClaimsProviders. Se ele não existir, adicione-o sob o elemento raiz.
Adicione um novo ClaimsProvider da seguinte maneira:
<ClaimsProvider> <Domain>Contoso.com</Domain> <DisplayName>Contoso</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Contoso-SAML2"> <DisplayName>Contoso</DisplayName> <Description>Login with your SAML identity provider account</Description> <Protocol Name="SAML2"/> <Metadata> <Item Key="PartnerEntity">https://your-AD-FS-domain/federationmetadata/2007-06/federationmetadata.xml</Item> </Metadata> <CryptographicKeys> <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="assertionSubjectName" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="first_name" /> <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="last_name" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="http://schemas.microsoft.com/identity/claims/displayname" /> <OutputClaim ClaimTypeReferenceId="email" /> <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="contoso.com" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp"/> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Atualize os seguintes elementos XML com o valor relevante:
| Elemento XML | Valor |
|---|---|
| Provedor de Declarações\Domínio | O nome de domínio usado para entrada direta. Insira o nome de domínio que você deseja usar na entrada direta. Por exemplo, Contoso.com. |
| PerfilTécnico\NomedeExibição | Esse valor será exibido no botão de login na tela de login. Por exemplo, Contoso. |
| Metadados\EntidadeParceira | URL dos metadados do provedor de identidade SAML. Ou você pode copiar os metadados do provedor de identidade e adicioná-los dentro do elemento <![CDATA[Your IDP metadata]]>CDATA. |
Mapear as reivindicações
O elemento OutputClaims contém uma lista de declarações retornadas pelo provedor de identidade SAML. Mapeie o nome da declaração definida em sua política para o nome da declaração definido no provedor de identidade. Verifique com seu provedor de identidade a lista de reivindicações (afirmações). Para obter mais informações, consulte mapeamento de declarações.
No exemplo acima, Contoso-SAML2 inclui as declarações retornadas por um provedor de identidade SAML:
- A declaração assertionSubjectName é mapeada para a declaração issuerUserId .
- A declaração first_name é mapeada para a declaração givenName.
- A declaração last_name é mapeada para a declaração surname.
- A
http://schemas.microsoft.com/identity/claims/displaynamedeclaração é mapeada para a declaração displayName . - A declaração email sem mapeamento de nome.
O perfil técnico também retorna declarações que não são retornadas pelo provedor de identidade:
- A declaração identityProvider que contém o nome do provedor de identidade.
- A declaração authenticationSource com um valor padrão de socialIdpAuthentication.
Adicionar o perfil técnico da sessão SAML
Se você ainda não tiver o perfil técnico da SM-Saml-idp sessão SAML, adicione um à sua política de extensão. Localize a <ClaimsProviders> seção e adicione o snippet XML a seguir. Se sua política já contiver o perfil técnico SM-Saml-idp, pule para a próxima etapa. Para obter mais informações, consulte o gerenciamento de sessão de logon único.
<ClaimsProvider>
<DisplayName>Session Management</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="SM-Saml-idp">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="IncludeSessionIndex">false</Item>
<Item Key="RegisterServiceProviders">false</Item>
</Metadata>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Adicione um percurso de usuário
Neste ponto, o provedor de identidade foi configurado, mas ainda não está disponível em nenhuma das páginas de entrada. Se você não tiver seu próprio percurso de usuário personalizado, crie a duplicata de um percurso de usuário de um modelo existente; caso contrário, passe para a próxima etapa.
- Abra o arquivo TrustFrameworkBase.xml do starter pack.
- Localize e copie todo o conteúdo do elemento UserJourney que inclui
Id="SignUpOrSignIn". - Abra o TrustFrameworkExtensions.xml e localize o elemento UserJourneys. Se o elemento não existir, adicione um.
- Cole todo o conteúdo do elemento UserJourney que você copiou como filho do elemento UserJourneys.
- Renomeie a ID do percurso de usuário. Por exemplo,
Id="CustomSignUpSignIn".
Adicione o provedor de identidade a um percurso de usuário
Agora que você tem um percurso de usuário, adicione a ele o novo provedor de identidade. Primeiro, adicione um botão de entrada e, em seguida, vincule o botão a uma ação. A ação é o perfil técnico criado anteriormente.
No percurso de usuário, localize o elemento da etapa de orquestração que inclui
Type="CombinedSignInAndSignUp"ouType="ClaimsProviderSelection". Normalmente é a primeira etapa de orquestração. O elementoClaimsProviderSelectionscontém uma lista de provedores de identidade que um usuário pode usar para se conectar. A ordem dos elementos controla a ordem dos botões de entrada apresentados para o usuário. 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ê já criou.
O XML a seguir demonstra as duas primeiras etapas de orquestração de um percurso do usuário com o provedor de identidade:
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="ContosoExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="Contoso-SAML2" />
</ClaimsExchanges>
</OrchestrationStep>
Configurar a política de terceira parte confiável
A política de terceira parte confiável, por exemplo SignUpSignIn.xml, especifica a jornada do usuário que o Azure AD B2C será executado. 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 CustomSignUpSignIn usuário, o ReferenceId é definido como CustomSignUpSignIn:
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Carregar a política personalizada
- Entre no portal do Azure.
- Selecione o ícone Diretório + Assinatura na barra de ferramentas do portal e selecione o diretório que contém o locatário do Azure AD B2C.
- No portal do Azure, pesquise e selecione Azure AD B2C.
- Em Políticas, selecione Identity Experience Framework.
- Selecione Carregar política personalizadae, em seguida, carregue os dois arquivos de política que você alterou, na seguinte ordem: a política de extensão, por exemplo
TrustFrameworkExtensions.xml, a política de terceira parte confiável, comoSignUpSignIn.xml.
Configurar seu provedor de identidade SAML
Depois que sua política for configurada, você precisará configurar seu provedor de identidade SAML com os metadados SAML do Azure AD B2C. Os metadados SAML são informações usadas no protocolo SAML para expor a configuração de sua política, o provedor de serviços. Ele define o local dos serviços, como entrada e saída, certificados, método de entrada e muito mais.
Cada provedor de identidade SAML tem etapas diferentes para definir um provedor de serviços. Alguns provedores de identidade SAML solicitam os metadados do Azure AD B2C, enquanto outros exigem que você percorra o arquivo de metadados manualmente e forneça as informações. Consulte a documentação do provedor de identidade para obter diretrizes.
O exemplo a seguir mostra um endereço de URL para os metadados SAML de um perfil técnico do Azure AD B2C:
https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>
Ao usar um domínio personalizado, use o seguinte formato:
https://your-domain-name/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>
Substitua os seguintes valores:
- your-tenant-name pelo nome do locatário, como your-tenant.onmicrosoft.com.
- your-domain-name pelo seu nome de domínio personalizado, como login.contoso.com.
- your-policy pelo nome da política. Por exemplo, B2C_1A_signup_signin_adfs.
- your-technical-profile pelo nome do perfil técnico do provedor de identidade SAML. Por exemplo, Contoso-SAML2.
Abra um navegador e navegue até o URL. Certifique-se de digitar a URL correta e de ter acesso ao arquivo de metadados XML.
Testar sua política personalizada
- Entre no portal do Azure.
- Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para seu locatário do Azure AD B2C no menu Diretórios + assinaturas.
- No portal do Azure, pesquise e selecione Azure AD B2C.
- Em Políticas, selecione Estrutura de experiência de identidade
- Selecione a política de terceira parte confiável, por exemplo,
B2C_1A_signup_signin. - Em Aplicativo, selecione o aplicativo Web que você registrou anteriormente. A URL de resposta deve mostrar
https://jwt.ms. - Clique no botão Executar agora.
- Na página de inscrição ou entrada, selecione Contoso para entrar com a conta da Contoso.
Se o processo de entrada for bem-sucedido, seu navegador será redirecionado para https://jwt.ms, que exibe o conteúdo do token retornado pelo Azure AD B2C.