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>