次の方法で共有


SAML ベースのシングル サインオン: 構成と制限事項

この記事では、Microsoft Entra ID で SAML ベースのシングル サインオン (SSO) 用にアプリケーションを構成する方法について説明します。 Active Directory フェデレーション サービス (AD FS) (ADFS) から Microsoft Entra ID に移行されるアプリの SAML SSO の構成に重点を置いている場合。

説明する概念には、ルールに基づく特定のアプリケーション ロールへのユーザーのマッピングや、属性のマッピング時に留意すべき制限事項が含まれます。 また、SAML 署名証明書、SAML トークン暗号化、SAML 要求の署名検証、カスタム クレーム プロバイダーについても説明します。

認証に SAML 2.0 を使用するアプリは、SAML ベースのシングル サインオン (SSO) 用に構成できます。 SAML ベースの SSO では、SAML 要求で定義する規則に基づいて、ユーザーを特定のアプリケーション ロールにマッピングできます。

SAML ベースの SSO 用に SaaS アプリケーションを構成するには、クイック スタート: SAML ベースのシングル サインオンを設定することに関するページを参照してください。

[SAML SSO 設定] ウィンドウのスクリーンショット。

多くの SaaS アプリケーションにはアプリケーション固有のチュートリアルが用意されており、SAML ベースの SSO の構成が順を追って説明されています。

一部のアプリは簡単に移行することができます。 カスタム要求などのより複雑な要件を持つアプリでは、Microsoft Entra ID や Microsoft Entra Connect Health の追加構成が必要になる場合があります。 サポートされる要求マッピングの詳細については、「方法: テナントの特定のアプリケーションに対するトークンに出力された要求のカスタマイズ (プレビュー)」を参照してください。

属性をマッピングするときは、次の制限事項に注意してください。

  • AD FS で発行できるすべての属性が、SAML トークンに出力される属性として Microsoft Entra ID に表示されるわけではありません (属性が同期される場合でも)。 属性を編集するとき、[値] ドロップダウン リストに、Microsoft Entra ID で使用できるさまざまな属性が表示されます。 Microsoft Entra Connect Sync の記事の構成を調べて、必要な属性 (samAccountName など) が Microsoft Entra ID に同期されていることを確認します。 拡張属性を使用して、Microsoft Entra ID の標準ユーザー スキーマの一部ではないすべての要求を出力できます。
  • 最も一般的なシナリオでアプリに必要なのは、NameID 要求とその他の一般的なユーザー識別子要求だけです。 他にも要求が必要かどうかを判断するには、AD FS からどの要求が発行されているかを調べます。
  • 一部の要求は Microsoft Entra ID で保護されているため、すべての要求を発行できるとは限りません。
  • 暗号化された SAML トークンを使用する機能は現在プレビュー段階です。 「方法: エンタープライズ アプリケーションの SAML トークンで発行された要求のカスタマイズ」をご覧ください。

サービスとしてのソフトウェア (SaaS) アプリ

ユーザーが Salesforce、ServiceNow、Workday などの SaaS アプリにサインインし、AD FS に統合されている場合は、SaaS アプリに対してフェデレーション サインオンが使用されています。

ほとんどの SaaS アプリケーションは、Microsoft Entra ID で構成できるようになっています。 Microsoft Entra アプリ ギャラリーには SaaS アプリに対する事前構成済みの接続が多数用意されており、移行が簡単になります。 SAML 2.0 アプリケーションは、Microsoft Entra アプリ ギャラリーを通じて、または非ギャラリー アプリケーションとして、Microsoft Entra ID と統合することができます。

OAuth 2.0 または OpenID Connect を使用するアプリは、アプリの登録と同じようにして Microsoft Entra ID と統合できます。 レガシ プロトコルを使用するアプリでは、Microsoft Entra アプリケーション プロキシを使用して、Microsoft Entra ID で認証を行うことができます。

SSO 用の SAML 署名証明書

