RelyingParty
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" InstrumentationKey="your-application-insights-key" 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 | Description |
---|---|---|
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 | Description |
---|---|---|
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 | Description |
---|---|---|
ReferenceId | 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 | Description |
---|---|---|
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 chave de instrumentaçã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 | Description |
---|---|---|
Scope | 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 | Description |
---|---|---|
TelemetryEngine | Sim | O valor deve ser ApplicationInsights . |
InstrumentaçãoKey | Sim | A cadeia de caracteres que contém a chave de instrumentação para o elemento application insights. |
DeveloperMode | 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 | Description |
---|---|---|
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 | Description |
---|---|---|
Name | 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 | Description |
---|---|---|
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 | Description |
---|---|---|
DisplayName | 1:1 | A cadeia de caracteres que contém o nome do perfil técnico. |
Description | 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 | Description |
---|---|---|
Name | 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 | Description |
---|---|---|
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 separadas adiciona a asserção criptografada como um filho do EncrytedAssertion 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 | Description |
---|---|---|
InputClaim | 0:n | Um tipo de declaração de entrada esperado. |
O elemento InputClaim contém os seguintes atributos:
Atributo | Necessário | Description |
---|---|---|
ClaimTypeReferenceId | Sim | Uma referência a um ClaimType já definido na seção ClaimsSchema no arquivo de política. |
DefaultValue | Não | Um valor padrão que pode ser usado se o valor da declaração estiver vazio. |
PartnerClaimType | 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 | Description |
---|---|---|
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 | Description |
---|---|---|
ClaimTypeReferenceId | Sim | Uma referência a um ClaimType já definido na seção ClaimsSchema no arquivo de política. |
DefaultValue | Não | Um valor padrão que pode ser usado se o valor da declaração estiver vazio. |
PartnerClaimType | 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:
- 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 | Description |
---|---|---|
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 token 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>