チュートリアル: ヘッダーベースのシングル サインオン用に F5 BIG-IP Access Policy Manager を構成する

F5 BIG-IP 詳細構成を使用して、ヘッダーベースのアプリケーションへのシングル サインオン (SSO) によるセキュア ハイブリッド アクセス (SHA) を実装する方法について学習します。 BIG-IP 公開アプリケーションと Microsoft Entra 構成には、次のような利点があります:

詳細情報:

シナリオの説明

このシナリオでは、HTTP 認可ヘッダーを使用して保護されたコンテンツへのアクセスを制御するレガシ アプリケーションがあるとします。 理想的には、Microsoft Entra ID がアプリケーション アクセスを管理します。 ただし、レガシには最新の認証プロトコルがありません。 最新化には労力と時間がかかりますが、ダウンタイムのコストとリスクが発生します。 代わりに、パブリック インターネットと内部アプリケーションの間に BIG-IP をデプロイして、アプリケーションへの受信アクセスをゲートします。

アプリケーションの前に BIG-IP を置くことにより、Microsoft Entra の事前認証およびヘッダーベース SSO をサービスにオーバーレイできます。 この構成により、アプリケーションのセキュリティ態勢が向上します。

シナリオのアーキテクチャ

このシナリオのためのセキュア ハイブリッド アクセス ソリューションは、次のもので構成されます。

  • アプリケーション - Microsoft Entra SHA によって保護される BIG-IP 公開サービス
  • Microsoft Entra ID - ユーザーの資格情報、条件付きアクセス、BIG-IP に対する SSO を検証する Security Assertion Markup Language (SAML) ID プロバイダー (IdP)
    • SSO を使用すると、Microsoft Entra ID により、ユーザー識別子を含むBIG-IP必須の必要なセッション属性が提供されます
  • BIG-IP - アプリケーションに対するリバース プロキシおよび SAML サービス プロバイダー (SP)。バックエンド アプリケーションへのヘッダーベースの SSO の前に認証を SAML IdP に委任します

次の図は、Microsoft Entra ID、BIG-IP、APM、アプリケーションを使ったユーザー フローを示しています。

Microsoft Entra ID、BIG-IP、APM、およびアプリケーションを使用したユーザー フローの図

  1. ユーザーがアプリケーションの SAML SP エンドポイント (BIG-IP) に接続します。
  2. BIG-IP APM アクセス ポリシーは、ユーザーを Microsoft Entra ID (SAML IdP) にリダイレクトします。
  3. Microsoft Entra によってユーザーの事前認証が行われ、ConditionalAccess ポリシーが適用されます。
  4. ユーザーは BIG-IP (SAML SP) にリダイレクトされ、発行された SAML トークンを使用して SSO が実行されます。
  5. BIG-IP によって、Microsoft Entra 属性がアプリケーションへの要求のヘッダーとして挿入されます。
  6. アプリケーションが要求を承認し、ペイロードを返します。

前提条件

このシナリオでは、以下が必要です。

  • Azure サブスクリプション
  • 次のいずれかのロール: クラウド アプリケーション管理者、アプリケーション管理者
  • BIG-IP、または Azure に BIG-IP Virtual Edition (VE) をデプロイします
  • 次のいずれかの F5 BIG-IP ライセンス:
    • F5 BIG-IP® Best バンドル
    • F5 BIG-IP Access Policy Manager™ (APM) スタンドアロン ライセンス
    • BIG-IP F5 BIG-IP® Local Traffic Manager™ (LTM) に対する F5 BIG-IP Access Policy Manager™ (APM) アドオン ライセンス
    • 90 日間の BIG-IP 全機能試用版ライセンス。 無料試用版に関するページを参照してください。
  • オンプレミスのディレクトリから Microsoft Entra ID に同期されたユーザー ID
  • HTTPS でサービスを公開するための SSL 証明書。または、テスト中は既定の証明書を使用します
  • ヘッダーベースのアプリケーション、またはテスト用の IIS ヘッダー アプリ

BIG-IP の構成方法

次の手順は、SHA を実装するための柔軟な方法である高度な構成方法です。 BIG-IP 構成オブジェクトを手動で作成します。 ガイド付き構成テンプレートに含まれていないシナリオでは、この方法を使用します。

