Metadatos de federación
Microsoft Entra ID publica un documento de metadatos de federación para los servicios que están configurados para aceptar los tokens de seguridad que emite Microsoft Entra ID. El formato del documento de metadatos de federación se describe en la versión 1.2 del lenguaje de federación de servicios web (WS-Federation), que amplía los metadatos del lenguaje de marcado de aserción de seguridad (SAML) de la versión 2.0 de OASIS.
Puntos de conexión de metadatos específicos e independientes del inquilino
Microsoft Entra ID publica los puntos de conexión específicos del inquilino e independientes del inquilino.
Los extremos específicos del inquilino están diseñados para un inquilino determinado. Los metadatos de federación específicos del inquilino incluyen información sobre el inquilino, incluida la información sobre el emisor y el extremo específica del inquilino. Las aplicaciones que restringen el acceso a un solo inquilino utilizan extremos específicos del inquilino.
Los puntos de conexión independientes del inquilino proporcionan información que es común a todos los inquilinos de Microsoft Entra. Esta información se aplica a los inquilinos hospedados en login.windows.net y se comparte entre ellos. Los extremos independientes del inquilino se recomiendan para aplicaciones de varios inquilinos, ya que no están asociados a ningún inquilino en particular.
Puntos de conexión de metadatos de federación
Microsoft Entra ID publica metadatos de federación en https://login.microsoftonline.com/<TenantDomainName>/FederationMetadata/2007-06/FederationMetadata.xml
.
En el caso de los puntos de conexión específicos del inquilino, el TenantDomainName
puede ser uno de los siguientes tipos:
- Un nombre de dominio registrado de un inquilino de Microsoft Entra, como:
contoso.onmicrosoft.com
. - El identificador de inquilino inmutable, como
aaaabbbb-0000-cccc-1111-dddd2222eeee
.
En el caso de los puntos de conexión independientes del inquilino, TenantDomainName
es common
. En este documento se indica que los elementos de metadatos de federación que son comunes a todos los inquilinos de Microsoft Entra son los únicos que se hospedan en login.microsoftonline.com.
Por ejemplo, un punto de conexión específico del inquilino podría ser https://login.microsoftonline.com/contoso.onmicrosoft.com/FederationMetadata/2007-06/FederationMetadata.xml
. El punto de conexión independiente del inquilino es https://login.microsoftonline.com/common/FederationMetadata/2007-06/FederationMetadata.xml. Puede ver el documento de metadatos de federación al escribir esta dirección URL en un explorador.
Contenido de los metadatos de federación
La siguiente sección proporciona la información necesaria para los servicios que consumen los tokens emitidos por Microsoft Entra ID.
El identificador de entidad
El elemento EntityDescriptor
contiene un atributo EntityID
. El valor del atributo EntityID
representa al emisor; es decir, al servicio de token de seguridad (STS) que emitió el token. Es importante validar al emisor cuando reciba un token.
Los metadatos siguientes muestran un ejemplo de un elemento EntityDescriptor
específico del inquilino con un 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/">
Puede reemplazar el identificador de inquilino del punto de conexión independiente del inquilino por el suyo para crear un valor EntityID
específico del cliente. El valor resultante será el mismo que el emisor del token. Esta estrategia permite a una aplicación de varios inquilinos validar al emisor de un inquilino determinado.
Los metadatos siguientes muestran un ejemplo de un elemento EntityID
independiente del inquilino. Tenga en cuenta que {tenant}
es un literal, no un marcador de posición.
<EntityDescriptor
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
ID="="_aaaabbbb-0000-cccc-1111-dddd2222eeee"
entityID="https://sts.windows.net/{tenant}/">
Certificados de firma de tokens
Cuando un servicio recibe un token emitido por un inquilino de Microsoft Entra, la firma del token debe validarse con una clave de firma que se publica en el documento de metadatos de federación. Los metadatos de federación incluyen la parte pública de los certificados que utilizan los inquilinos para la firma de tokens. Los bytes sin formato del certificado aparecen en el elemento KeyDescriptor
. El certificado de la firma del token es válido para la firma solo cuando el valor del atributo use
es signing
.
Un documento de metadatos de federación que haya publicado Microsoft Entra ID puede tener varias claves de firma, como en aquellos casos en que Microsoft Entra ID se está preparando para actualizar el certificado de firma. Cuando un documento de metadatos de federación incluye más de un certificado, un servicio que está validando los tokens debe admitir todos los certificados del documento.
Los metadatos siguientes muestran un ejemplo del elemento KeyDescriptor
con una clave de firma.
<KeyDescriptor use="signing">
<KeyInfo xmlns="https://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>
aB1cD2eF-3gH4i...J5kL6-mN7oP8qR=
</X509Certificate>
</X509Data>
</KeyInfo>
</KeyDescriptor>
El elemento KeyDescriptor
aparece en dos lugares en el documento de metadatos de federación: en la sección específica de WS-Federation y de SAML. Los certificados publicados en ambas secciones serán el mismo.
En la sección específica de WS-Federation, un lector de metadatos de WS-Federation leería los certificados de un elemento RoleDescriptor
con el tipo SecurityTokenServiceType
.
Los metadatos siguientes muestran un ejemplo del elemento 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">
En la sección específica de SAML, un lector de metadatos de WS-Federation leería los certificados de un elemento IDPSSODescriptor
.
Los metadatos siguientes muestran un ejemplo del elemento IDPSSODescriptor
.
<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
No existen diferencias en el formato de los certificados específicos del inquilino e independientes del inquilino.
Dirección URL del punto de conexión de WS-Federation
Los metadatos de federación incluyen la dirección URL que utiliza Microsoft Entra ID para el inicio de sesión único y el cierre de sesión único en el protocolo WS-Federation. Este punto de conexión aparece en el elemento PassiveRequestorEndpoint
.
Los metadatos siguientes muestran un ejemplo del elemento PassiveRequestorEndpoint
de un punto de conexión específico del inquilino.
<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 el extremo independiente del inquilino, la dirección URL de WS-Federation aparece en el extremo de WS-Federation, como se muestra en el ejemplo siguiente.
<fed:PassiveRequestorEndpoint>
<EndpointReference xmlns="https://www.w3.org/2005/08/addressing">
<Address>
https://login.microsoftonline.com/common/wsfed
</Address>
</EndpointReference>
</fed:PassiveRequestorEndpoint>
Dirección URL del punto de conexión de protocolo SAML
Los metadatos de federación incluyen la dirección URL que utiliza Microsoft Entra ID para el inicio de sesión único y el cierre de sesión único en el protocolo SAML 2.0. Estos puntos de conexión aparecen en el elemento IDPSSODescriptor
.
Las direcciones URL de inicio y cierre de sesión se muestran en los elementos SingleSignOnService
y SingleLogoutService
.
Los metadatos siguientes muestran un ejemplo de PassiveResistorEndpoint
para un punto de conexión específico del inquilino.
<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>
Del mismo modo, los extremos comunes del protocolo SAML 2.0 se publican en los metadatos de federación independientes del inquilino, tal como se muestra en el ejemplo siguiente.
<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>