フェデレーション メタデータFederation metadata

重要

Microsoft ID プラットフォーム (v2.0) は、Azure Active Directory (Azure AD) 開発者プラットフォーム (v1.0) の進化版です。Microsoft identity platform (v2.0) is an evolution of the Azure Active Directory (Azure AD) developer platform (v1.0). これにより、すべての Microsoft ID にサインインして、Microsoft API (Microsoft Graph) や開発者が構築した API を呼び出すためのトークンを取得するアプリケーションを開発者が構築できます。It allows developers to build applications that sign in all Microsoft identities and get tokens to call Microsoft APIs such as Microsoft Graph or APIs that developers have built. このコンテンツは、以前の Azure AD v1.0 エンドポイント用です。This content is for the older, Azure AD v1.0 endpoint. 新しいプロジェクトには、v2.0 エンドポイントを使用することをお勧めします。We recommend that you use the v2.0 endpoint for new projects. 詳細については、「Microsoft ID プラットフォーム (v2.0) に更新する理由」とFor more info, read Why update to Microsoft identity platform (v2.0)? Microsoft ID プラットフォームの制限事項に関する記事を参照してください。as well as Microsoft identity platform limitations.

Azure Active Directory (Azure AD) は、Azure AD が発行するセキュリティ トークンを受け入れるように構成されているサービスのフェデレーション メタデータ ドキュメントを発行します。Azure Active Directory (Azure AD) publishes a federation metadata document for services that is configured to accept the security tokens that Azure AD issues. フェデレーション メタデータ ドキュメントの形式は、「Web Services Federation Language (WS-Federation) Version 1.2」で説明されています。これは、OASIS SAML (Security Assertion Markup Language) v2.0 のメタデータの拡張です。The federation metadata document format is described in the Web Services Federation Language (WS-Federation) Version 1.2, which extends Metadata for the OASIS Security Assertion Markup Language (SAML) v2.0.

テナント固有およびテナント独立のメタデータ エンドポイントTenant-specific and Tenant-independent metadata endpoints

Azure AD は、テナント固有のエンドポイントとテナント独立のエンドポイントを発行します。Azure AD publishes tenant-specific and tenant-independent endpoints.

テナント固有のエンドポイントは、特定のテナント用に設計されています。Tenant-specific endpoints are designed for a particular tenant. テナント固有のフェデレーション メタデータには、テナント固有の発行者とエンドポイントの情報など、テナントに関する情報が含まれます。The tenant-specific federation metadata includes information about the tenant, including tenant-specific issuer and endpoint information. 単一のテナントにアクセスを制限するアプリケーションでは、テナント固有のエンドポイントを使用します。Applications that restrict access to a single tenant use tenant-specific endpoints.

テナント独立のエンドポイントは、すべての Azure AD テナントに共通する情報を提供します。Tenant-independent endpoints provide information that is common to all Azure AD tenants. この情報は、 login.microsoftonline.com でホストされているテナントに適用され、テナント全体で共有されます。This information applies to tenants hosted at login.microsoftonline.com and is shared across tenants. マルチテナント アプリケーションの場合は、特定のテナントに関連付けられていないため、テナント独立のエンドポイントをお勧めします。Tenant-independent endpoints are recommended for multi-tenant applications, since they are not associated with any particular tenant.

フェデレーション メタデータ エンドポイントFederation metadata endpoints

Azure AD は、フェデレーション メタデータを https://login.microsoftonline.com/<TenantDomainName>/FederationMetadata/2007-06/FederationMetadata.xmlで発行します。Azure AD publishes federation metadata at https://login.microsoftonline.com/<TenantDomainName>/FederationMetadata/2007-06/FederationMetadata.xml.

テナント固有のエンドポイントの場合、TenantDomainName に次の種類のいずれかを指定できます。For tenant-specific endpoints, the TenantDomainName can be one of the following types:

  • contoso.onmicrosoft.comなど、Azure AD のテナントの登録済みのドメイン名。A registered domain name of an Azure AD tenant, such as: contoso.onmicrosoft.com.
  • 72f988bf-86f1-41af-91ab-2d7cd011db45など、ドメインの変更できないテナント ID。The immutable tenant ID of the domain, such as 72f988bf-86f1-41af-91ab-2d7cd011db45.

テナント独立のエンドポイントの場合TenantDomainNamecommon です。For tenant-independent endpoints, the TenantDomainName is common. このドキュメントでは、login.microsoftonline.com でホストされているすべての Azure AD テナントに共通するフェデレーション メタデータの要素のみを示します。This document lists only the Federation Metadata elements that are common to all Azure AD tenants that are hosted at login.microsoftonline.com.

たとえば、テナント固有のエンドポイントは、 https://login.microsoftonline.com/contoso.onmicrosoft.com/FederationMetadata/2007-06/FederationMetadata.xmlにすることができます。For example, a tenant-specific endpoint might be https://login.microsoftonline.com/contoso.onmicrosoft.com/FederationMetadata/2007-06/FederationMetadata.xml. テナント独立のエンドポイントは、https://login.microsoftonline.com/common/FederationMetadata/2007-06/FederationMetadata.xml です。The tenant-independent endpoint is https://login.microsoftonline.com/common/FederationMetadata/2007-06/FederationMetadata.xml. ブラウザーにこの URL を入力することで、フェデレーション メタデータ ドキュメントを表示できます。You can view the federation metadata document by typing this URL in a browser.