注意

サンプルの文字列または値は、実際の環境のものに置き換えてください。

ヒント

この記事の手順は、開始するポータルによって若干異なる場合があります。

SHA を実装するには、最初の手順として、BIG-IP APM と Microsoft Entra ID の間に SAML フェデレーション信頼を設定します。 この信頼により、公開サービスへのアクセスを許可する前に BIG-IP が、あらかじめ事前認証と条件付きアクセスを Microsoft Entra ID に引き継ぐための統合が確立されます。

詳細情報: 条件付きアクセスとは

  1. クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。

  2. [ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[すべてのアプリケーション] に移動します。

  3. 上部のリボンで、[+ 新規アプリケーション] を選択します。

  4. ギャラリーで「F5」を検索します。

  5. [F5 BIG-IP APM Microsoft Entra ID 統合] を選びます。

  6. アプリケーションの名前を入力します。

  7. [追加/作成] を選択します。

  8. 名前にはサービスが反映されます。

Microsoft Entra SSO の構成

  1. 新しい F5 アプリケーションのプロパティが表示されます

  2. [管理]>[シングル サインオン] を選択します

  3. [シングル サインオン方式の選択] ページで、 [SAML] を選択します。

  4. シングル サインオンの設定を保存するかどうかを確認するメッセージをスキップします。

  5. [いいえ、後で保存します] を選択します。

  6. [SAML によるシングル サインオンのセットアップ][基本的な SAML 構成]ペン アイコンを選択します。

  7. [識別子] URL を、BIG-IP で公開されたサービス URL に置き換えます。 たとえば、https://mytravel.contoso.com のように指定します。

  8. [応答 URL] を繰り返し、APM SAML エンドポイント パスを含めます。 たとえば、https://mytravel.contoso.com/saml/sp/profile/post/acs のように指定します。

    Note

    この構成では、SAML フローは IdP モードで動作します。アプリケーションの BIG-IP サービス エンドポイントへのリダイレクトの前に、Microsoft Entra ID がユーザーに SAML アサーションを発行します。 BIG-IP APM では、IdP モードと SP モードがサポートされています。

  9. [ログアウト URI] には、サービス ホスト ヘッダーが前についた BIG-IP APM シングル ログアウト (SLO) エンドポイントを入力します。 SLO URI を使用すると、Microsoft Entra のサインアウト後にユーザー BIG-IP APM セッションが終了します。 例えば、 https://mytravel.contoso.com/saml/sp/profile/redirect/slr

    識別子、応答 URL、サインオン URL などの基本的な SAML 構成入力のスクリーンショット。

    Note

    Traffic Management Operating System (TMOS) v16 以降、SAML SLO エンドポイントは /saml/sp/profile/redirect/slo に変更されました。

  10. [保存] を選択します。

  11. SAML 構成を終了します。

  12. SSO テスト プロンプトをスキップします。

  13. [ユーザー属性とクレーム] > [+ 新しいクレームの追加] を編集するには、ペン アイコンを選択します。

  14. [名前][Employeeid] を選択します。

  15. [ソース属性][user.employeeid] を選択します。

  16. [保存] を選びます。

[要求の管理] ダイアログの [名前] と [ソース属性] の入力のスクリーンショット。

  1. [+ グループ要求を追加する] を選択します
  2. [アプリケーションに割り当てられているグループ]>[ソース属性]>[sAMAccountName] を選択します。

[グループ要求] ダイアログの [ソース属性] の入力のスクリーンショット。

  1. 構成の [保存] を選択します。
  2. ビューを閉じます。
  3. [ユーザー属性とクレーム] セクションのプロパティを確認してください。 Microsoft Entra ID によって BIG-IP APM 認証とバックエンド アプリケーションへの SSO のためのユーザー プロパティが発行されます。

ユーザー属性とクレーム情報 (姓、メール アドレス、ID など) のスクリーンショット。

Note

BIG-IP 公開アプリケーションがヘッダーとして想定するその他の要求を追加します。 Microsoft Entra ID では、より明確に定義された要求が発行されます。 要求を発行する前に、 Microsoft Entra ID でディレクトリ メンバーシップとユーザー オブジェクトを定義します。 Microsoft Entra ID を使用してアプリケーションのグループ要求を構成するを参照してください。

  1. [SAML 署名証明書] セクションで、[ダウンロード] を選択します。
  2. フェデレーション メタデータ XML ファイルがコンピューターに保存されます。

[SAML 署名証明書] ダイアログのフェデレーション メタデータ XML のダウンロード リンクのスクリーンショット。

Microsoft Entra ID によって作成された SAML 署名証明書の有効期間は 3 年です。

Microsoft Entra 承認

既定では、Microsoft Entra ID で、サービスへのアクセスが許可されているユーザーにトークンが発行されます。

  1. アプリケーションの構成ビューで、 [ユーザーとグループ] を選択します
  2. [ユーザーの追加] を選択し、[割り当ての追加][ユーザーとグループ] を選択します。
  3. [ユーザーとグループ] ダイアログで、ヘッダーベースのアプリケーションへのアクセス権限を持つユーザー グループを追加します。
  4. [選択] を選択します。
  5. [割り当て] を選択します。

Microsoft Entra SAML フェデレーション信頼が完了しました。 次に、BIG-IP APM を設定して Web アプリケーションを発行し、プロパティを構成して SAML 事前認証の信頼を完了します。

詳細な構成

SAML、ヘッダー SSO、アクセス プロファイルなどを構成するには、次のセクションを使用します。

[SAML 構成]

公開アプリケーションを Microsoft Entra ID とフェデレーションするには、BIG-IP SAML サービス プロバイダーと対応する SAML IdP オブジェクトを作成します。

  1. [Access](アクセス)>[Federation](フェデレーション)>[SAML Service Provider](SAML サービス プロバイダー)>[Local SP Services](ローカル SP サービス)>[Create](作成) の順に選択します。

    [SAML サービス プロバイダー] タブの [作成] オプションを示すスクリーンショット。

  2. [名前] を入力します。

  3. Microsoft Entra ID で定義した [エンティティ ID] を入力します。

    [新しい SAML SP サービスの作成] ダイアログの [名前] と [エンティティ ID] 入力のスクリーンショット。

  4. [SP 名の設定] は、エンティティ ID が公開 URL のホスト名と一致しない場合に選択します。または、通常のホスト名ベースの URL 形式でない場合に選択します。 エンティティ ID が urn:mytravel:contosoonline の場合は、外部スキームとアプリケーションのホスト名を指定します。

  5. 下にスクロールして、新しい SAML SP オブジェクトを選択します。

  6. [IdP コネクタのバインドまたはバインド解除] を選択します。

    [SAML サービス プロバイダー] タブの [IdP コネクタのバインドまたはバインド解除] オプションを示すスクリーンショット。

  7. [新しい IdP コネクタの作成] を選択します。

  8. ドロップダウンから、[メタデータから] を選択します。

    [新しい IdP 接続の作成] ドロップダウン メニューの [メタデータから] オプションを示すスクリーンショット。

  9. ダウンロードしたフェデレーション メタデータ XML ファイルを参照します。

  10. 外部 SAML IdP の APM オブジェクトの [ID プロバイダー名] を入力します。 たとえば、MyTravel_EntraID のように指定します。

[新しい SAML IdP コネクタの作成] の [ファイルの選択] と [ID プロバイダー名] 入力を示すスクリーンショット。

  1. [新しい行の追加] を選択します。
  2. 新しい SAML IdP コネクタを選択します。
  3. [更新] を選択します。

[SAML IdP コネクタ] の [更新] オプションのスクリーンショット。

  1. [OK] を選択します。

保存された設定のスクリーンショット

ヘッダー SSO の構成

APM SSO オブジェクトを作成します。

  1. [Access](アクセス)>[Profiles/Policies](プロファイルまたはポリシー)>[Per-Request Policies](要求ごとのポリシー)>[Create](作成) の順に選択します。

  2. [名前] を入力します。

  3. 少なくとも 1 つの受け入れ可能な言語を追加します。

  4. [完了] を選択します。

    [名前] と [受け入れ可能な言語] の入力のスクリーンショット。

  5. 新しい要求ごとのポリシーの場合は、[編集] を選択します。

    [要求ごとのポリシー] 列の [編集] オプションを示すスクリーンショット。

  6. ビジュアル ポリシー エディターが起動します。

  7. [フォールバック] の下で + 記号を選択します。

    [フォールバック] の下のプラス記号オプションを示すスクリーンショット。

  8. [汎用] タブで、[HTTP ヘッダー]>[項目の追加] の順に選択します。

    [HTTP ヘッダー] オプションのスクリーンショット。

  9. [新しいエントリの追加] を選択します。

  10. 3 つの HTTP およびヘッダー変更エントリを作成します。

  11. [ヘッダー名] に「upn」と入力します。

  12. [ヘッダー値] に「%{session.saml.last.identity}」と入力します。

  13. [ヘッダー名] に「employeeid」と入力します。

  14. [ヘッダー値] に「%{session.saml.last.attr.name.employeeid}」と入力します。

  15. [ヘッダー名] に「group_authz」と入力します。

  16. [ヘッダー値] に「%{session.saml.last.attr.name.http://schemas.microsoft.com/ws/2008/06/identity/claims/groups}」と入力します。

注意

中かっこ内の APM セッション変数では、大文字と小文字が区別されます。 属性は小文字で定義することをお勧めします。

[プロパティ] タブの [HTTP ヘッダーの変更] の下にあるヘッダー入力を示すスクリーンショット。

  1. [保存] を選択します。
  2. ビジュアル ポリシー エディターを閉じます。

ビジュアル ポリシー エディターを示すスクリーンショット。

アクセス プロファイル構成

アクセス プロファイルは、アクセス ポリシー、SSO 構成、UI 設定など、BIG-IP 仮想サーバーへのアクセスを管理する多くの APM 要素をバインドします。

  1. [Access] (アクセス)>[Profiles/Policies] (プロファイル/ポリシー)>[Access Profiles (Per-Session Policies)] (アクセス プロファイル (セッションごとのポリシー))>[Create] (作成) を選択します。

  2. [名前] に「MyTravel」と入力します。

  3. [プロファイルの種類] では、[すべて] を選択します。

  4. [Accepted Language](受け入れ可能な言語) では、少なくとも 1 つの言語を選択します。

  5. [完了] を選択します。

    [名前]、[プロファイルの種類]、[受け入れ可能な言語] のエントリを示すスクリーンショット。

  6. 作成したセッションごとのプロファイルに対して [編集] を選択します。

    [セッションごとのポリシー] 列の [編集] オプションを示すスクリーンショット。

  7. ビジュアル ポリシー エディターが起動します。

  8. [フォールバック] の下で + 記号を選択します。

    プラス記号オプションを示すスクリーンショット。

  9. [認証]>[SAML 認証]>[項目の追加] を選択します。

    [認証] タブの [SAML Auth] オプションのスクリーンショット。

  10. [SAML 認証 SP] の構成で、[AAA サーバー] ドロップダウンから、作成した SAML SP オブジェクトを選択します。

  11. [保存] を選択します。

AAA サーバーの選択を示すスクリーンショット。

属性マッピング

以下の手順は省略可能です。 LogonID_Mapping 構成では、BIG-IP アクティブ セッションの一覧に、セッション番号ではなく、サインインしたユーザー プリンシパル名 (UPN) が含まれます。 このデータは、ログの分析やトラブルシューティングを行うときに使用します。

  1. [SAML Auth](SAML 認証) の [Successful](成功) ブランチの + 記号を選択します。

    [SAML Auth]\(SAML 認証\) の [Successful]\(成功\) ブランチのプラス記号を示すスクリーンショット。

  2. ポップアップで [Assignment](割り当て)>[Variable Assign](変数の割り当て)>[Add Item](項目の追加) の順に選択します。

    [割り当て] タブの [変数の割り当て] オプションのスクリーンショット。

  3. 名前を入力する

  4. [Variable Assign](変数の割り当て) セクションで、[Add new entry](新しいエントリの追加) > [change](変更) を選択します。 たとえば、「LogonID_Mapping」と入力します。

    [新しいエントリと変更の追加] オプションのスクリーンショット

  5. [カスタム変数]session.saml.last.identity を設定します。

  6. [セッション変数]session.logon.last.username を設定します。

  7. [完了] を選択します。

  8. [保存] を選択します。

  9. アクセス ポリシーの [成功] ブランチで、[拒否] ターミナルを選択します。

  10. [許可] を選択します。

  11. [保存] を選択します。

  12. [Apply Access Policy] (アクセス ポリシーの適用) を選択します。

  13. ビジュアル ポリシー エディターを閉じます。

バックエンドプール構成

BIG-IP がクライアント トラフィックを正しく転送できるようにするには、アプリケーションをホストしているバックエンド サーバーを表す APM ノード オブジェクトを作成します。 ノードを APM プールに配置します。

  1. [ローカル トラフィック] > [プール] > [プールの一覧] > [作成] を選択します。

  2. サーバー プール オブジェクトの [名前] を入力します。 たとえば、「MyApps_VMs」と入力します。

    [アクセス ポリシーの適用] のスクリーンショット。

  3. プール メンバー オブジェクトを追加します。

  4. [ノード名] には、バックエンド Web アプリケーションをホストするサーバーの名前を入力します。

  5. [アドレス] には、アプリケーションをホストするサーバーの IP アドレスを入力します。

  6. [サービス ポート] には、アプリケーションがリッスンする HTTP/S ポートを入力します。

  7. [追加] を選択します。

    [ノード名]、[アドレス]、[サービス ポート] の入力と [追加] オプションを示すスクリーンショット。

    注意

    詳細については、my.f5.com にアクセスして、K13397: BIG-IP DNS システム用の HTTP 正常性モニター要求の書式設定の概要に関するページを参照してください。

仮想サーバーの構成

仮想サーバーは、アプリケーションに対するクライアント要求をリッスンする仮想 IP アドレスで表される BIG-IP データ プレーン オブジェクトです。 受信したトラフィックが処理され、仮想サーバーに関連付けられている APM アクセス プロファイルに照らして評価されます。 トラフィックはポリシーに従って送信されます。

  1. [ローカル トラフィック]>[仮想サーバー]>[仮想サーバーの一覧]>[作成] の順に選択します。

  2. 仮想サーバーの [名前] を入力します。

  3. [宛先アドレス/マスク] で、[ホスト] を選択します

  4. クライアント トラフィックを受信するために BIG-IP に割り当てられる未使用の IP (IPv4 または IPv6) を入力します。

  5. [サービス ポート] で、[ポート][443][HTTPS] を選択します。

    [名前]、[宛先アドレス/マスク]、[サービス ポート] のエントリを示すスクリーンショット。

  6. [HTTP プロファイル (クライアント)] では、[http] を選択します。

  7. [SSL プロファイル (クライアント)] では、作成したクライアント SSL プロファイルを選択するか、テスト用の既定値のままにします。

    HTTP プロファイル クライアントと SSL プロファイル クライアントのエントリのスクリーンショット。

  8. [Source Address Translation](ソース アドレス変換) では、[Auto Map](自動マップ) を選択します。

    [ソース アドレス変換] オプションのスクリーンショット。

  9. [アクセス ポリシー] では、以前作成したアクセス プロファイルを選択します。 このアクションにより、Microsoft Entra SAML 事前認証プロファイルとヘッダー SSO ポリシーが仮想サーバーにバインドされます。

  10. [要求ごとのポリシー] では、[SSO_Headers] を選択します。

アクセス プロファイルと要求ごとのポリシーのエントリのスクリーンショット。

  1. [既定のプール] では、作成したバックエンド プール オブジェクトを選択します。
  2. [完了] を選択します。

[リソース] の [既定のプール] オプションを示すスクリーンショット。

セッションの管理

BIG-IP セッション管理設定を使用して、ユーザー セッションの終了または継続の条件を定義します。 [アクセス ポリシー]>[アクセス プロファイル] を使用してポリシーを作成します。 一覧からアプリケーションを選択します。

SLO 機能に関して、Microsoft Entra ID の SLO URI により、MyApps ポータルからの IdP によって開始されたサインアウトによって、クライアントと BIG-IP APM の間のセッションが終了することが保証されます。 インポートされたアプリケーション フェデレーションの metadata.xml は、SP によって開始されるサインアウトの Microsoft Entra SAML サインアウト エンドポイントを APM に提供します。そのため、APM はユーザーがいつサインアウトしたかを把握できます。

BIG-IP Web ポータルがない場合、ユーザーはサインアウトするよう APM に指示できません。ユーザーがアプリケーションからサインアウトした場合、BIG-IP ではアクションが認識されません。 アプリケーション セッションは、SSO を使用して復帰できます。 そのため、SP によって開始されるサインアウトは慎重に検討する必要があります。

セッションが安全に終了するようにするには、SLO 関数をアプリケーションの [サインアウト] ボタンに追加します。 そこからクライアントを Microsoft Entra SAML のサインアウト エンドポイントにリダイレクトできるようにします。 テナントの SAML サインアウト エンドポイントについては、[アプリの登録]>[エンドポイント] にアクセスします。

アプリを変更できない場合は、BIG-IP でアプリのサインアウト呼び出しをリッスンして SLO をトリガーするようにできます。 詳細については、以下を参照してください。

デプロイ

  1. 設定をコミットするには、[Deploy] (デプロイ) を選びます。
  2. アプリケーションがテナントに表示されていることを確認します。
  3. アプリケーションが発行され、その URL、または Microsoft ポータルで、SHA を介してアクセスできるようになります。

テスト

ユーザーとして次のテストを実行します。

  1. アプリケーションの外部 URL を選ぶか、MyApps ポータルでアプリケーション アイコンを選びます。

  2. Microsoft Entra ID に対して認証を行います。

  3. アプリの BIG-IP 仮想サーバーにリダイレクトされ、SSO でサインインされます。

  4. 挿入されたヘッダー出力は、ヘッダーベースのアプリケーションによって表示されます。

    UPN、従業員 ID、グループ認可などのサーバー変数のスクリーンショット。

セキュリティを強化するには、BIG-IP 経由のパスを適用して、アプリケーションへの直接アクセスをブロックします。

トラブルシューティング

トラブルシューティングには、次のガイダンスを使用します。

ログの詳細

BIG-IP ログには、認証や SSO の問題の切り分けに役立つ情報があります。 次の手順を実行して、ログの詳細レベルを上げます。

  1. [Access Policy](アクセス ポリシー)>[Overview](概要)>[Event Logs](イベント ログ) に移動します。
  2. [設定] を選択します。
  3. 発行されたアプリケーションの行を選択します。
  4. 次に、[編集]>[システム ログへのアクセス] を選択します。
  5. SSO の一覧から [デバッグ] を選びます。
  6. [OK] を選択します。
  7. 問題を再現します。
  8. ログを確認します。
  9. 完了したら、設定を元に戻します。

BIG-IP のエラー メッセージ

リダイレクト後に BIG-IP のエラーが表示される場合は、Microsoft Entra ID から BIG-IP への SSO に関連する問題が発生している可能性があります。

  1. [アクセス ポリシー]>[概要] に移動します。
  2. [Access reports] (レポートへのアクセス) を選びます。
  3. 直近 1 時間のレポートを実行します。
  4. ログに手がかりがないか確認します。
  5. セッションの場合は、[セッション変数の表示] リンクを選択します。
  6. APM が Microsoft Entra ID から期待される要求を受け取るかどうかを確認します。

BIG-IP エラー メッセージなし

BIG-IP のエラー メッセージが表示されない場合、問題は、BIG-IP からバックエンド アプリケーションへの SSO に関係している可能性が高くなります。

  1. [アクセス ポリシー]>[概要] に移動します。
  2. [アクティブ セッション] を選びます。
  3. アクティブなセッションのリンクを選択します。
  4. [変数の表示] リンクを選択して、SSO の問題を特定します。
  5. BIG-IP APM が失敗するか成功するかを確認して、正しいユーザーとドメインの識別子を取得します。

詳細情報:

リソース