次の方法で共有


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

この記事では、Microsoft Entra ID で SAML ベースのシングル サインオン (SSO) をアプリケーションに対して構成する方法について説明します。 ここでは主に、Active Directory Federation Services (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 で利用可能な属性が表示されます。 必要な属性 (samAccountName など) が Microsoft Entra ID に同期されていることを確認するには、Microsoft Entra Connect Sync に関する記事で構成を確認してください。 Microsoft Entra ID の標準ユーザー スキーマに含まれていないクレームは、拡張属性を使用して発行できます。
  • 最も一般的なシナリオでアプリに必要なのは、NameID クレームとその他の一般的なユーザー識別子クレームだけです。 追加のクレームが必要かどうかを判断するには、AD FS からどのクレームを発行しているかを確認してください。
  • 一部のクレームは Microsoft Entra ID で保護されているため、発行できません。
  • 暗号化された SAML トークンを使用する機能は現在プレビュー段階です。 「方法: エンタープライズ アプリケーションの SAML トークンで発行されたクレームのカスタマイズ」をご覧ください。

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

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

ほとんどの SaaS アプリケ―ションは Microsoft Entra ID で構成できます。 Microsoft は多数の SaaS アプリに対する事前構成済みの接続を Microsoft Entra アプリ ギャラリーに用意しているため、移行が容易です。 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 は、SAML ベースのフェデレーション SSO を SaaS アプリケ―ションに対して確立するために署名証明書を作成します。 ギャラリー アプリでもギャラリー以外のアプリでも追加すると、フェデレーション SSO オプションを使用して追加したアプリケーションを構成します。 Microsoft Entra ID でのフェデレーション シングル サインオンの証明書の管理に関するページを参照してください。

SAML トークン暗号化

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

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

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

SAML 要求の署名検証

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

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

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

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

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

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

次のようなアプリケーションは、Microsoft Entra ID に移行する際に追加の構成手順が必要です。

現時点では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 – 設定は、Microsoft Entra 管理センター内の各アプリケーションの SSO プロパティで構成します。
構成設定 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) の設定のマッピング

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

Microsoft Entra ID の構成値は、Azure テナント ID が {tenant-id} に、アプリケーション ID が {application-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 の形式のテナント名に置き換えてください。

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

次のステップ