署名証明書は、すべての SSO デプロイの重要な部分です。 Microsoft Entra ID では、署名証明書を作成して、SaaS アプリケーションに対する SAML ベースのフェデレーション SSO が確立されます。 ギャラリー アプリケーションまたはギャラリー以外のアプリケーションを追加したら、フェデレーション SSO オプションを使用して追加されたアプリケーションを構成します。 Microsoft Entra ID でのフェデレーション シングル サインオンの証明書の管理に関するページを参照してください。

SAML トークン暗号化

AD FS と Microsoft Entra ID はどちらもトークン暗号化を提供します。これは、アプリケーションに届く SAML セキュリティ アサーションを暗号化する機能です。 アサーションは公開キーで暗号化され、対応する秘密キーを使用して受信側のアプリケーションによって復号化されます。 トークンの暗号化を構成するときに、X.509 証明書ファイルをアップロードして公開キーを提供します。

Microsoft Entra SAML トークン暗号化とその構成方法については、「Microsoft Entra SAML トークン暗号化の構成方法」を参照してください。

Note

トークン暗号化は、Microsoft Entra ID P1 または P2 の機能です。 Microsoft Entra のエディション、機能、価格の詳細については、Microsoft Entra の価格に関する記事を参照してください。

SAML 要求の署名検証

この機能では、署名付き認証要求の署名が検証されます。 アプリ管理者は、署名付き要求の適用を有効または無効にし、検証の実行に使用する公開キーをアップロードします。 詳細については、署名付き SAML 認証要求を適用する方法に関する記事を参照してください。

カスタム クレーム プロバイダー (プレビュー)

ADFS などのレガシ システムや LDAP などのデータ ストアからデータを移行するために、アプリはトークン内の特定のデータに依存します。 カスタム クレーム プロバイダーを使用して、トークンにクレームを追加できます。 詳細については、カスタム クレーム プロバイダーの概要に関する記事を参照してください。

今すぐ移動できるアプリと構成

現時点で簡単に移動できるのは、構成要素と要求の標準セットを使用する SAML 2.0 アプリなどです。 これらの標準項目には、次のものがあります。

  • ユーザー プリンシパル名
  • 電子メール アドレス
  • 指定された名前
  • Microsoft Entra ID メール属性、メール プレフィックス、従業員 ID、拡張属性 1 から 15、オンプレミスの SamAccountName 属性など、SAML NameID のような代替属性。 詳細については、「NameIdentifier 要求の編集」を参照してください。
  • カスタム要求。

次のものを Microsoft Entra ID に移行するには、追加の構成手順が必要になります。

  • AD FS のカスタム承認または多要素認証 (MFA) 規則。 これらは、Microsoft Entra 条件付きアクセス機能を使用して構成します。
  • 複数の応答 URL エンドポイントを持つアプリ。 これらは、PowerShell を使用して Microsoft Entra ID で、または Microsoft Entra 管理センター インターフェイスで構成します。
  • SAML バージョン 1.1 のトークンを必要とする SharePoint アプリなどの WS-Federation アプリ。 これらは、PowerShell を使用して手動で構成できます。 また、ギャラリーからの SharePoint アプリケーションと SAML 1.1 アプリケーションに対しては、事前に統合された汎用テンプレートを追加することもできます。 SAML 2.0 プロトコルがサポートされています。
  • 複雑な要求発行変換規則。 サポートされる要求マッピングの詳細については、以下を参照してください。

Microsoft Entra で現時点ではサポートされていないアプリと構成

特定の機能を必要とするアプリは、現時点では移行することができません。

プロトコル機能

以下のプロトコル機能を必要とするアプリは、現時点では移行することができません。

  • WS-Trust ActAs パターンのサポート
  • SAML アーティファクト解決

AD FS から Microsoft Entra ID へのアプリの設定のマッピング

移行では、まずアプリケーションがオンプレミスでどのように構成されているかを評価し、その構成を Microsoft Entra ID にマッピングすることが必要です。 AD FS と Microsoft Entra ID は動作が似ているため、信頼関係の構成、サインオンとサインアウトの URL、および識別子の概念は、両方に当てはまります。 Microsoft Entra ID で簡単に構成できるように、アプリケーションの AD FS の構成設定を文書化します。

