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 を検証するセキュリティ アサーション マークアップ言語 (SAML) ID プロバイダー (IdP)。
- SSO では、Microsoft Entra ID から BIG-IP にユーザー識別子を含む属性が提供される
- BIG-IP - アプリケーションへのリバース プロキシと SAML サービス プロバイダー (SP)。
- SAML IdP に認証を委任する BIG-IP では、バックエンド アプリケーションに対するヘッダーベースの SSO を実行します。
- SSO では、他のフォーム ベースの認証アプリケーションに対して、キャッシュされたユーザー資格情報が使用されます
SHA では、SP と IdP によって開始されるフローがサポートされます。 次の図は、SP によって開始されるフローを示しています。
- ユーザーがアプリケーション エンドポイント (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) をデプロイします
- Azure での F5 BIG-IP Virtual Edition 仮想マシンのデプロイに関するページを参照してください
- 次のいずれかの 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 構成オブジェクトの手動作成です。 この方法は、ガイド付き構成テンプレートで対応できないシナリオに使用します。
Note
サンプルの文字列または値は、実際の環境のものに置き換えてください。
Microsoft Entra ID に F5 BIG-IP を登録する
BIG-IP 登録は、エンティティ間の SSO の最初の手順です。 F5 BIG-IP ギャラリー テンプレートから作成するアプリは証明書利用者であり、BIG-IP で公開されているアプリケーションの SAML SP を表します。
- Microsoft Entra 管理センターに、少なくともクラウド アプリケーション管理者としてサインインします。
- Entra ID>エンタープライズアプリ>すべてのアプリケーションに移動します。
- [ すべてのアプリケーション ] ウィンドウで、[ 新しいアプリケーション] を選択します。
- [ 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 開始モードの場合は、[ サインオン 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 アプリケーションの概要ウィンドウで、[ユーザーとグループの割り当て] を選択します。
- [ + ユーザー/グループの追加] を選択します。
- 目的のユーザーとグループを選択します。
- 割り当てを選択します。
BIG-IP の高度な構成
次の手順を使用して BIG-IP を構成します。
SAML サービス プロバイダーの設定を構成する
SAML SP の設定は、APM がレガシ アプリケーションを SAML 事前認証でオーバーレイするために使用する SAML SP プロパティを定義します。 それらを構成するには、次の手順に従います。
Access>Federation>SAML Service Provider を選択します。
[ローカル SP サービス] を選択します。
[作成] を選択します。
[ Create New SAML SP Service]\(新しい SAML SP サービスの作成\) で、[ 名前 ] と [エンティティ ID] に、定義された名前とエンティティ ID を入力します。
Note
エンティティ ID が公開 URL のホスト名部分と一致しない場合は、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 サービス プロバイダー オブジェクトを選択します。
バインド/アンバインド IdP コネクタ を選択します。
新しい IdP コネクタの作成 リストで、メタデータからを選択します。
[ Create New SAML IdP Connector]\(新しい 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 など。
[ 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 に使用されます。
[ ユーザー名のフォーム パラメーター] に、サインイン フォームのユーザー名フィールド要素を入力します。 ブラウザー開発ツールを使用して、要素を特定します。
[ パスワードのフォーム パラメーター] に、サインイン フォームのパスワード フィールド要素を入力します。 ブラウザー開発ツールを使用して、要素を特定します。
詳細については、「 手動の章: シングル サインオン方法の techdocs.f5.com」を参照してください。
アクセス プロファイルを構成する
アクセス プロファイルは、アクセス ポリシー、SSO 構成、UI 設定など、BIG-IP 仮想サーバーへのアクセスを管理する APM 要素をバインドします。
[アクセス>プロファイル/ポリシー] を選択します。
アクセス プロファイル (Per-Session ポリシー) を選択します。
[作成] を選択します。
名前を入力します。
[ プロファイルの種類] で[ すべて]を選択します。
[SSO 構成] で、作成した FBA SSO 構成オブジェクトを選択します。
[ 承認済み言語] で、少なくとも 1 つの言語を選択します。
[ Per-Session ポリシー ] 列で、プロファイルの [編集] を選択します。
APM ビジュアル ポリシー エディターが起動します。
フォールバックで、+記号を選択します。
- ポップアップで、[ 認証] を選択します。
- [SAML 認証] を選択します。
- [ 項目の追加] を選択します。
- SAML 認証 SP で、名前を Microsoft Entra 認証に変更します。
- AAA サーバドロップダウンで、作成した SAML サービス プロバイダ オブジェクトを入力します。
- 成功したブランチで、+記号を選択します。
- ポップアップで、[ 認証] を選択します。
- [ログオン] ページを選択します。
- [ 項目の追加] を選択します。
- ユーザー名の場合、[読み取り専用] 列で [はい] を選択します。
サインイン ページのフォールバックで + 記号を選択します。 このアクションにより、SSO 資格情報マッピング オブジェクトが追加されます。
ポップアップで、[ 割り当て ] タブを選択します。
[SSO 資格情報マッピング] を選択します。
[ 項目の追加] を選択します。
変数割り当て時: SSO 資格情報マッピングでは、既定の設定をそのまま使用します。
[保存] を選択します。
上部の [拒否 ] ボックスで、リンクを選択します。
成功したブランチが 許可 に変わります。
[保存] を選択します。
(省略可能) 属性マッピングを構成する
LogonID_Mapping 構成を追加できます。 この結果、BIG-IP アクティブ セッション一覧には、セッション番号ではなく、サインインしているユーザーの UPN が含まれます。 この情報は、ログの分析やトラブルシューティングに使用します。
SAML 認証成功ブランチで、+記号を選択します。
ポップアップで、[ 割り当て] を選択します。
[ 変数の割り当て] を選択します。
[ 項目の追加] を選択します。
[ プロパティ ] タブで、[ 名前] を入力します。 たとえば、「LogonID_Mapping」と入力します。
[ 変数の割り当て] で、[ 新しいエントリの追加] を選択します。
[変更] を選択します。
カスタム変数の場合は、
session.logon.last.username
を使用します。セッション変数には、
session.saml.last.identity
を使用します。[ 完了] を選択します。
[保存] を選択します。
[ アクセス ポリシーの適用] を選択します。
ビジュアル ポリシー エディターを閉じます。
バックエンド プールを構成する
BIG-IP でクライアント トラフィックを正しく転送できるようにするには、アプリケーションをホストするバックエンド サーバーを表す BIG-IP ノード オブジェクトを作成します。 その後、そのノードを BIG-IP サーバー プールに配置します。
[ローカル トラフィック>プールを選択します]。
[プールの一覧] を選択します。
[作成] を選択します。
サーバー プール オブジェクトの 名前 を入力します。 たとえば、「MyApps_VMs」と入力します。
[ノード名] に、サーバーの表示名を入力します。 このサーバーは、バックエンド Web アプリケーションをホストします。
[ アドレス] に、アプリケーション サーバーのホスト IP アドレスを入力します。
サービス ポートの場合は、アプリケーションがリッスンしている HTTP/S ポートを入力します。
Note
正常性モニターには、この記事で説明されていない構成が必要です。 support.f5.com にアクセスし、BIG-IP DNS システム用の HTTP 正常性モニター要求の書式設定の概要である K13397 を参照してください。
仮想サーバーを構成する
仮想サーバーは、仮想 IP アドレスで表される BIG-IP データ プレーン オブジェクトです。 サーバーは、アプリケーションへのクライアント要求をリッスンします。 受信したトラフィックはすべて処理され、仮想サーバーに関連付けられている APM アクセス プロファイルに照らして評価されます。 トラフィックはポリシーに従って送信されます。
仮想サーバーを構成するには、次の手順に従います。
[ ローカル トラフィック>仮想サーバー] を選択します。
[仮想サーバーの一覧] を選択します。
[作成] を選択します。
名前を入力します。
[宛先アドレス/マスク] で、[ホスト] を選択し、IPv4 または IPv6 アドレスを入力します。 このアドレスは、公開されたバックエンド アプリケーションのクライアント トラフィックを受信します。
[サービス ポート] で、[ポート] を選択し、「443」と入力して、[HTTPS] を選択します。
[HTTP プロファイル (クライアント)]で、[http] を選択します。
SSL プロファイル (クライアント) の場合は、作成したプロファイルを選択するか、テスト用の既定値のままにします。 このオプションを使用すると、トランスポート層セキュリティ (TLS) 用の仮想サーバーで HTTPS 経由でサービスを公開できます。
[ 送信元アドレス変換] で、[ 自動マップ] を選択します。
[ アクセス ポリシー] の [ アクセス プロファイル ] ボックスに、作成した名前を入力します。 このアクションにより、Microsoft Entra SAML 事前認証プロファイルと FBA SSO ポリシーが仮想サーバーにバインドされます。
- [ リソース] の [既定のプール] で、作成したバックエンド プール オブジェクトを選択します。
- [ 完了] を選択します。
セッション管理の設定を構成する
BIG-IP セッション管理設定では、セッションの終了と継続の条件を定義します。 この領域にポリシーを作成します。
- アクセス ポリシーに移動します。
- [アクセス プロファイル] を選択します。
- [アクセス プロファイル] を選択します。
- 一覧から、アプリケーションを選択します。
Microsoft Entra にシングル ログアウト 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 に接続するか、マイ アプリでアプリケーションのアイコンを選択します。
- ユーザーは、Microsoft Entra ID を認証します。
- ユーザーは、アプリケーションの BIG-IP エンドポイントにリダイレクトされます。
- パスワードのプロンプトが表示されます。
- APM により、Microsoft Entra ID からの UPN でユーザー名が入力されます。 ユーザー名は、セッションの一貫性のために読み取り専用です。 このフィールドは、必要に応じて非表示にしてください。
- 情報が送信されます。
- ユーザーは、アプリケーションにサインインしました。
トラブルシューティング
トラブルシューティングの際は次の情報を考慮してください。
BIG-IP は、URI でサインイン フォームを解析するときに FBA SSO を実行します
- BIG-IP は、構成からユーザー名とパスワードの要素タグをシークします
要素タグの一貫性を確認してください。そうしないと、SSO は失敗します。
動的に生成される複雑なフォームでは、サインイン フォームを理解するために開発ツールの分析が必要になる場合があります
クライアント Initiation は、複数のフォームがあるサインイン ページに適しています
- フォーム名を選択し、JavaScript フォーム ハンドラー ロジックをカスタマイズできます
FBA SSO のどちらの方法でも、フォーム操作を非表示にすれば、ユーザー エクスペリエンスとセキュリティが最適化されます。
- 資格情報が挿入されているかどうかを検証できます
- Client-Initiated モードでは、SSO プロファイルでフォームの自動送信を無効にします
- 開発ツールを使用して、サインイン ページの表示を妨げる 2 つのスタイル プロパティを無効にします
ログの詳細度を上げる
BIG-IP ログには、認証と SSO の問題を分離するための情報が含まれています。 次の手順を実行して、ログの詳細レベルを上げます。
- アクセス ポリシー>Overview に移動します。
- [イベント ログ] を選択します。
- [ 設定] を選択します。
- 発行されたアプリケーションの行を選択します。
- [ 編集] を選択します。
- [ アクセス システム ログ] を選択します。
- SSO の一覧で [ デバッグ] を選択します。
- [ OK] を選択します。
- 問題を再現します。
- ログを確認します。
設定を元に戻します。そうしないと、過剰なデータが提供されます。
BIG-IP のエラー メッセージ
Microsoft Entra 事前認証後に BIG-IP のエラーが表示される場合、Microsoft Entra ID と BIG-IP の SSO に関する問題が発生している可能性があります。
- Access>Overview に移動します。
- [ レポートへのアクセス] を選択します。
- 直近 1 時間のレポートを実行します。
- ログに手がかりがないか確認します。
セッションの [セッション変数の表示] リンクを使用して、APM が予想される Microsoft Entra 要求を受け取るかどうかを判断します。
BIG-IP エラー メッセージなし
BIG-IP エラー メッセージが表示されない場合、問題はバックエンド要求、または BIG-IP からアプリケーションへの SSO に関連している可能性があります。
- アクセス ポリシー>概要 を選択します。
- [アクティブなセッション] を選択します。
- アクティブなセッション リンクを選びます。
この場所の [変数の表示] リンクを使用すると、APM が正しいユーザー ID とパスワードを取得できない場合に、根本原因を特定できます。
詳細については、「 手動章: セッション変数」の techdocs.f5.com を参照してください。
リソース
- 「手動の章: 認証」の techdocs.f5.com に移動する
- パスワードレス認証
- 条件付きアクセスとは
- リモート作業を有効にするゼロ トラスト フレームワーク