Partilhar via


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 trueo , 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=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 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 objectIdcomo:

<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": "6fbbd70d-262b-4b50-804c-257ae1706ef2",
  ...
}

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>