アプリの構成設定のマッピング

次の表では、AD FS 証明書利用者の信頼と Microsoft Entra エンタープライズ アプリケーションの間での、設定の最も一般的なマッピングについて説明します。

  • AD FS – アプリに対する AD FS 証明書利用者の信頼で設定を探します。 証明書利用者を右クリックし、[プロパティ] を選択します。
  • Microsoft Entra ID – 設定は、アプリケーションの SSO プロパティごとに、Microsoft Entra 管理センター内で構成されます。
構成設定 AD FS Microsoft Entra ID で構成する方法 SAML トークン
アプリのサインオン URL

サービス プロバイダー (SP) によって開始された SAML フローでユーザーがアプリにサインインするための URL。

該当なし SAML ベースのサインオンから [基本的な SAML 構成] を開きます 該当なし
アプリの応答 URL

ID プロバイダー (IdP) から見たアプリの URL。 IdP は、ユーザーが IdP にサインインした後、ここにユーザーとトークンを送信します。 SAML アサーション コンシューマー エンドポイントとも呼ばれます

[エンドポイント] タブを選択します SAML ベースのサインオンから [基本的な SAML 構成] を開きます SAML トークンの Destination 要素。 値の例: https://contoso.my.salesforce.com
アプリのサインアウト URL

ユーザーがアプリからサインアウトしたときにサインアウト クリーンアップ要求が送信される URL。 IdP は、他のすべてのアプリからユーザーをサインアウトさせる要求も送信します。

[エンドポイント] タブを選択します SAML ベースのサインオンから [基本的な SAML 構成] を開きます 該当なし
アプリ識別子

IdP の観点からのアプリ識別子。 多くの場合、サインオン URL 値が識別子に使用されます (そうでない場合もあります)。 場合によっては、アプリによってエンティティ ID が呼び出されることがあります

[識別子] タブを選択します SAML ベースのサインオンから [基本的な SAML 構成] を開きます SAML トークンの Audience 要素にマッピングします。
アプリのフェデレーション メタデータ

アプリのフェデレーション メタデータの場所。 エンドポイントや暗号化証明書などの特定の構成設定を自動更新するために、IdP によって使用されます。

[監視] タブをクリックします 該当なし。 Microsoft Entra ID では、アプリケーション フェデレーション メタデータの使用は直接はサポートされていません。 フェデレーション メタデータは手動でインポートできます。 該当なし
ユーザー識別子/名前 ID

Microsoft Entra ID または AD FS のユーザー ID をアプリに一意に示すために使用される属性。 この属性は、通常、ユーザーの UPN またはメール アドレスです。

要求規則。 ほとんどの場合、要求規則では末尾が NameIdentifier の型の要求が発行されます。 この識別子は、ヘッダー [ユーザー属性と要求] にあります。 既定では、UPN が適用されます。 SAML トークンの NameID 要素にマッピングします。
その他の要求

IdP からアプリによく送信される他の要求情報の例としては、名、姓、メール アドレス、グループ メンバーシップなどがあります。

AD FS では、証明書利用者のその他の要求規則となっています。 この識別子は、ヘッダー [ユーザー属性と要求] にあります。 [表示] を選択し、他のすべてのユーザー属性を編集します。 該当なし

ID プロバイダー (IdP) の設定のマッピング

SSO 対応の Microsoft Entra ID に対して AD FS を指し示すようにアプリケーションを構成します。 ここでは、SAML プロトコルを使用する SaaS アプリに焦点を当てます。 ただし、この概念はカスタム基幹業務アプリにも及びます。

Note

Microsoft Entra ID の構成値は、{tenant-id} を Azure テナント ID に置き換え、{application-id} をアプリケーション ID に置き換えるパターンに従います。 この情報は、Microsoft Entra 管理センター[Microsoft Entra ID] > [プロパティ] にあります。

  • テナント ID を確認するには [ディレクトリ ID] を選択します。
  • アプリケーション ID を確認するには [アプリケーション ID] を選択します。

大まかには、SaaS アプリの主要な構成要素と Microsoft Entra ID は次のようにマッピングします。

