Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 nas nossas Perguntas Frequentes.
Nota
No Azure Ative Directory B2C, as políticas personalizadas são projetadas principalmente para lidar com cenários complexos. Para a maioria dos cenários, recomendamos que você use fluxos de usuário internos. Se você não tiver feito isso, saiba mais sobre o pacote inicial de políticas personalizadas em Introdução às políticas personalizadas no Ative Directory B2C.
O elemento RelyingParty especifica o percurso do utilizador para impor o pedido atual ao Azure Ative Directory B2C (AAD B2C). Também especifica a lista de afirmações de que a entidade confiadora (RP) necessita como parte do token emitido. Um aplicativo RP, como um aplicativo Web, móvel ou desktop, chama o arquivo de política RP. O arquivo de política de RP executa uma tarefa específica, como entrar, redefinir uma senha ou editar um perfil. Vários aplicativos podem usar a mesma política de RP e um único aplicativo pode usar várias políticas. Todos os aplicativos RP recebem o mesmo token com declarações, e o usuário passa pela mesma jornada do usuário.
O exemplo a seguir mostra um elemento RelyingParty no arquivo de política B2C_1A_signup_signin:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TrustFrameworkPolicy
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="https://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06"
PolicySchemaVersion="0.3.0.0"
TenantId="your-tenant.onmicrosoft.com"
PolicyId="B2C_1A_signup_signin"
PublicPolicyUri="http://your-tenant.onmicrosoft.com/B2C_1A_signup_signin">
<BasePolicy>
<TenantId>your-tenant.onmicrosoft.com</TenantId>
<PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
</BasePolicy>
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<UserJourneyBehaviors>
<SingleSignOn Scope="Tenant" KeepAliveInDays="7"/>
<SessionExpiryType>Rolling</SessionExpiryType>
<SessionExpiryInSeconds>900</SessionExpiryInSeconds>
<JourneyInsights TelemetryEngine="ApplicationInsights" ConnectionString="your-application-insights-connection-string" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
<ContentDefinitionParameters>
<Parameter Name="campaignId">{OAUTH-KV:campaignId}</Parameter>
</ContentDefinitionParameters>
</UserJourneyBehaviors>
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Description>The policy profile</Description>
<Protocol Name="OpenIdConnect" />
<Metadata>collection of key/value pairs of data</Metadata>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="identityProvider" />
<OutputClaim ClaimTypeReferenceId="loyaltyNumber" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
...
O elemento opcional RelyingParty contém os seguintes elementos:
Elemento | Ocorrências | Descrição |
---|---|---|
DefaultUserJourney | 1:1 | A jornada do usuário padrão para o aplicativo RP. |
Pontos finais | 0:1 | Uma lista de pontos de extremidade. Para obter mais informações, consulte Ponto de extremidade UserInfo. |
UserJourneyBehaviors | 0:1 | O escopo dos comportamentos da jornada do usuário. |
Perfil Técnico | 1:1 | Um perfil técnico suportado pelo aplicativo RP. O perfil técnico fornece um contrato para o aplicativo RP entrar em contato com o Azure AD B2C. |
Você precisa criar os elementos filho RelyingParty na ordem apresentada na tabela anterior.
Pontos finais
O elemento Endpoints contém o seguinte elemento :
Elemento | Ocorrências | Descrição |
---|---|---|
Ponto Final | 1:1 | Uma referência a um ponto de extremidade. |
O elemento Endpoint contém os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
ID | Sim | Um identificador exclusivo do ponto de extremidade. |
UserJourneyReferenceId | Sim | Um identificador da jornada do usuário na política. Para obter mais informações, consulte Jornadas do usuário |
O exemplo a seguir mostra uma terceira parte confiável com o ponto de extremidade UserInfo:
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<Endpoints>
<Endpoint Id="UserInfo" UserJourneyReferenceId="UserInfoJourney" />
</Endpoints>
...
DefaultUserJourney
O DefaultUserJourney
elemento especifica uma referência ao identificador da jornada do usuário definido na política Base ou Extensões. Os exemplos a seguir mostram a jornada do usuário de inscrição ou entrada especificada no elemento RelyingParty :
B2C_1A_signup_signin política:
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn">
...
B2C_1A_TrustFrameWorkBase ou B2C_1A_TrustFrameworkExtensionPolicy:
<UserJourneys>
<UserJourney Id="SignUpOrSignIn">
...
O elemento DefaultUserJourney contém o seguinte atributo:
Atributo | Necessário | Descrição |
---|---|---|
Id de Referência | Sim | Um identificador da jornada do usuário na política. Para obter mais informações, consulte Jornadas do usuário |
UserJourneyBehaviors
O elemento UserJourneyBehaviors contém os seguintes elementos:
Elemento | Ocorrências | Descrição |
---|---|---|
SingleSignOn | 0:1 | O escopo do comportamento da sessão de logon único (SSO) de uma jornada do usuário. |
SessionExpiryType | 0:1 | O comportamento de autenticação da sessão. Valores possíveis: Rolling ou Absolute . O Rolling valor (padrão) indica que o usuário permanece conectado enquanto estiver continuamente ativo no aplicativo. O Absolute valor indica que o usuário é forçado a se autenticar novamente após o período de tempo especificado pelo tempo de vida da sessão do aplicativo. |
SessionExpiryInSeconds | 0:1 | O tempo de vida do cookie de sessão do Azure AD B2C especificado como um inteiro armazenado no navegador do usuário após a autenticação bem-sucedida. O padrão é 86.400 segundos (24 horas). O mínimo é de 900 segundos (15 minutos). O máximo é de 86.400 segundos (24 horas). |
JourneyInsights | 0:1 | A cadeia de conexão do Azure Application Insights a ser usada. |
ContentDefinitionParameters | 0:1 | A lista de pares de valores de chave a serem anexados ao URI de carga de definição de conteúdo. |
JourneyFraming | 0:1 | Permite que a interface do usuário desta política seja carregada em um iframe. |
ScriptExecution | 0:1 | Os modos de execução JavaScript suportados. Valores possíveis: Allow ou Disallow (padrão). |
Ao usar os elementos acima, você precisa adicioná-los ao seu elemento UserJourneyBehaviors na ordem especificada na tabela. Por exemplo, o elemento JourneyInsights deve ser adicionado antes (acima) do elemento ScriptExecution .
SingleSignOn
O elemento SingleSignOn contém os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
Âmbito de aplicação | Sim | O escopo do comportamento de logon único. Valores possíveis: Suppressed , Tenant , Application , ou Policy . O Suppressed valor indica que o comportamento é suprimido e o usuário sempre é solicitado para uma seleção de provedor de identidade. O Tenant valor indica que o comportamento é aplicado a todas as políticas no locatário. Por exemplo, um usuário navegando por duas jornadas de política para um locatário não é solicitado a uma seleção de provedor de identidade. O Application valor indica que o comportamento é aplicado a todas as políticas para o aplicativo que faz a solicitação. Por exemplo, um usuário navegando por duas jornadas de política para um aplicativo não é solicitado a uma seleção de provedor de identidade. O Policy valor indica que o comportamento só se aplica a uma política. Por exemplo, um usuário navegando por duas jornadas de política para uma estrutura de confiança é solicitado a uma seleção de provedor de identidade ao alternar entre políticas. |
KeepAliveInDays | Não | Controla por quanto tempo o usuário permanece conectado. Definir o valor como 0 desativa a funcionalidade KMSI. O padrão é 0 (desativado). O mínimo é 1 o dia. O máximo são 90 dias. Para obter mais informações, consulte Manter-me conectado. |
EnforceIdTokenHintOnLogout | Não | Força a passar um token de ID emitido anteriormente para o ponto de extremidade de logout como uma dica sobre a sessão autenticada atual do usuário final com o cliente. Valores possíveis: false (padrão) ou true . Para obter mais informações, consulte Login na Web com OpenID Connect. |
JourneyInsights
O elemento JourneyInsights contém os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
TelemetryEngine | Sim | O valor deve ser ApplicationInsights . |
ConnectionString | Sim | A cadeia de caracteres que contém a cadeia de conexão para o elemento application insights. |
Modo de Desenvolvedor | Sim | Valores possíveis: true ou false . Se true o , o Application Insights agiliza a telemetria por meio do pipeline de processamento. Esta configuração é boa para o desenvolvimento, mas limitada a grandes volumes. Os logs de atividades detalhados são projetados apenas para ajudar no desenvolvimento de políticas personalizadas. Não utilize o modo de desenvolvimento na produção. Os logs coletam todas as declarações enviadas de e para os provedores de identidade durante o desenvolvimento. Se usado na produção, o desenvolvedor assume a responsabilidade pelos dados pessoais coletados no log do App Insights de sua propriedade. Esses logs detalhados só são coletados quando esse valor é definido como true . |
ClientEnabled | Sim | Valores possíveis: true ou false . If true , envia o script do lado do cliente do Application Insights para controlar a exibição da página e os erros do lado do cliente. |
Habilitado para servidor | Sim | Valores possíveis: true ou false . Se true , envia o JSON UserJourneyRecorder existente como um evento personalizado para o Application Insights. |
TelemetriaVersão | Sim | O valor deve ser 1.0.0 . |
Para obter mais informações, consulte Coletando logs
ContentDefinitionParameters
Usando políticas personalizadas no Azure AD B2C, você pode enviar um parâmetro em uma cadeia de caracteres de consulta. Ao transmitir o parâmetro para o ponto final HTML, pode alterar dinamicamente o conteúdo da página. Por exemplo, pode alterar a imagem de fundo na página de inscrição ou de início de sessão do Azure AD B2C, com base num parâmetro que transmite a partir da sua aplicação Web ou móvel. O Azure AD B2C passa os parâmetros da cadeia de caracteres de consulta para seu arquivo HTML dinâmico, como o arquivo aspx.
O exemplo a seguir passa um parâmetro nomeado campaignId
com um valor de na cadeia de caracteres de hawaii
consulta:
https://login.microsoft.com/contoso.onmicrosoft.com/oauth2/v2.0/authorize?pB2C_1A_signup_signin&client_id=00001111-aaaa-2222-bbbb-3333cccc4444&nonce=defaultNonce&redirect_uri=http%3A%2F%2Fjwt.io%2F&scope=openid&response_type=id_token&prompt=login&campaignId=hawaii
O elemento ContentDefinitionParameters contém o seguinte elemento :
Elemento | Ocorrências | Descrição |
---|---|---|
ContentDefinitionParameter | 0:n | Uma cadeia de caracteres que contém o par de valores de chave que é anexado à cadeia de caracteres de consulta de um URI de carregamento de definição de conteúdo. |
O elemento ContentDefinitionParameter contém o seguinte atributo:
Atributo | Necessário | Descrição |
---|---|---|
Nome | Sim | O nome do par de valores de chave. |
Para obter mais informações, consulte Configurar a interface do usuário com conteúdo dinâmico usando políticas personalizadas
JourneyFraming
O elemento JourneyFraming contém os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
Ativado | Sim | Permite que essa política seja carregada em um iframe. Valores possíveis: false (padrão) ou true . |
Origens | Sim | Contém os domínios que carregarão o host do iframe. Para obter mais informações, consulte Carregando o Azure B2C em um iframe. |
Perfil Técnico
O elemento TechnicalProfile contém o seguinte atributo:
Atributo | Necessário | Descrição |
---|---|---|
ID | Sim | O valor deve ser PolicyProfile . |
O TechnicalProfile contém os seguintes elementos:
Elemento | Ocorrências | Descrição |
---|---|---|
Nome de Exibição | 1:1 | A cadeia de caracteres que contém o nome do perfil técnico. |
Descrição | 0:1 | A cadeia de caracteres que contém a descrição do perfil técnico. |
Protocolo | 1:1 | O protocolo utilizado para a federação. |
Metadados | 0:1 | A coleção de Item de pares chave/valor utilizados pelo protocolo para comunicação com o ponto de extremidade no decorrer de uma transação para configurar a interação entre a terceira parte confiável e outros participantes da comunidade. |
InputClaims | 1:1 | Uma lista de tipos de declaração que são tomados como entrada no perfil técnico. Cada um desses elementos contém referência a um ClaimType já definido na seção ClaimsSchema ou em uma política da qual esse arquivo de política herda. |
OutputClaims | 1:1 | Uma lista de tipos de declaração que são tomados como saída no perfil técnico. Cada um desses elementos contém referência a um ClaimType já definido na seção ClaimsSchema ou em uma política da qual esse arquivo de política herda. |
AssuntoNamingInfo | 1:1 | O nome do assunto usado em tokens. |
O elemento Protocol contém o seguinte atributo:
Atributo | Necessário | Descrição |
---|---|---|
Nome | Sim | O nome de um protocolo válido suportado pelo Azure AD B2C que é usado como parte do perfil técnico. Valores possíveis: OpenIdConnect ou SAML2 . O OpenIdConnect valor representa o padrão de protocolo OpenID Connect 1.0 de acordo com a especificação da base OpenID. O SAML2 representa o padrão de protocolo SAML 2.0 de acordo com a especificação OASIS. |
Metadados
Quando o protocolo é SAML
, um elemento de metadados contém os seguintes elementos. Para obter mais informações, consulte Opções para registrar um aplicativo SAML no Azure AD B2C.
Atributo | Necessário | Descrição |
---|---|---|
IdpInitiatedProfileEnabled | Não | Indica se o fluxo iniciado pelo IDP é suportado. Valores possíveis: true ou false (padrão). |
XmlSignatureAlgorithm | Não | O método que o Azure AD B2C usa para assinar a resposta SAML. Valores possíveis: Sha256 , Sha384 , Sha512 , ou Sha1 . Certifique-se de configurar o algoritmo de assinatura em ambos os lados com o mesmo valor. Utilize apenas o algoritmo suportado pelo certificado. Para configurar a asserção SAML, consulte Metadados do perfil técnico do emissor SAML. |
DataEncryptionMethod | Não | Indica o método que o Azure AD B2C usa para criptografar os dados, usando o algoritmo AES (Advanced Encryption Standard). Os metadados controlam o <EncryptedData> valor do elemento na resposta SAML. Valores possíveis: Aes256 (padrão), Aes192 , Sha512 , ou Aes128 . |
KeyEncryptionMethod | Não | Indica o método que o Azure AD B2C usa para criptografar a cópia da chave que foi usada para criptografar os dados. Os metadados controlam o <EncryptedKey> valor do elemento na resposta SAML. Valores possíveis: Rsa15 (padrão) - Algoritmo RSA Public Key Cryptography Standard (PKCS) Versão 1.5, RsaOaep - Algoritmo de encriptação RSA Optimal Asymmetric Encryption Padding (OAEP). |
UseDetachedKeys | Não | Valores possíveis: true , ou false (padrão). Quando o valor é definido como true , o Azure AD B2C altera o formato das declarações criptografadas. O uso de chaves desanexadas adiciona a asserção criptografada como um filho do EncryptedAssertion em oposição ao EncryptedData. |
WantsSignedResponses | Não | Indica se o Azure AD B2C assina a Response seção da resposta SAML. Valores possíveis: true (padrão) ou false . |
RemoveMillisecondsFromDateTime | Não | Indica se os milissegundos serão removidos dos valores datetime dentro da resposta SAML (eles incluem IssueInstant, NotBefore, NotOnOrAfter e AuthnInstant). Valores possíveis: false (padrão) ou true . |
RequestContextMaximumLengthInBytes | Não | Indica o comprimento máximo do parâmetro SAML applicationsRelayState . A predefinição é 1000. O máximo é 2048. |
InputClaims
O elemento InputClaims contém o seguinte elemento :
Elemento | Ocorrências | Descrição |
---|---|---|
InputClaim | 0:n | Um tipo de declaração de entrada esperado. |
O elemento InputClaim contém os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
IdentificadorDeReferênciaDeTipoDeReivindicação | Sim | Uma referência a um ClaimType já definido na seção ClaimsSchema no arquivo de política. |
Valor Padrão | Não | Um valor padrão que pode ser usado se o valor da declaração estiver vazio. |
TipoDeReivindicaçãoDeParceiro | Não | Envia a declaração em um nome diferente, conforme configurado na definição ClaimType. |
OutputClaims
O elemento OutputClaims contém o seguinte elemento :
Elemento | Ocorrências | Descrição |
---|---|---|
OutputClaim | 0:n | O nome de um tipo de declaração esperado na lista com suporte para a política à qual a terceira parte confiável se inscreve. Esta afirmação serve como uma saída para o perfil técnico. |
O elemento OutputClaim contém os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
IdentificadorDeReferênciaDeTipoDeReivindicação | Sim | Uma referência a um ClaimType já definido na seção ClaimsSchema no arquivo de política. |
Valor Padrão | Não | Um valor padrão que pode ser usado se o valor da declaração estiver vazio. |
TipoDeReivindicaçãoDeParceiro | Não | Envia a declaração em um nome diferente, conforme configurado na definição ClaimType. |
AssuntoNamingInfo
Com o elemento SubjectNamingInfo , você controla o valor do assunto do token:
-
JWT - a
sub
reivindicação. Esta é uma entidade sobre a qual o token afirma informações, como o usuário de um aplicativo. Este valor é imutável e não pode ser reatribuído ou reutilizado. Ele pode ser usado para executar verificações de autorização seguras, como quando o token é usado para acessar um recurso. Por padrão, a declaração de assunto é preenchida com a ID do objeto do usuário no diretório. Para obter mais informações, consulte Configuração de token, sessão e logon único. -
SAML token - o
<Subject><NameID>
elemento , que identifica o elemento subject. O formato NameId pode ser modificado.
O elemento SubjectNamingInfo contém o seguinte atributo:
Atributo | Necessário | Descrição |
---|---|---|
Tipo de reivindicação | Sim | Uma referência a PartnerClaimType de uma declaração de saída. As declarações de saída devem ser definidas na coleção OutputClaims da política de terceira parte confiável com um PartnerClaimType. Por exemplo, <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" /> ou <OutputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="signInName" /> . |
Formato | Não | Usado para partes confiáveis SAML para definir o formato NameId retornado na asserção SAML. |
O exemplo a seguir mostra como definir uma terceira parte confiável do OpenID Connect. As informações do nome do assunto são configuradas objectId
como:
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<TechnicalProfile Id="PolicyProfile">
<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" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
O JWT inclui a sub
declaração com o usuário objectId:
{
...
"sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
...
}
O exemplo a seguir mostra como definir uma terceira parte confiável SAML. As informações do nome do assunto são configuradas como o objectId
, e o NameId format
foi fornecido:
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="SAML2" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="identityProvider" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
</TechnicalProfile>
</RelyingParty>