フェデレーション メタデータの内容Contents of federation Metadata

次のセクションでは、Azure AD によって発行されたトークンを使用するサービスに必要な情報を提供します。The following section provides information needed by services that consume the tokens issued by Azure AD.

エンティティ IDEntity ID

EntityDescriptor 要素は EntityID 属性を含みます。The EntityDescriptor element contains an EntityID attribute. EntityID 属性の値は発行者、つまり、トークンを発行した Security Token Service (STS) を表します。The value of the EntityID attribute represents the issuer, that is, the security token service (STS) that issued the token. トークンを受信したときに、発行者を検証することが重要です。It is important to validate the issuer when you receive a token.

次のメタデータは、EntityID 要素を含む、サンプルのテナント固有の EntityDescriptor 要素を示しています。The following metadata shows a sample tenant-specific EntityDescriptor element with an EntityID element.

<EntityDescriptor
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
ID="_b827a749-cfcb-46b3-ab8b-9f6d14a1294b"
entityID="https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db45/">

テナント独立のエンドポイントのテナント ID を自分のテナント ID に置き換えて、テナント固有の EntityID 値を作成することができます。You can replace the tenant ID in the tenant-independent endpoint with your tenant ID to create a tenant-specific EntityID value. 結果の値は、トークンの発行者と同じになります。The resulting value will be the same as the token issuer. この方法では、マルチテナント アプリケーションを使用して特定のテナントの発行者を検証できます。The strategy allows a multi-tenant application to validate the issuer for a given tenant.

次のメタデータは、テナント独立の EntityID 要素のサンプルを示します。The following metadata shows a sample tenant-independent EntityID element. なお、 {tenant} はリテラルであり、プレースホルダーではないことに注意してください。Please note, that the {tenant} is a literal, not a placeholder.

<EntityDescriptor
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
ID="="_0e5bd9d0-49ef-4258-bc15-21ce143b61bd"
entityID="https://sts.windows.net/{tenant}/">

トークン署名証明書Token signing certificates

サービスが Azure AD テナントによって発行されたトークンを受信するとき、トークンの署名は、フェデレーション メタデータ ドキュメントで発行された署名キーによって、検証される必要があります。When a service receives a token that is issued by an Azure AD tenant, the signature of the token must be validated with a signing key that is published in the federation metadata document. フェデレーション メタデータには、テナントでトークンの署名に使用される証明書の公開部分が含まれています。The federation metadata includes the public portion of the certificates that the tenants use for token signing. 証明書の未加工のバイト数は、 KeyDescriptor 要素にあります。The certificate raw bytes appear in the KeyDescriptor element. トークン署名証明書が署名で有効なのは、use 属性の値が signing の場合だけです。The token signing certificate is valid for signing only when the value of the use attribute is signing.

Azure AD によって発行されたフェデレーション メタデータ ドキュメントには、Azure AD によって署名証明書の更新が準備されているときなどに、複数の署名キーが含まれている可能性があります。A federation metadata document published by Azure AD can have multiple signing keys, such as when Azure AD is preparing to update the signing certificate. フェデレーション メタデータ ドキュメントに複数の証明書が含まれている場合、トークンを検証するサービスは、ドキュメント内のすべての証明書をサポートする必要があります。When a federation metadata document includes more than one certificate, a service that is validating the tokens should support all certificates in the document.

次のメタデータは、署名キーを含むサンプルの KeyDescriptor 要素を示しています。The following metadata shows a sample KeyDescriptor element with a signing key.

