RelyingParty
Nota
No Azure Active Directory B2C, as políticas personalizadas são concebidas principalmente para abordar cenários complexos. Para a maioria dos cenários, recomendamos que utilize fluxos de utilizador incorporados. Se ainda não o fez, saiba mais sobre o pacote de introdução de políticas personalizadas em Introdução às políticas personalizadas no Active 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. Uma aplicação RP, como uma aplicação Web, móvel ou de ambiente de trabalho, chama o ficheiro de política RP. O ficheiro de política RP executa uma tarefa específica, como iniciar sessão, repor uma palavra-passe ou editar um perfil. Várias aplicações podem utilizar a mesma política de RP e uma única aplicação pode utilizar várias políticas. Todas as aplicações RP recebem o mesmo token com afirmações e o utilizador percorre o mesmo percurso de utilizador.
O exemplo seguinte mostra um elemento RelyingParty no ficheiro 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 RelyingParty opcional contém os seguintes elementos:
Elemento | Ocorrências | Description |
---|---|---|
DefaultUserJourney | 1:1 | O percurso de utilizador predefinido para a aplicação RP. |
Pontos Finais | 0:1 | Uma lista de pontos finais. Para obter mais informações, veja UserInfo endpoint (Ponto final userInfo). |
UserJourneyBehaviors | 0:1 | O âmbito dos comportamentos de percurso do utilizador. |
TechnicalProfile | 1:1 | Um perfil técnico suportado pela aplicação RP. O perfil técnico fornece um contrato para a aplicação RP contactar Azure AD B2C. |
Tem de criar os elementos subordinados relyingParty na ordem apresentada na tabela anterior.
Pontos Finais
O elemento Pontos Finais contém o seguinte elemento:
Elemento | Ocorrências | Description |
---|---|---|
Ponto final | 1:1 | Uma referência a um ponto final. |
O elemento Ponto Final contém os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
Id | Yes | Um identificador exclusivo do ponto final. |
UserJourneyReferenceId | Yes | Um identificador do percurso do utilizador na política. Para obter mais informações, veja percursos do utilizador |
O exemplo seguinte mostra uma entidade confiadora com o ponto final UserInfo:
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<Endpoints>
<Endpoint Id="UserInfo" UserJourneyReferenceId="UserInfoJourney" />
</Endpoints>
...
DefaultUserJourney
O DefaultUserJourney
elemento especifica uma referência ao identificador do percurso de utilizador definido na política Base ou Extensões. Os exemplos seguintes mostram a inscrição ou o percurso de utilizador de início de sessão especificado 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 |
---|---|---|
ReferenceId | Yes | Um identificador do percurso do utilizador na política. Para obter mais informações, veja percursos do utilizador |
UserJourneyBehaviors
O elemento UserJourneyBehaviors contém os seguintes elementos:
Elemento | Ocorrências | Description |
---|---|---|
SingleSignOn | 0:1 | O âmbito do comportamento de sessão de início de sessão único (SSO) de um percurso de utilizador. |
SessionExpiryType | 0:1 | O comportamento de autenticação da sessão. Valores possíveis: Rolling ou Absolute . O Rolling valor (predefinição) indica que o utilizador permanece com sessão iniciada, desde que o utilizador esteja continuamente ativo na aplicação. O Absolute valor indica que o utilizador é forçado a reautentorizar após o período de tempo especificado pela duração da sessão da aplicação. |
SessionExpiryInSeconds | 0:1 | A duração do Azure AD cookie de sessão do B2C especificado como um número inteiro armazenado no browser do utilizador após a autenticação bem-sucedida. A predefinição é de 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 Aplicação Azure Insights a utilizar. |
ContentDefinitionParameters | 0:1 | A lista de pares de valores-chave a acrescentar ao URI de carga da definição de conteúdo. |
JourneyFraming | 0:1 | Permite que a interface de utilizador desta política seja carregada num iframe. |
ScriptExecution | 0:1 | Os modos de execução javaScript suportados. Valores possíveis: Allow ou Disallow (predefinição). |
Quando utiliza os elementos acima, tem de adicioná-los ao elemento UserJourneyBehaviors pela ordem especificada na tabela. Por exemplo, o elemento JourneyInsights tem de ser adicionado antes (acima) do elemento ScriptExecution .
SingleSignOn
O elemento SingleSignOn contém os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
Âmbito | Yes | O âmbito do comportamento de início de sessão único. Valores possíveis: Suppressed , , Tenant Application ou Policy . O Suppressed valor indica que o comportamento é suprimido e o utilizador é sempre solicitado para uma seleção de fornecedor de identidade. O Tenant valor indica que o comportamento é aplicado a todas as políticas no inquilino. Por exemplo, um utilizador que navegue por dois percursos de política para um inquilino não é solicitado para uma seleção de fornecedor de identidade. O Application valor indica que o comportamento é aplicado a todas as políticas da aplicação que efetua o pedido. Por exemplo, um utilizador que navega por dois percursos de política para uma aplicação não é solicitado para uma seleção de fornecedor de identidade. O Policy valor indica que o comportamento só se aplica a uma política. Por exemplo, é pedido a um utilizador que navegue por dois percursos de política para uma arquitetura de fidedignidade para uma seleção de fornecedor de identidade ao alternar entre políticas. |
KeepAliveInDays | No | Controla quanto tempo o utilizador permanece com sessão iniciada. Definir o valor como 0 desativa a funcionalidade KMSI. A predefinição é 0 (desativada). O mínimo é 1 dia. O máximo é 90 dias. Para obter mais informações, consulte Manter a sessão iniciada. |
EnforceIdTokenHintOnLogout | No | Forçar a transmissão de um token de ID emitido anteriormente para o ponto final de fim de sessão como uma sugestão sobre a sessão autenticada atual do utilizador final com o cliente. Valores possíveis: false (predefinição) ou true . Para obter mais informações, veja Início de sessão na Web com o OpenID Connect. |
JourneyInsights
O elemento JourneyInsights contém os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
TelemetryEngine | Yes | O valor tem de ser ApplicationInsights . |
InstrumentationKey | Yes | A cadeia que contém a chave de instrumentação para o elemento application insights. |
DeveloperMode | Yes | Valores possíveis: true ou false . Se true , o Application Insights agilizar a telemetria através do pipeline de processamento. Esta definição é boa para o desenvolvimento, mas restrita em volumes elevados. Os registos de atividades detalhados foram concebidos apenas para ajudar no desenvolvimento de políticas personalizadas. Não utilize o modo de desenvolvimento na produção. Os registos recolhem todas as afirmações enviadas de e para os fornecedores de identidade durante o desenvolvimento. Se for utilizado na produção, o programador assume a responsabilidade pelos dados pessoais recolhidos no registo do App Insights que possui. Estes registos detalhados só são recolhidos quando este valor está definido como true . |
ClientEnabled | Yes | Valores possíveis: true ou false . Se true , envia o script do lado do cliente do Application Insights para monitorizar a vista de página e os erros do lado do cliente. |
ServerEnabled | Yes | Valores possíveis: true ou false . Se true , envia o JSON UserJourneyRecorder existente como um evento personalizado para o Application Insights. |
TelemetryVersion | Yes | O valor tem de ser 1.0.0 . |
Para obter mais informações, veja Recolher Registos
ContentDefinitionParameters
Ao utilizar políticas personalizadas no Azure AD B2C, pode enviar um parâmetro numa cadeia 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. Azure AD B2C transmite os parâmetros da cadeia de consulta para o ficheiro HTML dinâmico, como o ficheiro aspx.
O exemplo seguinte transmite um parâmetro com o nome campaignId
com um valor de hawaii
na cadeia de consulta:
https://login.microsoft.com/contoso.onmicrosoft.com/oauth2/v2.0/authorize?pB2C_1A_signup_signin&client_id=a415078a-0402-4ce3-a9c6-ec1947fcfb3f&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 que contém o par de valores chave anexado à cadeia de consulta de um URI de carga de definição de conteúdo. |
O elemento ContentDefinitionParameter contém o seguinte atributo:
Atributo | Necessário | Descrição |
---|---|---|
Nome | Yes | O nome do par de valores chave. |
Para obter mais informações, veja Configurar a IU com conteúdo dinâmico através de políticas personalizadas
JourneyFraming
O elemento JourneyFraming contém os seguintes atributos:
Atributo | Necessário | Description |
---|---|---|
Ativado | Yes | Permite que esta política seja carregada num iframe. Valores possíveis: false (predefinição) ou true . |
Origens | Yes | Contém os domínios que irão carregar o iframe anfitrião. Para obter mais informações, veja Carregar o Azure B2C num iframe. |
TechnicalProfile
O elemento TechnicalProfile contém o seguinte atributo:
Atributo | Necessário | Descrição |
---|---|---|
Id | Yes | O valor tem de ser PolicyProfile . |
O TechnicalProfile contém os seguintes elementos:
Elemento | Ocorrências | Description |
---|---|---|
DisplayName | 1:1 | A cadeia que contém o nome do perfil técnico. |
Description | 0:1 | A cadeia 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 pares Item of key/value utilizados pelo protocolo para comunicar com o ponto final no decurso de uma transação para configurar a interação entre a entidade confiadora e outros participantes da comunidade. |
InputClaims | 1:1 | Uma lista de tipos de afirmação que são tomados como entrada no perfil técnico. Cada um destes elementos contém referência a um ClaimType já definido na secção ClaimsSchema ou numa política a partir da qual este ficheiro de política herda. |
OutputClaims | 1:1 | Uma lista de tipos de afirmação que são considerados como saída no perfil técnico. Cada um destes elementos contém referência a um ClaimType já definido na secção ClaimsSchema ou numa política a partir da qual este ficheiro de política herda. |
SubjectNamingInfo | 1:1 | O nome do requerente utilizado em tokens. |
O elemento Protocolo contém o seguinte atributo:
Atributo | Necessário | Descrição |
---|---|---|
Nome | Yes | O nome de um protocolo válido suportado pelo Azure AD B2C que é utilizado como parte do perfil técnico. Valores possíveis: OpenIdConnect ou SAML2 . O OpenIdConnect valor representa a norma de protocolo OpenID Connect 1.0 de acordo com a especificação de base openID. O SAML2 representa a norma 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, veja Opções para registar uma aplicação SAML no Azure AD B2C.
Atributo | Necessário | Descrição |
---|---|---|
IdpInitiatedProfileEnabled | No | Indica se o fluxo iniciado pelo IDP é suportado. Valores possíveis: true ou false (predefinição). |
XmlSignatureAlgorithm | No | O método que Azure AD B2C utiliza para assinar a Resposta SAML. Valores possíveis: Sha256 , Sha384 , Sha512 ou Sha1 . Certifique-se de que configura 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, veja Metadados do perfil técnico do emissor SAML. |
DataEncryptionMethod | No | Indica o método que o Azure AD B2C utiliza para encriptar os dados com o algoritmo AES (Advanced Encryption Standard). Os metadados controlam o valor do <EncryptedData> elemento na resposta SAML. Valores possíveis: Aes256 (predefinição), Aes192 , Sha512 ou Aes128 . |
KeyEncryptionMethod | No | Indica o método que Azure AD B2C utiliza para encriptar a cópia da chave utilizada para encriptar os dados. Os metadados controlam o valor do <EncryptedKey> elemento na resposta SAML. Valores possíveis: Rsa15 (predefinição) – Algoritmo de encriptação OAEP (Public Key Cryptography Standard) RSA Versão 1.5 RsaOaep – Algoritmo de encriptação OAEP (Optimal Asymmetric Encryption Padding). |
UseDetachedKeys | No | Valores possíveis: true , ou false (predefinição). Quando o valor está definido como true , Azure AD B2C altera o formato das asserções encriptadas. A utilização de chaves desanexadas adiciona a asserção encriptada como subordinado da EncrytedAssertion em oposição ao EncryptedData. |
WantSignedResponses | No | Indica se Azure AD B2C assina a Response secção da resposta SAML. Valores possíveis: true (predefinição) ou false . |
RemoveMillisecondsFromDateTime | No | Indica se os milissegundos serão removidos dos valores datetime na resposta SAML (estes incluem IssueInstant, NotBefore, NotOnOrAfter e AuthnInstant). Valores possíveis: false (predefinição) ou true . |
RequestContextMaximumLengthInBytes | No | Indica o comprimento máximo do parâmetro de aplicaçõesRelayState SAML. 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 afirmação de entrada esperado. |
O elemento InputClaim contém os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
ClaimTypeReferenceId | Yes | Uma referência a um ClaimType já definido na secção ClaimsSchema no ficheiro de política. |
ValorPredefinido | No | Um valor predefinido que pode ser utilizado se o valor da afirmação estiver vazio. |
PartnerClaimType | No | Envia a afirmação num 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 afirmação esperado na lista suportada para a política à qual a entidade confiadora subscreve. 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 |
---|---|---|
ClaimTypeReferenceId | Yes | Uma referência a um ClaimType já definido na secção ClaimsSchema no ficheiro de política. |
ValorPredefinido | No | Um valor predefinido que pode ser utilizado se o valor da afirmação estiver vazio. |
PartnerClaimType | No | Envia a afirmação num nome diferente, conforme configurado na definição ClaimType. |
SubjectNamingInfo
Com o elemento SubjectNameingInfo , controla o valor do assunto do token:
- Token JWT – a
sub
afirmação. Este é um principal sobre o qual o token afirma informações, como o utilizador de uma aplicação. Este valor é imutável e não pode ser reatribuído ou reutilizado. Pode ser utilizado para efetuar verificações de autorização seguras, como quando o token é utilizado para aceder a um recurso. Por predefinição, a afirmação do requerente é preenchida com o ID de objeto do utilizador no diretório. Para obter mais informações, veja Configuração de token, sessão e início de sessão único. - Token SAML – o
<Subject><NameID>
elemento, que identifica o elemento do requerente. O formato NameId pode ser modificado.
O elemento SubjectNamingInfo contém o seguinte atributo:
Atributo | Necessário | Descrição |
---|---|---|
Tipo de Afirmação | Yes | Uma referência ao PartnerClaimType de uma afirmação de saída. As afirmações de saída têm de ser definidas na coleção OutputClaims da política de entidade confiadora com um PartnerClaimType. Por exemplo, <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" /> ou <OutputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="signInName" /> . |
Formato | No | Utilizado para entidades confiadoras SAML para definir o formato NameId devolvido na Asserção SAML. |
O exemplo seguinte mostra como definir uma entidade confiadora do OpenID Connect. As informações do nome do requerente estão configuradas como :objectId
<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
afirmação com o objectId do utilizador:
{
...
"sub": "6fbbd70d-262b-4b50-804c-257ae1706ef2",
...
}
O exemplo seguinte mostra como definir uma entidade confiadora SAML. As informações do nome do requerente estão configuradas como e objectId
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>