Partilhar via


Metadados de federação

O Microsoft Entra ID publica um documento de metadados de federação para serviços configurados para aceitar os tokens de segurança que o Microsoft Entra ID emite. O formato de documento de metadados de federação é descrito no Web Services Federation Language (WS-Federation) Versão 1.2, que estende os metadados para o SAML (Security Assertion Markup Language) v2.0 do OASIS.

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

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

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

Os pontos de extremidade independentes do locatário fornecem informações comuns a todos os locatários do Microsoft Entra. Estas informações aplicam-se aos inquilinos alojados no login.microsoftonline.com e são partilhadas entre inquilinos. Pontos de extremidade independentes de locatário são recomendados para aplicativos multilocatário, pois 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 de federação em https://login.microsoftonline.com/<TenantDomainName>/FederationMetadata/2007-06/FederationMetadata.xml.

Para pontos de extremidade específicos do 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.
  • O ID de locatário imutável do domínio, como aaaabbbb-0000-cccc-1111-dddd2222eeee.

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

Por exemplo, um ponto de extremidade específico do locatário pode ser https://login.microsoftonline.com/contoso.onmicrosoft.com/FederationMetadata/2007-06/FederationMetadata.xml. O ponto de extremidade independente do 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 dos metadados de federação

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

ID da Entidade

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

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

<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 do locatário no ponto de extremidade independente do locatário pela ID do locatário para criar um valor específico EntityID do locatário. O valor resultante será o mesmo que o 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 elemento independente EntityID do locatário de exemplo. Por favor, note que o {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 assinatura de token

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 de federação. Os metadados de federação incluem a parte pública dos certificados que os locatários usam para assinatura de token. Os bytes brutos do certificado aparecem no KeyDescriptor elemento . O certificado de assinatura de token é válido para assinatura somente quando o valor do use atributo é signing.

Um documento de metadados de federação 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 está validando os tokens deve oferecer 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 KeyDescriptor elemento aparece em dois locais no documento de metadados de federação: na seção WS-Federation-specific e na seção SAML-specific. Os certificados publicados em ambas as secções serão os mesmos.

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

Os metadados a seguir mostram um elemento de exemplo RoleDescriptor .

<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 do SAML, um leitor de metadados WS-Federation leria os certificados de um IDPSSODescriptor elemento.

Os metadados a seguir mostram um elemento de exemplo IDPSSODescriptor .

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

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

URL do ponto de extremidade WS-Federation

Os metadados de federação incluem a URL que a ID do Microsoft Entra usa para entrada única e saída única no protocolo WS-Federation. Esse ponto de extremidade aparece no PassiveRequestorEndpoint elemento .

Os metadados a seguir mostram um elemento de exemplo PassiveRequestorEndpoint para um ponto de extremidade específico do 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 do locatário, a URL 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 do ponto de extremidade do protocolo SAML

Os metadados de federação incluem a URL que o Microsoft Entra ID usa para entrada e saída únicas no protocolo SAML 2.0. Esses pontos de extremidade aparecem no IDPSSODescriptor elemento .

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

Os metadados a seguir mostram um exemplo PassiveResistorEndpoint para um ponto de extremidade específico do 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 comuns do protocolo SAML 2.0 são publicados nos metadados de federação independentes do 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>