<KeyDescriptor use="signing">
<KeyInfo xmlns="https://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>
MIIDPjCCAiqgAwIBAgIQVWmXY/+9RqFA/OG9kFulHDAJBgUrDgMCHQUAMC0xKzApBgNVBAMTImFjY291bnRzLmFjY2Vzc2NvbnRyb2wud2luZG93cy5uZXQwHhcNMTIwNjA3MDcwMDAwWhcNMTQwNjA3MDcwMDAwWjAtMSswKQYDVQQDEyJhY2NvdW50cy5hY2Nlc3Njb250cm9sLndpbmRvd3MubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArCz8Sn3GGXmikH2MdTeGY1D711EORX/lVXpr+ecGgqfUWF8MPB07XkYuJ54DAuYT318+2XrzMjOtqkT94VkXmxv6dFGhG8YZ8vNMPd4tdj9c0lpvWQdqXtL1TlFRpD/P6UMEigfN0c9oWDg9U7Ilymgei0UXtf1gtcQbc5sSQU0S4vr9YJp2gLFIGK11Iqg4XSGdcI0QWLLkkC6cBukhVnd6BCYbLjTYy3fNs4DzNdemJlxGl8sLexFytBF6YApvSdus3nFXaMCtBGx16HzkK9ne3lobAwL2o79bP4imEGqg+ibvyNmbrwFGnQrBc1jTF9LyQX9q+louxVfHs6ZiVwIDAQABo2IwYDBeBgNVHQEEVzBVgBCxDDsLd8xkfOLKm4Q/SzjtoS8wLTErMCkGA1UEAxMiYWNjb3VudHMuYWNjZXNzY29udHJvbC53aW5kb3dzLm5ldIIQVWmXY/+9RqFA/OG9kFulHDAJBgUrDgMCHQUAA4IBAQAkJtxxm/ErgySlNk69+1odTMP8Oy6L0H17z7XGG3w4TqvTUSWaxD4hSFJ0e7mHLQLQD7oV/erACXwSZn2pMoZ89MBDjOMQA+e6QzGB7jmSzPTNmQgMLA8fWCfqPrz6zgH+1F1gNp8hJY57kfeVPBiyjuBmlTEBsBlzolY9dd/55qqfQk6cgSeCbHCy/RU/iep0+UsRMlSgPNNmqhj5gmN2AFVCN96zF694LwuPae5CeR2ZcVknexOWHYjFM0MgUSw0ubnGl0h9AJgGyhvNGcjQqu9vd1xkupFgaN+f7P3p3EVN5csBg5H94jEcQZT7EKeTiZ6bTrpDAnrr8tDCy8ng
</X509Certificate>
</X509Data>
</KeyInfo>
</KeyDescriptor>

KeyDescriptor 要素は、フェデレーション メタデータ ドキュメントでは、WS-Federation 固有のセクションと SAML 固有のセクションという 2 つの場所にあります。The KeyDescriptor element appears in two places in the federation metadata document; in the WS-Federation-specific section and the SAML-specific section. 両方のセクションで発行された証明書は同じになります。The certificates published in both sections will be the same.

WS-Federation 固有のセクションで、WS-Federation メタデータ リーダーは、SecurityTokenServiceType 型を含む RoleDescriptor 要素から証明書を読み取ります。In the WS-Federation-specific section, a WS-Federation metadata reader would read the certificates from a RoleDescriptor element with the SecurityTokenServiceType type.

RoleDescriptor 要素の例を次に示します。The following metadata shows a sample RoleDescriptor element.

<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">

SAML に固有のセクションで、WS-Federation メタデータ リーダーは、 IDPSSODescriptor 要素から証明書を読み取ります。In the SAML-specific section, a WS-Federation metadata reader would read the certificates from a IDPSSODescriptor element.

IDPSSODescriptor 要素の例を次に示します。The following metadata shows a sample IDPSSODescriptor element.

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

テナント固有の証明書とテナント独立の証明書の形式には、違いはありません。There are no differences in the format of tenant-specific and tenant-independent certificates.

WS-Federation エンドポイントの URLWS-Federation endpoint URL

フェデレーション メタデータには、WS-Federation プロトコルで Azure AD がシングル サインインおよびシングル サインアウトに使用する URL が含まれています。The federation metadata includes the URL that is Azure AD uses for single sign-in and single sign-out in WS-Federation protocol. このエンドポイントは PassiveRequestorEndpoint 要素にあります。This endpoint appears in the PassiveRequestorEndpoint element.

次のメタデータは、テナント固有のエンドポイントに対するサンプルの PassiveRequestorEndpoint 要素を示しています。The following metadata shows a sample PassiveRequestorEndpoint element for a tenant-specific endpoint.

<fed:PassiveRequestorEndpoint>
<EndpointReference xmlns="https://www.w3.org/2005/08/addressing">
<Address>
https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db45/wsfed
</Address>
</EndpointReference>
</fed:PassiveRequestorEndpoint>

テナント独立のエンドポイントの場合は、次の例に示すように、WS-Federation URL は WS-Federation エンドポイントにあります。For the tenant-independent endpoint, the WS-Federation URL appears in the WS-Federation endpoint, as shown in the following sample.

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

SAML プロトコル エンドポイントの URLSAML protocol endpoint URL

フェデレーション メタデータには、SAML 2.0 プロトコルで Azure AD がシングル サインインおよびシングル サインアウトに使用する URL が含まれています。The federation metadata includes the URL that Azure AD uses for single sign-in and single sign-out in SAML 2.0 protocol. これらのエンドポイントは、 IDPSSODescriptor 要素にあります。These endpoints appear in the IDPSSODescriptor element.

サインイン URL とサインアウト URL は、SingleSignOnService 要素と SingleLogoutService 要素にあります。The sign-in and sign-out URLs appear in the SingleSignOnService and SingleLogoutService elements.

次のメタデータは、テナント固有のエンドポイントに対するサンプルの PassiveResistorEndpoint を示しています。The following metadata shows a sample PassiveResistorEndpoint for a tenant-specific endpoint.

<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>

同様に、次の例に示すように、共通の SAML 2.0 プロトコル エンドポイントのエンドポイントは、テナント独立のフェデレーション メタデータに発行されます。Similarly the endpoints for the common SAML 2.0 protocol endpoints are published in the tenant-independent federation metadata, as shown in the following sample.

<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>