Compartilhar via


Metadados de federação

O Microsoft Entra ID publica um documento de metadados federados para serviços que são configurados para aceitar os tokens de segurança emitidos pelo Microsoft Entra ID. O formato de documento de metadados federados é descrito no Web Services Federation Language (WS-Federation) Version 1.2, que se estende para Metadata for the OASIS Security Assertion Markup Language (SAML) v2.0.

Pontos de extremidade de metadados específicos de locatário e independentes de locatário

O Microsoft Entra ID publica pontos de extremidade específicos de locatário e independentes de locatário.

Pontos de extremidade específicos de locatário destinam-se a um locatário específico. Os metadados de federação específicos de locatário incluem informações sobre o locatário, incluindo informações de emissor e o ponto de extremidade específico de locatário. Os aplicativos que restringem o acesso a um único locatário usam pontos de extremidade específicos de locatário.

Os pontos de extremidade independentes de locatário fornecem informações comuns a todos os locatários do Microsoft Entra. Essas informações se aplicam aos locatários hospedados em login.microsoftonline.com e são compartilhadas entre locatários. Os pontos de extremidade independentes de locatário são recomendados para aplicativos multilocatários, pois eles não estão associados a nenhum locatário específico.

Pontos de extremidade de metadados de federação

O Microsoft Entra ID publica metadados federados no https://login.microsoftonline.com/<TenantDomainName>/FederationMetadata/2007-06/FederationMetadata.xml.

Para pontos de extremidade específicos de locatário, o TenantDomainName pode ser um dos seguintes tipos:

  • Um nome de domínio registrado de um locatário do Microsoft Entra, como: contoso.onmicrosoft.com.
  • A ID de locatário imutável do domínio, como aaaabbbb-0000-cccc-1111-dddd2222eeee.

Para pontos de extremidade independentes de locatário, o TenantDomainName é common. Este documento lista apenas os elementos dos metadados federados que são comuns a todos os locatários do Microsoft Entra hospedados em login.microsoftonline.com.

Por exemplo, um ponto de extremidade específico de locatário pode ser https://login.microsoftonline.com/contoso.onmicrosoft.com/FederationMetadata/2007-06/FederationMetadata.xml. O ponto de extremidade independente de locatário é https://login.microsoftonline.com/common/FederationMetadata/2007-06/FederationMetadata.xml. Você pode exibir o documento de metadados de federação digitando essa URL em um navegador.

Conteúdo de metadados federados

A seção a seguir fornece as informações necessárias para serviços que consomem os tokens emitidos pelo Microsoft Entra ID.

ID da Entidade

O elemento EntityDescriptor contém um atributo EntityID. O valor do atributo EntityID representa o emissor, ou seja, o STS (serviço de token de segurança) que emitiu o token. É importante validar o emissor ao receber um token.

Os metadados a seguir mostram um exemplo de elemento EntityDescriptor específico de locatário com um elemento EntityID.

<EntityDescriptor
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
ID="_00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
entityID="https://sts.windows.net/00aa00aa-bb11-cc22-dd33-44ee44ee44ee/">

Você pode substituir a ID de locatário no ponto de extremidade independente de locatário por sua ID de locatário para criar um valor EntityID específico de locatário. O valor resultante será igual ao emissor do token. A estratégia permite que um aplicativo multilocatário valide o emissor para um determinado locatário.

Os metadados a seguir mostram um exemplo de elemento independente de locatário EntityID . Nesse elemento, observe que {tenant} é um literal, não um espaço reservado.

<EntityDescriptor
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
ID="="_aaaabbbb-0000-cccc-1111-dddd2222eeee"
entityID="https://sts.windows.net/{tenant}/">

Certificados de autenticação de tokens

Quando um serviço recebe um token emitido por um locatário do Microsoft Entra, a assinatura do token deve ser validada com uma chave de assinatura publicada no documento de metadados federados. Os metadados de federação incluem a parte pública dos certificados que os locatários usam para autenticação de tokens. Os bytes brutos do certificado aparecem no elemento KeyDescriptor . O certificado de assinatura de token é válido para a assinatura somente quando o valor do atributo use é signing.

