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, , TenantApplicationou 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, Sha512ou 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, Sha512ou 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 objectIdo 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>