フォームベースの SSO 用に F5 BIG-IP Access Policy Manager を構成する
F5 BIG-IP Access Policy Manager (APM) と Microsoft Entra ID を構成して、フォームベースのアプリケーションへの安全なハイブリッド アクセス (SHA) を可能にする方法について説明します。 Microsoft Entra シングル サインオン (SSO) 用の BIG-IP 公開サービスには、次のような利点があります。
- Microsoft Entra 事前認証と条件付きアクセスによるゼロ トラスト ガバナンスの改善
- 「条件付きアクセスとは」を参照してください。
- 「ゼロ トラスト セキュリティ」を参照してください。
- Microsoft Entra ID と BIG-IP の公開済みサービス間の完全な SSO
- マネージド ID と 1 つのコントロール プレーンからのアクセス
- 「Microsoft Entra 管理センター」を参照してください
詳細情報:
シナリオの説明
このシナリオでは、フォームベース認証 (FBA) 用に構成された内部レガシ アプリケーションがあります。 レガシには最新の認証プロトコルがないため、Microsoft Entra ID でアプリケーション アクセスを管理するのが理想的です。 最新化には時間と労力がかかり、ダウンタイムのリスクが生じます。 代わりに、パブリック インターネットと内部アプリケーションの間に BIG-IP をデプロイします。 この構成により、アプリケーションへの受信アクセスが制限されます。
アプリケーションの前に BIG-IP を配置することにより、Microsoft Entra の事前認証とヘッダーベース SSO でサービスをオーバーレイできます。 このオーバーレイにより、アプリケーションのセキュリティ体制が向上します。
シナリオのアーキテクチャ
SHA ソリューションには、次のコンポーネントがあります。
- アプリケーション - 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)。
- SAML IdP に認証を委任する BIG-IP では、バックエンド アプリケーションに対するヘッダーベースの SSO を実行します。
- SSO では、他のフォーム ベースの認証アプリケーションに対して、キャッシュされたユーザー資格情報が使用されます
SHA では、SP および IdP-Initiated フローがサポートされます。 次の図は、SP-Initiated フローを示しています。
- ユーザーがアプリケーション エンドポイント (BIG-IP) に接続します。
- BIG-IP APM アクセス ポリシーにより、ユーザーが Microsoft Entra ID (SAML IdP) にリダイレクトされます。
- Microsoft Entra がユーザーを事前認証し、強制的な条件付きアクセス ポリシーを適用します。
- ユーザーが BIG-IP (SAML SP) にリダイレクトされ、発行された SAML トークンを使用して SSO が実行されます。
- BIG-IP は、ユーザーにアプリケーション パスワードの入力を求め、キャッシュに格納します。
- BIG-IP はアプリケーションに要求を送信し、サインオン フォームを受信します。
- APM スクリプトによってユーザー名とパスワードが入力され、フォームが送信されます。
- Web サーバーによってアプリケーション ペイロードが提供され、クライアントに送信されます。
前提条件
次のコンポーネントが必要です。
- Azure サブスクリプション
- お持ちでない場合は、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 証明書。または、テスト中は既定の証明書を使用します
- 「SSL プロファイル」を参照してください。
- フォーム ベースの認証アプリケーション、またはテスト用にインターネット インフォメーション サービス (IIS) フォーム ベース認証 (FBA) アプリを設定する
- フォーム ベース認証に関するページを参照してください。
BIG-IP の構成
この記事の構成は、柔軟な SHA 実装: BIG-IP 構成オブジェクトの手動作成です。 この方法は、ガイド付き構成テンプレートで対応できないシナリオに使用します。
注意
サンプルの文字列または値は、実際の環境のものに置き換えてください。
Microsoft Entra ID に F5 BIG-IP を登録する
ヒント
この記事の手順は、開始するポータルによって若干異なる場合があります。
BIG-IP 登録は、エンティティ間の SSO の最初の手順です。 F5 BIG-IP ギャラリー テンプレートから作成するアプリは証明書利用者であり、BIG-IP で公開されているアプリケーションの SAML SP を表します。
- クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
- [ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[すべてのアプリケーション] に移動します。
- [すべてのアプリケーション] ウィンドウで、[新しいアプリケーション] を選択します。
- [Browse Microsoft Entra Gallery] (Microsoft Entra ギャラリーを参照する) ウィンドウが開きます。
- クラウド プラットフォーム、オンプレミス アプリケーション、おすすめのアプリケーション用のタイルが表示されます。 [おすすめのアプリケーション] アイコンは、フェデレーション SSO とプロビジョニングのサポートを示しています。
- Azure ギャラリーで「F5」を検索します。
- [F5 BIG-IP APM Microsoft Entra ID 統合] を選びます。
- アプリケーションのインスタンスを認識するために新しいアプリケーションで使用される [名前] を入力します。
- [追加] を選択します。
- [作成] を選択します
F5 BIG-IP への SSO を有効にする
BIG-IP APM から要求された SAML トークンを実行するように BIG-IP の登録を構成します。
- 左側のメニューの [管理] セクションで、[シングル サインオン] を選択します。
- [シングル サインオン] ペインが表示されます。
- [シングル サインオン方式の選択] ページで、 [SAML] を選択します。
- [いいえ、後で保存します] を選択します。
- [SAML によるシングル サインオンのセットアップ] ペインで、ペンのアイコンを選択します。
- [識別子] では、値を BIG-IP 公開アプリケーションの URL に置き換えます。
- [応答 URL] では、値を置き換えますが、アプリケーションの SAML SP エンドポイントのパスはそのままにします。 この構成により、SAML フローは IdP-Initiated モードで動作します。
- Microsoft Entra ID によって SAML アサーションが発行され、ユーザーが BIG-IP エンドポイントにリダイレクトされます。
- SP-Initiated モードでは、[サインオン URL] にアプリケーションの URL を入力します。
- [ログアウト URL] には、サービス ホスト ヘッダーが前についた BIG-IP APM シングル ログアウト (SLO) エンドポイントを入力します。
- この結果、BIG-IP APM ユーザー セッションは、Microsoft Entra ID からユーザーがサインアウトすると終了します。
- [保存] を選択します。
- [SAML 構成] ペインを閉じます。
- SSO テスト プロンプトをスキップします。
- [ユーザー属性とクレーム] セクションのプロパティをメモします。 Microsoft Entra ID によって BIG-IP APM 認証とバックエンド アプリケーションへの SSO のためのプロパティが発行されます。
- [SAML 署名証明書] ペインで [ダウンロード] を選択します。
- フェデレーション メタデータ XML ファイルがコンピューターに保存されます。
Note
Traffic Management Operating System (TMOS) v16 以降、SAML SLO エンドポイントは /saml/sp/profile/redirect/slo
です。
Note
Microsoft Entra SAML 署名証明書の有効期間は 3 年です。
詳細情報については、「チュートリアル: フェデレーション シングル サインオンのための証明書の管理」を参照してください。
ユーザーとグループの割り当て
Microsoft Entra ID により、アプリケーションへのアクセスが許可されているユーザーにトークンが発行されます。 特定のユーザーとグループにアプリケーションへのアクセスを付与するには、次の手順に従います。
- [F5 BIG-IP application’s overview](F5 BIG-IP アプリケーションの概要) ペインで、[ユーザーとグループの割り当て] を選択します。
- [+ Add user/group](+ ユーザーまたはグループの追加) を選択します。
- 目的のユーザーとグループを選択します。
- [割り当て] を選択します。
BIG-IP の高度な構成
次の手順を使用して BIG-IP を構成します。
SAML サービス プロバイダーの設定を構成する
SAML SP の設定は、APM がレガシ アプリケーションを SAML 事前認証でオーバーレイするために使用する SAML SP プロパティを定義します。 それらを構成するには、次の手順に従います。
[アクセス]>[フェデレーション]>[SAML サービス プロバイダー] を選択します。
[ローカル SP サービス] を選択します。
[作成] を選択します
[新しい SAML SP サービスの作成] の [名前] と [エンティティ ID] に、定義された名前とエンティティ ID を入力します。
注意
エンティティ ID が公開 URL のホスト名部分と一致しない場合は、[SP Name Settings](SP 名の設定) の値が必要です。 または、エンティティ ID が通常のホスト名ベースの URL 形式でない場合は、値が必要です。
エンティティ ID が
urn:myvacation:contosoonline
の場合は、アプリケーションの外部スキームとホスト名を入力します。
外部 IdP コネクタを構成する
SAML IdP コネクタは、BIG-IP APM が SAML IdP として Microsoft Entra ID を信頼するための設定を定義します。 これらの設定によって、SAML サービス プロバイダーが SAML IdP に接続されます。これにより、APM と Microsoft Entra ID の間にフェデレーションの信頼が確立されます。
コネクタを構成するには、次の手順に従います。
新しい SAML サービス プロバイダー オブジェクトを選択します。
[Bind/UnBind IdP Connectors](IdP コネクタのバインドまたはバインド解除) を選択します。
[新しい IdP コネクタの作成] リストで、[メタデータから] を選択します。
[新しい SAML IdP コネクタの作成] ペインで、ダウンロードしたフェデレーション メタデータ XML ファイルを参照します。
外部 SAML IdP を表す APM オブジェクトの [ID プロバイダー名] を入力します。 たとえば、MyVacation_EntraID です。
[新しい行の追加] を選択します。
新しい SAML IdP コネクタを選択します。
[更新] を選択します。
[OK] を選択します。
フォームベースの SSO を構成する
バックエンド アプリケーションへの FBA SSO を実行するための APM SSO オブジェクトを作成します。
Client-Initiated モードまたは BIG-IP-Initiated モードで FBA SSO を実行します。 どちらの方法でも、ユーザー名とパスワードのタグに資格情報を挿入することで、ユーザー サインオンがエミュレートされます。 フォームが送信されます。 ユーザーは、FBA アプリケーションにアクセスするためのパスワードを指定します。 パスワードはキャッシュされ、他の FBA アプリケーションに再使用されます。
[アクセス]>[シングル サインオン] を選択します。
[フォームベース] を選択します。
[作成] を選択します。
[名前] には、わかりやすい名前を入力します。 たとえば、Contoso\FBA\sso など。
[Use SSO Template](SSO テンプレートの使用) には、[なし] を選択します。
[Username Source](ユーザー名のソース) には、パスワード コレクション フォームを事前入力するためのユーザー名のソースを入力します。 既定の
session.sso.token.last.username
は、サインインしているユーザーの Microsoft Entra ユーザー プリンシパル名 (UPN) が含まれているため、適切に機能します。[パスワード ソース] では、BIG-IP がユーザー パスワードをキャッシュするために使う APM 変数の既定値
session.sso.token.last.password
のままにします。[開始 URI] に、FBA アプリケーションのログオン URI を入力します。 要求 URI がこの URI 値と一致すると、APM のフォームベース認証で SSO が実行されます。
[フォーム アクション] は、空白のままにします。 この結果、元の要求 URL が SSO に使用されます。
[Form Parameter for Username](ユーザー名のフォーム パラメーター) には、サインイン フォームのユーザー名フィールド要素を入力します。 ブラウザー開発ツールを使用して、要素を特定します。
[Form Parameter for Password](パスワードのフォーム パラメーター) に、サインイン フォームのパスワード フィールド要素を入力します。 ブラウザー開発ツールを使用して、要素を特定します。
詳細については、techdocs.f5.com にアクセスして、手動チャプター: シングル サインオン方法に関する記事を参照してください。
アクセス プロファイルを構成する
アクセス プロファイルは、アクセス ポリシー、SSO 構成、UI 設定など、BIG-IP 仮想サーバーへのアクセスを管理する APM 要素をバインドします。
[アクセス]>[プロファイル / ポリシー] を選択します。
[Access Profiles (Per-Session Policies)](アクセス プロファイル (セッションごとのポリシー)) を選択します。
[作成] を選択します。
[名前] を入力します。
[プロファイルの種類]では、[すべて] を選択します。
[SSO 構成] では、作成した FBA SSO 構成オブジェクトを選択します。
[Accepted Language](受け入れ可能な言語) では、少なくとも 1 つの言語を選択します。
[セッションごとのポリシー] 列で、プロファイルに対して [編集] を選択します。
APM ビジュアル ポリシー エディターが起動します。
[フォールバック] の下で + 記号を選択します。
- ポップアップで [認証] を選択します。
- [SAML 認証] を選択します。
- [Add Item] (項目の追加) を選択します。
- [SAML authentication SP] (SAML 認証 SP) で、[名前] を [Microsoft Entra auth] に変更します。
- [AAA サーバー] ドロップダウンで、作成した SAML サービス プロバイダー オブジェクトを入力します。
- [成功] ブランチで + 記号を選択します。
- ポップアップで [認証] を選択します。
- [ログオン ページ] を選択します。
- [Add Item] (項目の追加) を選択します。
- [ユーザー名] では、[読み取り専用] 列で、[はい] を選びます。
サインイン ページのフォールバックで + 記号を選択します。 このアクションにより、SSO 資格情報マッピング オブジェクトが追加されます。
ポップアップで、[割り当て] タブを選択します。
[SSO Credential Mapping](SSO 資格情報のマッピング) を選択します。
[Add Item] (項目の追加) を選択します。
[変数の割り当て: SSO 資格情報のマッピング] では、既定の設定をそのままにします。
[保存] を選択します。
上部の [拒否] ボックスで、リンクを選択します。
[成功] ブランチが [許可] に変わります。
[保存] を選択します。
(省略可能) 属性マッピングを構成する
LogonID_Mapping 構成を追加できます。 この結果、BIG-IP アクティブ セッション一覧には、セッション番号ではなく、サインインしているユーザーの UPN が含まれます。 この情報は、ログの分析やトラブルシューティングに使用します。
SAML 認証の [成功] ブランチでは、+ 記号を選択します。
ポップアップで、[割り当て] を選択します。
[変数の割り当て] を選択します。
[Add Item] (項目の追加) を選択します。
[プロパティ] タブで、[名前] を入力します。 たとえば、「LogonID_Mapping」と入力します。
[変数の割り当て] で、[新しいエントリの追加] を選択します。
[変更] を選択します。
[カスタム変数] には、
session.logon.last.username
を使用します。セッション変数には、
session.saml.last.identity
を使用します。[完了] を選択します。
[保存] を選択します。
[Apply Access Policy] (アクセス ポリシーの適用) を選択します。
ビジュアル ポリシー エディターを閉じます。
バックエンド プールを構成する
BIG-IP でクライアント トラフィックを正しく転送できるようにするには、アプリケーションをホストするバックエンド サーバーを表す BIG-IP ノード オブジェクトを作成します。 その後、そのノードを BIG-IP サーバー プールに配置します。
[ローカル トラフィック]>[プール] を選択します。
[Pool List](プールの一覧) を選択します。
[作成] を選択します。
サーバー プール オブジェクトの [名前] を入力します。 たとえば、MyApps_VMs など。
[ノード名] には、サーバーの表示名を入力します。 このサーバーは、バックエンド Web アプリケーションをホストします。
[アドレス] には、アプリケーション サーバーのホスト IP アドレスを入力します。
[サービス ポート] には、アプリケーションがリッスンする HTTP/S ポートを入力します。
注意
正常性モニターには、この記事で説明されていない構成が必要です。 support.f5.com にアクセスして、K13397: BIG-IP DNS システム用の HTTP 正常性モニター要求の書式設定の概要に関するページを参照してください。
仮想サーバーを構成する
仮想サーバーは、仮想 IP アドレスで表される BIG-IP データ プレーン オブジェクトです。 サーバーは、アプリケーションへのクライアント要求をリッスンします。 受信したトラフィックはすべて処理され、仮想サーバーに関連付けられている APM アクセス プロファイルに照らして評価されます。 トラフィックはポリシーに従って送信されます。
仮想サーバーを構成するには、次の手順に従います。
[ローカル トラフィック]>[仮想サーバー] を選択します。
[Virtual Server List](仮想サーバーのリスト) を選択します。
[作成] を選択します。
[名前] を入力します。
[宛先アドレス/マスク] では [ホスト] を選択し、IPv4 または IPv6 アドレスを入力します。 このアドレスは、公開されたバックエンド アプリケーションのクライアント トラフィックを受信します。
[サービス ポート] では [ポート] を選択し、「443」と入力し、[HTTPS] を選択します。
[HTTP プロファイル (クライアント)] では、[http] を選択します。
[SSL プロファイル (クライアント)] では、作成したプロファイルを選択するか、テスト用の既定値のままにします。 このオプションを使用すると、トランスポート層セキュリティ (TLS) 用の仮想サーバーで HTTPS 経由でサービスを公開できます。
[Source Address Translation](ソース アドレス変換) では、[Auto Map](自動マップ) を選択します。
[アクセス ポリシー] の [アクセス プロファイル] ボックスに、作成した名前を入力します。 このアクションにより、Microsoft Entra SAML 事前認証プロファイルと FBA SSO ポリシーが仮想サーバーにバインドされます。
- [リソース] の [既定のプール] で、作成したバックエンド プール オブジェクトを選択します。
- [完了] を選択します。
セッション管理の設定を構成する
BIG-IP セッション管理設定では、セッションの終了と継続の条件を定義します。 この領域にポリシーを作成します。
- [アクセス ポリシー] に移動します。
- [アクセス プロファイル] を選択します。
- [アクセス プロファイル] を選択します。
- 一覧から、アプリケーションを選択します。
Microsoft Entra ID にシングル ログアウト URI 値を定義した場合は、MyApps からの IdP-Initiated サインアウトにより、クライアントと BIG-IP APM のセッションが終了します。 インポートしたアプリケーションのフェデレーション メタデータ XML ファイルは、SP-Initiated サインアウトのための Microsoft Entra SAML エンドポイントを APM に提供します。APM がユーザー サインアウトに正しく応答することを確認してください。
BIG-IP Web ポータルがない場合、ユーザーはサインアウトするよう APM に指示できません。ユーザーがアプリケーションからサインアウトした場合、BIG-IP では認識されません。 アプリケーション セッションは、SSO を使用して復帰できます。 SP-Initiated サインアウトでは、セッションが安全に終了することを確認してください。
アプリケーションのサインアウト ボタンに SLO 関数を追加できます。 この機能により、クライアントは Microsoft Entra SAML のサインアウト エンドポイントにリダイレクトされます。 SAML サインアウト エンドポイントを見つけるには、[アプリの登録]>[エンドポイント] に移動します。
アプリを変更できない場合は、BIG-IP でアプリのサインアウト呼び出しをリッスンして SLO をトリガーしてください。
詳細情報:
公開アプリケーション
アプリケーションは公開され、アプリの URL または Microsoft ポータルにより SHA を使用してアクセスできます。
アプリケーションは、条件付きアクセスのターゲット リソースとして表示されます。 詳細については、「条件付きアクセス ポリシーの構築」を参照してください。
セキュリティを強化するには、BIG-IP 経由のパスを適用して、アプリケーションへの直接アクセスをブロックします。
テスト
ユーザーは、アプリケーションの外部 URL に接続するか、My Apps でアプリケーション アイコンを選びます。
Microsoft Entra ID に対してユーザー認証を行います。
ユーザーは、アプリケーションの BIG-IP エンドポイントにリダイレクトされます。
パスワードのプロンプトが表示されます。
APM により、Microsoft Entra ID からの UPN でユーザー名が入力されます。 ユーザー名は、セッションの一貫性のために読み取り専用です。 このフィールドは、必要に応じて非表示にしてください。
情報が送信されます。
ユーザーがアプリケーションにサインインします。
トラブルシューティング
トラブルシューティングを行うときは、次の情報を考慮してください。
BIG-IP は、URI でサインイン フォームを解析するときに FBA SSO を実行します
- BIG-IP は、構成からユーザー名とパスワードの要素タグをシークします
要素タグが一貫していることを確認してください。そうでなければ、SSO が失敗します
動的に生成される複雑なフォームでは、サインイン フォームを理解するために開発ツールの分析が必要になる場合があります
クライアントによる開始は、複数のフォームを含むサインイン ページの場合に適しています
- フォーム名を選択し、JavaScript フォーム ハンドラー ロジックをカスタマイズできます
FBA SSO の方法では、フォーム操作を非表示にしてユーザー エクスペリエンスとセキュリティを最適化します。
- 資格情報が挿入されているかどうかを検証できます
- Client によって開始されるモードでは、SSO プロファイルでフォームの自動送信を無効にします
- 開発ツールを使用して、サインイン ページの表示を妨げる 2 つのスタイル プロパティを無効にします
ログの詳細度を上げる
BIG-IP ログには、認証と SSO の問題を分離するための情報が含まれています。 次の手順を実行して、ログの詳細レベルを上げます。
- [アクセス ポリシー]>[概要] に移動します。
- [イベント ログ] を選択します。
- [設定] を選択します。
- 発行されたアプリケーションの行を選択します。
- [編集] を選択します。
- [Access System Logs](システム ログへのアクセス) を選択します。
- SSO の一覧で [デバッグ] を選択します。
- [OK] を選択します。
- 問題を再現します。
- ログを確認します。
設定を元に戻します。そうしないと、過剰なデータが提供されます。
BIG-IP エラー メッセージ
Microsoft Entra の事前認証後に BIG-IP のエラーが表示される場合は、問題が Microsoft Entra ID と BIG-IP の SSO に関連している可能性があります。
- [アクセス]>[概要] に移動します。
- [Access reports](レポートへのアクセス) を選択します。
- 直近 1 時間のレポートを実行します。
- ログに手がかりがないか確認します。
セッションの [View session variables] (セッション変数の表示) リンクを使用して、予想される Microsoft Entra クレームを APM が受け取っているかどうかを確認します。
BIG-IP エラー メッセージなし
BIG-IP エラー メッセージが表示されない場合、問題はバックエンド要求、または BIG-IP からアプリケーションへの SSO に関連している可能性があります。
- [アクセス ポリシー]>[概要] を選択します。
- [アクティブ セッション] を選択します。
- アクティブ セッション リンクを選択します。
この場所の [View Variables](変数の表示) リンクを使用すると、特に APM で正しいユーザー識別子とパスワードを取得できない場合に、根本原因を特定するのに役立ちます。
詳細については、techdocs.f5.com で手動チャプター: セッション変数に関する記事を参照してください。
リソース
- techdocs.f5.com の Manual Chapter: Authentication に移動します
- パスワードレスの認証
- 条件付きアクセスとは
- リモート作業を可能にする Microsoft ゼロ トラスト フレームワーク