Um documento de metadados federados publicado pelo Microsoft Entra ID pode ter várias chaves de assinatura, como quando o Microsoft Entra ID está se preparando para atualizar o certificado de assinatura. Quando um documento de metadados de federação inclui mais de um certificado, um serviço que valida os tokens deve dar suporte a todos os certificados no documento.

Os metadados a seguir mostram um elemento de exemplo KeyDescriptor com uma chave de assinatura.

<KeyDescriptor use="signing">
<KeyInfo xmlns="https://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>
aB1cD2eF-3gH4i...J5kL6-mN7oP8qR=
</X509Certificate>
</X509Data>
</KeyInfo>
</KeyDescriptor>

O elemento KeyDescriptor aparece em dois lugares no documento de metadados federados na seção específica do WS-Federation e na seção específica de SAML. Os certificados publicados em ambas as seções serão os mesmos.

Na seção específica do WS-Federation, um leitor de metadados de WS-Federation leria os certificados de um elemento RoleDescriptor com o tipo SecurityTokenServiceType.

Os metadados a seguir mostram um elemento RoleDescriptor de exemplo.

<RoleDescriptor xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:fed="https://docs.oasis-open.org/wsfed/federation/200706" xsi:type="fed:SecurityTokenServiceType" protocolSupportEnumeration="https://docs.oasis-open.org/wsfed/federation/200706">

Na seção específica de SAML, um leitor de metadados de WS-Federation leria os certificados de um IDPSSODescriptor elemento.

Os metadados a seguir mostram um elemento IDPSSODescriptor de exemplo.

<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">

Não há diferenças no formato de certificados específicos de locatário e independentes de locatário.

URL de ponto de extremidade de WS-Federation

Os metadados federados incluem a URL que usa o Microsoft Entra ID para logon único e saída única no protocolo Web Services Federation. Esse ponto de extremidade é mostrado no PassiveRequestorEndpoint elemento.

Os metadados a seguir mostram um elemento PassiveRequestorEndpoint de exemplo para um ponto de extremidade específico de locatário.

<fed:PassiveRequestorEndpoint>
<EndpointReference xmlns="https://www.w3.org/2005/08/addressing">
<Address>
https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/wsfed
</Address>
</EndpointReference>
</fed:PassiveRequestorEndpoint>

Para o ponto de extremidade independente de locatário, a URL de WS-Federation aparece no ponto de extremidade WS-Federation, conforme mostrado no exemplo a seguir.

<fed:PassiveRequestorEndpoint>
<EndpointReference xmlns="https://www.w3.org/2005/08/addressing">
<Address>
https://login.microsoftonline.com/common/wsfed
</Address>
</EndpointReference>
</fed:PassiveRequestorEndpoint>

URL de ponto de extremidade do protocolo SAML

Os metadados federados incluem a URL que o Microsoft Entra ID usa para logon único e saída única no protocolo SAML 2.0. Esses pontos de extremidade aparecem no IDPSSODescriptor elemento.

As URLs de entrada e saída aparecem nos elementos SingleSignOnService e SingleLogoutService.

Os metadados a seguir mostram um PassiveResistorEndpoint de exemplo para um ponto de extremidade específico de locatário.

<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
…
    <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://login.microsoftonline.com/contoso.onmicrosoft.com/saml2" />
    <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://login.microsoftonline.com/contoso.onmicrosoft.com/saml2" />
  </IDPSSODescriptor>

Da mesma forma, os pontos de extremidade para os pontos de extremidade de protocolo SAML 2.0 comuns são publicados nos metadados de federação independentes de locatário, conforme mostrado no exemplo a seguir.

<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
…
    <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://login.microsoftonline.com/common/saml2" />
    <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://login.microsoftonline.com/common/saml2" />
  </IDPSSODescriptor>