F5 BIG-IP 詳細構成を使用して、ヘッダーベースのアプリケーションへのシングル サインオン (SSO) によるセキュア ハイブリッド アクセス (SHA) を実装する方法について学習します。 BIG-IP 公開アプリケーションと Microsoft Entra 構成には、次のようなメリットがあります。
- Microsoft Entra の事前認証および条件付きアクセスによるゼロ トラスト ガバナンスの強化
- 「条件付きアクセスとは」を参照してください。
- ゼロトラストセキュリティを参照
- Microsoft Entra ID と BIG-IP 公開サービスとの間の完全な SSO
- マネージド ID と 1 つのコントロール プレーンからのアクセス
- Microsoft Entra 管理センターを参照してください
詳細情報:
シナリオの説明
このシナリオでは、HTTP 認可ヘッダーを使用して保護されたコンテンツへのアクセスを制御するレガシ アプリケーションがあるとします。 可能であれば、Microsoft Entra ID がアプリケーション アクセスを管理します。 ただし、レガシ アプリケーションには最新の認証プロトコルがありません。 最新化には労力と時間がかかりますが、ダウンタイムのコストとリスクが発生します。 代わりに、パブリック インターネットと内部アプリケーションの間に BIG-IP をデプロイして、アプリケーションへの受信アクセスをゲートします。
アプリケーションの手前に BIG-IP を置くことにより、Microsoft Entra の事前認証およびヘッダーベース SSO をサービスにオーバーレイできます。 この構成により、アプリケーションのセキュリティ態勢が向上します。
シナリオのアーキテクチャ
このシナリオのためのセキュア ハイブリッド アクセス ソリューションは、次のもので構成されます。
- アプリケーション - BIG-IP 公開サービスは Microsoft Entra SHA によって保護される予定です。
- Microsoft Entra ID - ユーザー資格情報、条件付きアクセス、および BIG-IP への SSO を検証するセキュリティ アサーション マークアップ言語 (SAML) ID プロバイダー (IdP)
- SSO を使用すると、Microsoft Entra ID により、ユーザー識別子を含む必要なセッション属性が BIG-IP に提供されます
- BIG-IP - バックエンド アプリケーションへのヘッダー ベースの SSO の前に、アプリケーションへのリバース プロキシと SAML サービス プロバイダー (SP) による SAML IdP への認証の委任
次の図は、Microsoft Entra ID、BIG-IP、APM、アプリケーションを使用したユーザー フローを示しています。
- ユーザーがアプリケーションの SAML SP エンドポイント (BIG-IP) に接続します。
- BIG-IP APM アクセス ポリシーは、ユーザーを Microsoft Entra ID (SAML IdP) にリダイレクトします。
- Microsoft Entra がユーザーを事前認証し、ConditionalAccess ポリシーを適用します。
- ユーザーは BIG-IP (SAML SP) にリダイレクトされ、発行された SAML トークンを使用して SSO が実行されます。
- BIG-IP によって、Microsoft Entra 属性がアプリケーションへの要求のヘッダーとして挿入されます。
- アプリケーションが要求を承認し、ペイロードを返します。
前提条件
このシナリオでは、以下が必要です。
- 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 ヘッダー アプリ
BIG-IP の構成方法
次の手順は、SHA を実装するための柔軟な方法である高度な構成方法です。 BIG-IP 構成オブジェクトを手動で作成します。 ガイド付き構成テンプレートに含まれていないシナリオでは、この方法を使用します。
Note
サンプルの文字列または値は、実際の環境のものに置き換えてください。
Microsoft Entra ギャラリーから F5 BIG-IP を追加する
SHA を実装するには、最初の手順として、BIG-IP APM と Microsoft Entra ID の間に SAML フェデレーション信頼を設定します。 この信頼により、公開サービスへのアクセスを許可する BIG-IP が、あらかじめ事前認証と条件付きアクセスを Microsoft Entra ID に引き継ぐための統合が確立されます。
詳細情報: 条件付きアクセスとは
Microsoft Entra 管理センターに、少なくともクラウド アプリケーション管理者としてサインインします。
[Entra ID]>[エンタープライズ アプリ]>[すべてのアプリケーション] を参照します。
上部のリボンで、[ + 新しいアプリケーション] を選択します。
ギャラリーで F5 キーを検索します。
F5 BIG-IP APM Microsoft Entra ID 統合を選択します。
アプリケーション名を入力 します。
[ 追加/作成] を選択します。
名前にはサービスが反映されます。
Microsoft Entra SSO を構成する
新しい F5 アプリケーション プロパティが表示されます
[管理>シングルサインオン] を選択する
[ シングル サインオン方法の選択 ] ページで、[SAML] を選択 します。
シングル サインオンの設定を保存するかどうかを確認するメッセージをスキップします。
[ いいえ] を選択します。後で保存します。
[ SAML でシングル サインオンを設定する] で、[ 基本的な SAML 構成] で ペン アイコンを選択します。
識別子 URL を、BIG-IP 発行されたサービス URL に置き換えます。 たとえば、
https://mytravel.contoso.com
のように指定します。応答 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 モードがサポートされています。
ログアウト URI の場合は、サービス ホスト ヘッダーの先頭に APM シングル ログアウト (SLO) エンドポイント BIG-IP を入力します。 SLO URI を使用すると、Microsoft Entra のサインアウト後にユーザー BIG-IP APM セッションが終了します (例:
https://mytravel.contoso.com/saml/sp/profile/redirect/slr
)。Note
Traffic Management Operating System (TMOS) v16 以降、SAML SLO エンドポイントは
/saml/sp/profile/redirect/slo
に変更されました。[保存] を選択します。
SAML 構成を終了します。
SSO テスト プロンプトをスキップします。
[ユーザー属性] & [要求] > + [新しい要求の追加] を編集するには、ペン アイコンを選択します。
[名前] で [Employeeid] を選択します。
[ソース] 属性で user.employeeid を選択します。
[保存] を選択する
- [ + グループ要求の追加] を選択する
- アプリケーションに割り当てられたグループ>Source Attribute>sAMAccountName を選択します。
- [構成の 保存] を選択します。
- ビューを閉じます。
- [ユーザー属性] および [要求] セクションのプロパティを確認します。 Microsoft Entra ID によって BIG-IP APM 認証とバックエンド アプリケーションへの SSO のためのユーザー プロパティが発行されます。
Note
BIG-IP 公開アプリケーションがヘッダーとして想定するその他の要求を追加します。 Microsoft Entra ID では、より明確に定義された要求が発行されます。 要求を発行する前に、Microsoft Entra ID でディレクトリ メンバーシップとユーザー オブジェクトを定義します。 「 Microsoft Entra ID を使用してアプリケーションのグループ要求を構成する」を参照してください。
- [ SAML 署名証明書 ] セクションで、[ ダウンロード] を選択します。
- フェデレーション メタデータ XML ファイルは、コンピューターに保存されます。
Microsoft Entra ID によって作成された SAML 署名証明書の有効期間は 3 年です。
Microsoft Entra 承認
既定では、Microsoft Entra ID はアプリケーションへのアクセスが付与されているユーザーにトークンを発行します。
- アプリケーションの構成ビューで、[ ユーザーとグループ] を選択します。
- [ + ユーザーの追加] を選択し、[ 割り当ての追加] で [ ユーザーとグループ] を選択します。
- [ ユーザーとグループ ] ダイアログで、ヘッダー ベースのアプリケーションにアクセスする権限を持つユーザー グループを追加します。
- [選択] を選択します。
- 割り当てを選択します。
Microsoft Entra SAML フェデレーション信頼が完了しました。 次に、BIG-IP APM を設定して Web アプリケーションを発行し、プロパティを構成して SAML 事前認証の信頼を完了します。
詳細な構成
SAML、ヘッダー SSO、アクセス プロファイルなどを構成するには、次のセクションを使用します。
[SAML 構成]
公開アプリケーションの Microsoft Entra ID とのフェデレーションを実行するには、BIG-IP SAML サービス プロバイダーと、対応する SAML IdP オブジェクトを作成します。
「アクセス>フェデレーション>SAML サービスプロバイダー>ローカルSPサービス>の作成」を選択します。
名前を入力してください。
Microsoft Entra ID で定義されている エンティティ ID を入力します。
[SP 名の設定] では、エンティティ ID が発行された URL のホスト名と一致しない場合は選択するか、通常のホスト名ベースの URL 形式でない場合は選択します。 エンティティ ID が
urn:mytravel:contosoonline
の場合は、外部スキームとアプリケーションのホスト名を指定します。下にスクロールして、新しい SAML SP オブジェクトを選択します。
[ IdP コネクタのバインド/バインド解除] を選択します。
[ Create New IdP Connector]\(新しい IdP コネクタの作成\) を選択します。
ドロップダウンから[ メタデータから]を選択します。
ダウンロードしたフェデレーション メタデータ XML ファイルを参照します。
外部 SAML IdP の APM オブジェクトの ID プロバイダー名 を入力します。 たとえば、
MyTravel_EntraID
のように指定します。
- [ 新しい行の追加] を選択します。
- 新しい SAML IdP コネクタを選択します。
- [ 更新] を選択します。
- [ OK] を選択します。
ヘッダー SSO の構成
APM SSO オブジェクトを作成します。
アクセス>プロファイル/ポリシー>Per-Request ポリシー>作成 を選択します。
名前を入力してください。
少なくとも 1 つの 承認済み言語を追加します。
[ 完了] を選択します。
新しい要求ごとのポリシーの場合は、[ 編集] を選択します。
ビジュアル ポリシー エディターが起動します。
フォールバックで、+記号を選択します。
[汎用] タブで、[HTTP ヘッダー] >[項目の追加] を選択します。
[ 新しいエントリの追加] を選択します。
3 つの HTTP およびヘッダー変更エントリを作成します。
[ヘッダー名] に「upn」と入力します。
[ヘッダー値] に、「{session.saml.last.identity}」% 入力します。
[ヘッダー名] に「employeeid」と入力します。
[ヘッダー値] に、「{session.saml.last.attr.name.employeeid}」% 入力します。
[ヘッダー名] に「group_authz」と入力します。
[ヘッダー値] に「{session.saml.last.attr.name.
http://schemas.microsoft.com/ws/2008/06/identity/claims/groups
}」と%入力します。
Note
中かっこ内の APM セッション変数では、大文字と小文字が区別されます。 属性は小文字で定義することをお勧めします。
- [保存] を選択します。
- ビジュアル ポリシー エディターを閉じます。
アクセス プロファイル構成
アクセス プロファイルは、アクセス ポリシー、SSO 構成、UI 設定など、BIG-IP 仮想サーバーへのアクセスを管理する多くの APM 要素をバインドします。
Access>Profiles / Policies>Access Profiles (Per-Session Policies)>Create を選択します。
[名前] に「MyTravel」と入力します。
[ プロファイルの種類] で[ すべて]を選択します。
[ 承認済み言語] で、少なくとも 1 つの言語を選択します。
[完了] を選択します。
作成したセッションごとのプロファイルで、[ 編集] を選択します。
ビジュアル ポリシー エディターが起動します。
[フォールバック] の下で + 記号を選択します。
[ 認証>SAML 認証>項目の追加を選択します。
SAML 認証 SP 構成の場合は、AAA サーバーのドロップダウンから、作成した SAML SP オブジェクトを選択します。
[保存] を選択します。
属性マッピング
以下の手順は省略可能です。 LogonID_Mapping 構成では、BIG-IP アクティブ セッションの一覧に、セッション番号ではなく、サインインしているユーザー プリンシパル名 (UPN) が含まれます。 このデータは、ログの分析やトラブルシューティングを行うときに使用します。
SAML 認証 成功 ブランチで、 + 記号を選択します。
ポップアップで、[ 割り当て>可変割り当て>項目の追加を選択します。
名前を入力する
[ 変数の割り当て ] セクションで、[ 新しいエントリの追加>change] を選択します。 たとえば、「LogonID_Mapping」と入力します。
カスタム変数の場合は、session.saml.last.identity を設定します。
セッション変数の場合は、session.logon.last.username を設定します。
[ 完了] を選択します。
[保存] を選択します。
アクセス ポリシー成功 ブランチで、 拒否 ターミナルを選択します。
[許可] を選択します。
[保存] を選択します。
[ アクセス ポリシーの適用] を選択します。
ビジュアル ポリシー エディターを閉じます。
バックエンドプール構成
BIG-IP がクライアント トラフィックを正しく転送できるようにするには、アプリケーションをホストしているバックエンド サーバーを表す APM ノード オブジェクトを作成します。 ノードを APM プールに配置します。
ローカル トラフィック > プール > プールリスト > 作成を選択します。
サーバー プール オブジェクトの場合は、名前を入力 します。 たとえば、「MyApps_VMs」と入力します。
プール メンバー オブジェクトを追加します。
[ノード名] に、バックエンド Web アプリケーションをホストするサーバーの名前を入力します。
[ アドレス] に、アプリケーションをホストしているサーバーの IP アドレスを入力します。
サービス ポートの場合は、アプリケーションがリッスンしている HTTP/S ポートを入力します。
追加を選択します。
Note
詳細については、「 K13397 の my.f5.com: BIG-IP DNS システムの HTTP 正常性モニター要求の書式設定の概要」を参照してください。
仮想サーバーの構成
仮想サーバーは、アプリケーションに対するクライアント要求をリッスンする仮想 IP アドレスで表される BIG-IP データ プレーン オブジェクトです。 受信したトラフィックが処理され、仮想サーバーに関連付けられている APM アクセス プロファイルに照らして評価されます。 トラフィックはポリシーに従って送信されます。
ローカル トラフィック>仮想サーバー>仮想サーバーの一覧>作成を選択します。
仮想サーバー名を入力 します。
宛先アドレス/マスクの場合は、[ホスト] を選択します。
クライアント トラフィックを受信するために BIG-IP に割り当てられる未使用の IP (IPv4 または IPv6) を入力します。
[サービス ポート] で、[ポート]、[443]、[HTTPS] の順に選択します。
[HTTP プロファイル (クライアント)]で、[http] を選択します。
SSL プロファイル (クライアント) の場合は、作成したクライアント SSL プロファイルを選択するか、テスト用の既定値のままにします。
[ 送信元アドレス変換] で、[ 自動マップ] を選択します。
[アクセス ポリシー] で、先ほど作成したアクセス プロファイルを選択します。 このアクションにより、Microsoft Entra SAML 事前認証プロファイルとヘッダー SSO ポリシーが仮想サーバーにバインドされます。
Per-Requestポリシーで、SSO_Headersを選択します。
- [既定のプール] で、作成したバックエンド プール オブジェクトを選択します。
- [ 完了] を選択します。
セッションの管理
BIG-IP セッション管理設定を使用して、ユーザー セッションの終了または継続の条件を定義します。 アクセス ポリシー>Access プロファイルを使用してポリシーを作成します。 一覧からアプリケーションを選択します。
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 サインアウト エンドポイントについては、「 アプリの登録>Endpoints」を参照してください。
アプリを変更できない場合は、BIG-IP でアプリのサインアウト呼び出しをリッスンして SLO をトリガーするようにできます。 詳細については、以下を参照してください。
- support.f5.comのK42052145: URI参照ファイル名に基づく自動セッション終了(ログアウト)の構成にアクセスしてください
- my.f5.com にアクセスして、K12056: ログアウト URI インクルード オプションの概要 をご覧ください。
展開
- [ デプロイ] を選択して設定をコミットします。
- アプリケーションがテナントに表示されていることを確認します。
- アプリケーションが発行され、その URL、または Microsoft ポータルで、SHA を介してアクセスできるようになります。
テスト
ユーザーとして以下のテストを実行します。
- アプリケーションの外部 URL を選択するか、MyApps ポータルでアプリケーション アイコンを選択します。
- Microsoft Entra ID に対して認証します。
- アプリの BIG-IP 仮想サーバーにリダイレクトされ、SSO を使用してサインインされます。
- 挿入されたヘッダー出力は、ヘッダーベースのアプリケーションによって表示されます。
セキュリティを強化するには、BIG-IP 経由のパスを適用して、アプリケーションへの直接アクセスをブロックします。
トラブルシューティング
トラブルシューティングには、次のガイダンスを使用します。
ログの冗長性
BIG-IP ログには、認証や SSO の問題の切り分けに役立つ情報があります。 次の手順を実行して、ログの詳細レベルを上げます。
- アクセス ポリシー>Overview>Event ログに移動します。
- [ 設定] を選択します。
- 発行されたアプリケーションの行を選択します。
- [ 編集]>[システム ログにアクセス]を選択します。
- SSO の一覧から [ デバッグ] を選択します。
- [ OK] を選択します。
- 問題を再現します。
- ログを確認します。
- 完了したら、設定を元に戻します。
BIG-IP のエラー メッセージ
リダイレクト後に BIG-IP のエラーが表示される場合は、Microsoft Entra ID から BIG-IP への SSO に関連する問題が発生している可能性があります。
- アクセス ポリシー>Overview に移動します。
- [ レポートへのアクセス] を選択します。
- 直近 1 時間のレポートを実行します。
- ログに手がかりがないか確認します。
- セッションの場合は、[ セッション変数の表示 ] リンクを選択します。
- APM が Microsoft Entra ID から期待される要求を受け取ることを確認します。
BIG-IP エラー メッセージなし
BIG-IP のエラー メッセージが表示されない場合、問題は、BIG-IP からバックエンド アプリケーションへの SSO に関係している可能性が高くなります。
- アクセス ポリシー>Overview に移動します。
- [アクティブなセッション] を選択します。
- アクティブなセッションのリンクを選択します。
- [ 変数の表示 ] リンクを選択して、SSO の問題を特定します。
- BIG-IP APM が失敗するか成功するかを確認して、正しいユーザーとドメインの識別子を取得します。
詳細情報:
- APM 変数の割り当て例の devcentral.f5.com に移動する
- BIG-IP アクセス ポリシー マネージャー: ビジュアル ポリシー エディターの techdocs.f5.com に移動する