要素 構成値
ID プロバイダーの発行者 https://sts.windows.net/{tenant-id}/
ID プロバイダーのサインイン URL https://login.microsoftonline.com/{tenant-id}/saml2
ID プロバイダーのサインアウト URL https://login.microsoftonline.com/{tenant-id}/saml2
フェデレーション メタデータの場所 https://login.windows.net/{tenant-id}/federationmetadata/2007-06/federationmetadata.xml?appid={application-id}

SaaS アプリに対する SSO の設定のマッピング

SaaS アプリでは、認証要求の送信先と、受信したトークンの検証方法がわかっている必要があります。 次の表では、アプリで SSO 設定を構成するための要素と、その値、または AD FS と Microsoft Entra ID 内での場所について説明します。

構成設定 AD FS Microsoft Entra ID で構成する方法
IdP のサインオン URL

アプリから見た IdP のサインオン URL (ユーザーがサインインのためにリダイレクトされる場所)。

AD FS のサインオン URL は、AD FS フェデレーション サービス名に /adfs/ls/ を付加したものです。

例: https://fs.contoso.com/adfs/ls/

{tenant-id} を実際のテナント ID に置き換えます。

SAML-P プロトコルを使用するアプリの場合: https://login.microsoftonline.com/{tenant-id}/saml2

WS-Federation プロトコルを使用するアプリの場合: https://login.microsoftonline.com/{tenant-id}/wsfed

IdP のサインアウト URL

アプリから見た IdP のサインアウト URL (ユーザーがアプリのサインアウトを選択したときにリダイレクトされる場所)。

サインアウト URL はサインオン URL と同じであるか、同じ URL に wa=wsignout1.0 を付加したものです。 例: https://fs.contoso.com/adfs/ls/?wa=wsignout1.0 {tenant-id} を実際のテナント ID に置き換えます。

SAML-P プロトコルを使用するアプリの場合:

https://login.microsoftonline.com/{tenant-id}/saml2

WS-Federation プロトコルを使用するアプリの場合: https://login.microsoftonline.com/common/wsfederation?wa=wsignout1.0

トークン署名証明書

IdP では、発行されたトークンに署名するために、証明書の秘密キーが使用されます。 アプリが信頼するように構成されているのと同じ IdP からトークンが来ていることを確認します。

AD FS トークン署名証明書は、[AD FS の管理] の [証明書] の下にあります。 Microsoft Entra 管理センターで、アプリケーションの [シングル サインオンのプロパティ][SAML 署名証明書] ヘッダーの下にあります。 ここで、アプリにアップロードするための証明書をダウンロードすることができます。

アプリケーションに複数の証明書がある場合は、フェデレーション メタデータ XML ファイルですべての証明書を確認することができます。

識別子/"発行者"

アプリから見た IdP の識別子 ("発行者 ID" と呼ばれる場合もあります)。

SAML トークンでは、値は Issuer 要素として表示されます。

AD FS の識別子は、通常、[サービス] > [フェデレーション サービスのプロパティの編集] の下にある [AD FS の管理] のフェデレーション サービス識別子です。 例: http://fs.contoso.com/adfs/services/trust {tenant-id} を実際のテナント ID に置き換えます。

https://sts.windows.net/{tenant-id}/

IdP のフェデレーション メタデータ

IdP の一般公開されているフェデレーション メタデータの場所。 (一部のアプリでは、管理者によって個別に構成される URL、識別子、およびトークン署名証明書の代わりに、フェデレーション メタデータを使用します)。

AD FS フェデレーション メタデータ URL は、[AD FS の管理] にあり、これは [サービス] > [エンドポイント] > [メタデータ] > [種類: フェデレーション メタデータ] で確認できます。 例: https://fs.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml Microsoft Entra ID での対応する値は、https://login.microsoftonline.com/{TenantDomainName}/FederationMetadata/2007-06/FederationMetadata.xml というパターンに従います。 {TenantDomainName} を、contoso.onmicrosoft.com 形式のテナントの名前に置き換えます。

詳細については、「フェデレーション メタデータ」を参照してください。

次のステップ