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>