チュートリアル: ヘッダー ベースと LDAP シングル サインオン用に F5 BIG-IP の Easy Button を構成する
この記事では、F5 BIG-IP Easy Button ガイド付き構成 16.1 で、Microsoft Entra ID を使用して、ヘッダーと LDAP ベースのアプリケーションをセキュリティで保護する方法について学習できます。 BIG-IP と Microsoft Entra ID の統合には、さまざまな利点があります。
- ガバナンスの強化: リモート作業を可能にするゼロトラスト フレームワークに関するページを参照し、Microsoft Entra 事前認証の詳細を確認してください
- 組織のポリシーを適用する方法については、「条件付きアクセスとは」も参照してください。
- Microsoft Entra ID と BIG-IP の公開済みサービス間のフル シングル サインオン (SSO)
- 1 つのコントロール プレーンである Microsoft Entra 管理センターから ID とアクセスを管理します。
その他の利点については、F5 BIG-IP と Microsoft Entra の統合に関する記事を参照してください。
シナリオの説明
このシナリオでは、LDAP ディレクトリ属性から供給される HTTP 承認ヘッダーを使用して、保護されたコンテンツへのアクセスを管理するクラシック レガシ アプリケーションに焦点を当てています。
レガシであるため、アプリケーションには Microsoft Entra ID との直接的な統合をサポートする最新のプロトコルがありません。 アプリを最新化することは可能ですが、コストがかかり、計画が必要であり、潜在的なダウンタイムのリスクが生じます。 代わりに、プロトコル遷移によってレガシ アプリケーションと最新の ID コントロール プレーンとの間のギャップを橋渡しするために、F5 BIG IP Application Delivery Controller (ADC) を使用します。
アプリの前に BIG-IP があると、Microsoft Entra の事前認証とヘッダーベースの SSO によってサービスをオーバーレイできるようになるため、アプリケーションの全体的なセキュリティ体制が強化されます。
シナリオのアーキテクチャ
このシナリオのためのセキュア ハイブリッド アクセス ソリューションには、次のものが用意されています。
- アプリケーション - Microsoft Entra ID のセキュア ハイブリッド アクセス (SHA) によって保護される BIG-IP の公開済みサービス
- Microsoft Entra ID - ユーザーの資格情報、条件付きアクセス、BIG-IP への SAML ベースの SSO を検証する Security Assertion Markup Language (SAML) ID プロバイダー (IdP)。 SSO を使用して、Microsoft Entra ID により、必要なセッション属性が BIG-IP に提供されます。
- HR システム - アプリケーションのアクセス許可の真の情報源として機能する LDAP ベースの従業員データベース。
- BIG-IP - アプリケーションに対するリバース プロキシおよび SAML サービス プロバイダー (SP)。バックエンド アプリケーションへのヘッダーベースの SSO を実行する前に認証を SAML IdP に委任します。
このシナリオの SHA では、SP と IdP によって開始されるフローがサポートされます。 次の図は、SP Initiated フローを示しています。
- ユーザーがアプリケーション エンドポイント (BIG-IP) に接続する
- BIG-IP APM アクセス ポリシーは、ユーザーを Microsoft Entra ID (SAML IdP) にリダイレクトします
- Microsoft Entra ID は、ユーザーを事前認証し、強制的な条件付きアクセス ポリシーを適用します
- ユーザーが BIG-IP (SAML SP) にリダイレクトされ、発行された SAML トークンを使用して SSO が実行される
- BIG IP によって、LDAP ベースの HR システムに追加の属性が要求される
- BIG-IP によって、Microsoft Entra ID および HR システムの属性がアプリケーションへの要求のヘッダーとして挿入されます
- アプリケーションが、エンリッチされたセッション アクセス許可を使用してアクセスを承認する
必須コンポーネント
以前の BIG-IP エクスペリエンスは必要ありませんが、以下が必要です。
- 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) アドオン ライセンス
- BIG-IP 製品の 90 日間の無料試用版
- オンプレミスのディレクトリから Microsoft Entra ID に同期されたユーザー ID
- 次のいずれかのロール: クラウド アプリケーション管理者、アプリケーション管理者。
- HTTPS でサービスを公開するための SSL Web 証明書。またはテスト時に既定の BIG-IP 証明書を使用します
- ヘッダーベースのアプリケーション、またはテスト用に簡単な IIS ヘッダー アプリをセットアップします
- Windows Active Directory Lightweight Directory Services (AD LDS)、OpenLDAP などの LDAP をサポートするユーザー ディレクトリ。
BIG-IP の構成
このチュートリアルでは、Easy Button テンプレートを備えたガイド付き構成 16.1 を使用します。 Easy Button を使用すると、管理者は Azure AD と BIG-IP の間を行き来して SHA のためにサービスを有効にする必要がなくなります。 デプロイとポリシー管理は、APM のガイド付き構成ウィザードと Microsoft Graph との間で処理されます。 この BIG-IP APM と Microsoft Entra ID の統合により、アプリケーションでは確実に ID フェデレーション、SSO、Microsoft Entra 条件付きアクセスをサポートできるため、管理オーバーヘッドが軽減されます。
Note
このガイドの文字列または値の例は、実際の環境のものに置き換えてください。
Easy Button を登録する
ヒント
この記事の手順は、開始するポータルに応じて若干異なる場合があります。
クライアントまたはサービスから Microsoft Graph にアクセスするには、Microsoft ID プラットフォームによって信頼される必要があります。
この最初の手順では、Graph への Easy Button アクセスを承認するために使用されるテナント アプリの登録を作成します。 これらのアクセス許可により、BIG-IP は、発行済みアプリケーションの SAML SP インスタンスと、SAML IdP となる Microsoft Entra ID の間に信頼を確立するための構成をプッシュできます。
クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
[ID]>[アプリケーション]>[アプリの登録]>[新しい登録] の順に移動します。
アプリケーションの表示名を入力します。 たとえば、F5 BIG-IP Easy Button です
アプリケーションを使用できるユーザー >[Accounts in this organizational directory only] (この組織ディレクトリのアカウントのみ) を指定します。
[登録] を選択します。
[API* のアクセス許可*] に移動し、次の Microsoft Graph* のアプリケーション*のアクセス許可*を承認します:
- Application.Read.All
- Application.ReadWrite.All
- Application.ReadWrite.OwnedBy
- Directory.Read.All
- Group.Read.All
- IdentityRiskyUser.Read.All
- Policy.Read.All
- Policy.ReadWrite.ApplicationConfiguration
- Policy.ReadWrite.ConditionalAccess
- User.Read.All
組織に管理者の同意を付与します。
[証明書とシークレット] で、新しいクライアント シークレットを生成します。 このシークレットを書き留めておきます。
[概要] でクライアント ID とテナント ID をメモします。
Easy Button を構成する
APM の [ガイド付き構成] を開始して、Easy Button テンプレートを起動します。
[アクセス] > [ガイド付き構成] > [Microsoft 統合] と移動して、[Microsoft Entra アプリケーション] を選択します。
手順のリストを確認し、[次へ] を選択します。
アプリケーションを公開するには、以下の手順に従います。
Configuration Properties
[構成のプロパティ] タブでは、BIG-IP アプリケーション構成と SSO オブジェクトが作成されます。 [Azure Service Account Details] (Azure サービス アカウントの詳細) セクションは、アプリケーションとして Microsoft Entra テナントに登録したクライアントを表します。 これらの設定により、BIG-IP の OAuth クライアントでは、手動で構成する SSO プロパティと共に、SAML SP をテナントに登録できるようになります。 Easy Button により、公開されて SHA が有効になっているすべての BIG-IP サービスに対してこのアクションが行われます。
これらの設定の一部はグローバルであるため、より多くのアプリケーションを公開するために再利用でき、デプロイの時間と労力を削減するのに役立ちます。
- 一意の構成名を入力して、管理者が各 Easy Button 構成を区別できるようにします。
- [シングル サインオン (SSO) と HTTP ヘッダー] を有効にします
- テナントに Easy Button クライアントを登録するときに記録したテナント ID、クライアント ID、クライアント シークレットを入力します。
- BIG-IP がテナントに接続されたことを確認します。
- [次へ] を選択します。
サービス プロバイダー
サービス* プロバイダー*設定*では、SHA によって保護されるアプリケーション*の SAML SP インスタンス*のプロパティを定義します。
[ホスト] に、セキュリティで保護されるアプリケーションのパブリック完全修飾ドメイン名 (FQDN) を入力します。
エンティティ ID (トークンを要求する SAML SP を識別するために Microsoft Entra ID が使用する識別子) を入力します。 オプションの [セキュリティ設定] を使用して、発行された SAML アサーションを Microsoft Entra ID で暗号化するかどうかを指定します。 Microsoft Entra ID と BIG-IP APM の間でアサーションを暗号化すると、コンテンツ トークンが傍受されないこと、および個人や会社のデータが侵害されないことの保証が提供されます。
[アサーション解読秘密キー] の一覧から、[新規作成] を選択します
[OK] を選択します。 新しいタブで [SSL 証明書とキーのインポート] ダイアログが開きます。
PKCS 12 (IIS) を選択して、証明書と秘密キーをインポートします。 プロビジョニングが完了したら、ブラウザー タブを閉じて、メイン タブに戻ります。
[Enable Encrypted Assertion](暗号化アサーションを有効にする) をオンにします。
暗号化を有効にした場合は、[アサーション解読の秘密キー] リストから証明書を選択します。 BIG-IP APM では、この証明書の秘密キーを使用して Microsoft Entra アサーションの暗号化を解除します。
暗号化を有効にした場合は、[アサーション解読の証明書] リストから証明書を選択します。 BIG-IP は、発行された SAML アサーションを暗号化するために、この証明書を Microsoft Entra ID にアップロードします。
Microsoft Entra ID
このセクションには、Microsoft Entra テナント内で新しい BIG-IP SAML アプリケーションを手動で構成するためのプロパティが含まれています。 Easy Button には、Oracle PeopleSoft、Oracle E-business Suite、Oracle JD Edwards、SAP ERP 用のアプリケーション テンプレートと、その他のアプリ用の SHA テンプレートが用意されています。
このシナリオでは、[F5 BIG-IP APM Microsoft Entra ID 統合] > [追加] を選びます。
Azure 構成
BIG-IP によって Microsoft Entra テナント内に作成されるアプリと、MyApps ポータルでユーザーに表示されるアイコンの表示名を入力します。
[サインオン URL] (省略可能) には何も入力しません。
先ほどインポートした証明書を見つけるには、[署名キー] と [署名証明書] の横にある更新アイコンを選択します。
[署名キーのパスフレーズ] に証明書のパスワードを入力します。
[署名オプション] (省略可能) を有効にして、BIG-IP が、Microsoft Entra ID によって署名されたトークンと要求を受け入れるようにします。
ユーザーとユーザー グループは、Microsoft Entra テナントから動的に照会され、アプリケーションへのアクセスを承認します。 テストに使用するユーザーまたはグループを追加します。そうしないと、アクセスが拒否されます。
ユーザー属性とクレーム
ユーザーが認証されると、Microsoft Entra ID は、ユーザーを一意に識別する要求と属性の既定のセットを使用して SAML トークンを発行します。 [ユーザー属性と要求] タブには、新しいアプリケーションのために発行する既定の要求が表示されます。 また、さらに多くの要求を構成することもできます。
この例では、属性をもう 1 つ含めます。
[要求名] に「employeeid」と入力します。
[ソース属性] に「user.employeeid」と入力します。
追加のユーザー属性
[追加のユーザー属性] タブでは、Oracle、SAP、および他のディレクトリに格納された属性を必要とする他の JAVA ベースの実装など、分散システムに必要なセッション拡張を有効にすることができます。 LDAP ソースからフェッチされた属性は、ロール、パートナー ID などに基づいてアクセスを制御するための追加の SSO ヘッダーとして挿入することができます。
[詳細設定] オプションを有効にします。
[LDAP 属性] チェック ボックスをオンにします。
[認証サーバーの選択] で [新規作成] を選択します。
実際の設定に応じて、[Use pool](プールを使用) または [Direct](直接) サーバー接続モードのいずれかを選択して、ターゲット LDAP サービスのサーバー アドレスを指定します。 単一の LDAP サーバーを使用する場合は、[Direct](直接) を選択します。
[サービス ポート] に、389、636 (セキュア)、または LDAP サービスが使用するその他のポートを入力します。
[基本検索 DN] に、LDAP サービス クエリに対して APM が認証を行うアカウントが含まれている場所の正確な識別名を入力します。
[Search DN] (検索 DN) に、APM が LDAP を介して照会するユーザー アカウント オブジェクトが含まれている場所の識別名を設定します。
両方のメンバーシップ オプションを [なし] に設定し、LDAP ディレクトリから返されるユーザー オブジェクト属性の名前を追加します。 このシナリオの場合: eventroles。
条件付きアクセス ポリシー
条件付きアクセス ポリシーは、デバイス、アプリケーション、場所、リスクの兆候に基づいてアクセスを制御するために、Microsoft Entra の事前認証後に適用されます。
[使用可能なポリシー] ビューには、ユーザー アクションを含まない条件付きアクセス ポリシーが一覧表示されます。
選択されたポリシー ビューには、すべてのリソースを対象とするポリシーが表示されます。 これらのポリシーは、テナント レベルで適用されるため、選択解除することも、[使用可能なポリシー] リストに移動することもできません。
公開されているアプリケーションに適用するポリシーを選択するには:
[使用可能なポリシー] リストでポリシーを選択します。
右矢印を選択して、これを [Selected Policies](選択されたポリシー) リストに移動します。
Note
選択したポリシーでは、[含める] または [除外する] オプションにチェックを入れます。 両方のオプションをオンにした場合、選択したポリシーは適用されません。
Note
このタブを最初に選択すると、ポリシー リストが 1 回列挙されます。[更新] ボタンを使用して、ウィザードでテナントに対してクエリを実行するように手動で強制します。 このボタンは、アプリケーションをデプロイすると表示されます。
仮想サーバーのプロパティ
仮想サーバーは BIG-IP データ プレーン オブジェクトであり、アプリケーションに対するクライアント要求をリッスンする仮想 IP アドレスで表されます。 受信したトラフィックは、ポリシーに従って送信される前に、仮想サーバーに関連付けられている APM プロファイルに対して処理および評価されます。
[宛先アドレス] を入力します。これは、クライアント トラフィックを受信するために BIG-IP で使用できる IPv4 または IPv6 アドレスです。 対応するレコードがドメイン ネーム サーバー (DNS) に存在する必要があります。これにより、クライアントは、BIG-IP 公開アプリケーションの外部 URL を、アプリケーションではなくこの IP に解決できるようになります。 テストでは、テスト PC の localhost DNS を使用しても問題ありません。
[サービス ポート] に、「443」と「HTTPS」を入力します。
[リダイレクト ポートを有効にする] をオンにし、[リダイレクト ポート] に入力して、受信 HTTP クライアント トラフィックを HTTPS にリダイレクトします。
[クライアント SSL プロファイル] では、クライアント接続がトランスポート層セキュリティ (TLS) 経由で暗号化されるように、HTTPS 用の仮想サーバーを有効にします。 作成してあるクライアント SSL プロファイルを選択するか、テスト中は既定値のままにします。
プールのプロパティ
[アプリケーション プール] タブには、1 つ以上のアプリケーション サーバーを含むプールとして表される、BIG-IP の背後にあるサービスが表示されます。
[Select a Pool](プールの選択) から選択します。 新しいプールを作成するか、既存のプールを選択します。
[負荷分散方法] で、[ラウンド ロビン] などを選択します。
[プール サーバー] では、ノードを選択するか、ヘッダーベースのアプリケーションをホストするサーバーの IP とポートを指定します。
Note
バックエンド アプリケーションは HTTP ポート 80 に設定されます。 HTTPS の場合は、443 に切り替えます。
シングル サインオンと HTTP ヘッダー
SSO を有効にすると、ユーザーは資格情報を入力しなくても、BIG-IP で公開されているサービスにアクセスできるようになります。 Easy Button ウィザードでは、SSO 用に Kerberos、OAuth Bearer、HTTP 承認ヘッダーがサポートされています。
次の一覧を使ってオプションを構成します。
[Header Operation](ヘッダー操作): [Insert](挿入)
[Header Name](ヘッダー名): upn
[Header Value](ヘッダーの値): %{session.saml.last.identity}
[Header Operation](ヘッダー操作): [Insert](挿入)
[Header Name](ヘッダー名): employeeid
[Header Value](ヘッダーの値): %{session.saml.last.attr.name.employeeid}
[Header Operation](ヘッダー操作): [Insert](挿入)
[Header Name](ヘッダー名): eventroles
: %{session.ldap.last.attr.eventroles}
Note
中かっこ内の APM セッション変数では、大文字と小文字が区別されます。 たとえば、Microsoft Entra 属性名が orclguid である場合に、「OrclGUID」と入力すると、属性マッピング エラーが発生します。
セッション管理設定
BIG-IP のセッション管理設定では、ユーザー セッションが終了されるか続行が許可される条件、ユーザーと IP アドレスの制限、および対応するユーザー情報を定義します。 これらの設定の詳細については、F5 の記事「K18390492: セキュリティ | BIG-IP APM 操作ガイド」を参照してください。
IdP、BIG-IP、ユーザー エージェント間のセッションがユーザーのサインアウト時に終了するようにする、シングル ログアウト (SLO) 機能は、対象となりません。Easy Button によって Microsoft Entra テナントに SAML アプリケーションがインスタンス化されると、サインアウト URL に APM SLO エンドポイントが設定されます。 Microsoft Entra のマイ アプリ ポータルからの IdP によって開始されるサインアウトでも、BIG-IP とクライアント間のセッションが終了します。
テナントから公開済みアプリケーションの SAML フェデレーション メタデータがインポートされて、APM に Microsoft Entra ID の SAML サインアウト エンドポイントが提供されます。 このアクションにより、SP によって開始されるサインアウトによって、クライアントと Microsoft Entra ID の間のセッションが終了します。 APM は、ユーザーがアプリケーションからサインアウトするタイミングを把握する必要があります。
BIG-IP Web トップ ポータルを使って公開アプリケーションにアクセスする場合、APM はサインアウトを処理して Microsoft Entra サインアウト エンドポイントを呼び出します。 しかし、BIG-IP Web トップ ポータルが使用されないシナリオについて考えてみましょう。 ユーザーは、サインアウトするように APM に指示できません。ユーザーがアプリケーションからサインアウトした場合でも、BIG-IP は認識しません。 そのため、SP によって開始されるサインアウトでは、セッションを安全に終了するよう配慮してください。 SLO 関数をアプリケーションの [サインアウト] ボタンに追加すると、クライアントを Microsoft Entra SAML または BIG-IP サインアウト エンドポイントにリダイレクトできます。 テナントの SAML サインアウト エンドポイントの URL については、[アプリの登録] > [エンドポイント] にあります。
アプリに変更を加えることができない場合は、BIG-IP でアプリケーションのサインアウト呼び出しをリッスンし、要求を検出したら SLO をトリガーすることを検討してください。 BIG-IP iRules の詳細については、Oracle PeopleSoft SLO ガイダンスを参照してください。 BIG-IP iRules の使用に関する詳細については、次を参照してください。
まとめ
この最後の手順では、構成の概要を示します。
[デプロイ] を選択して設定をコミットし、エンタープライズ アプリケーションのテナント リストにアプリケーションが存在することを確認します。
アプリケーションが公開され、URL または Microsoft アプリケーション ポータルを通じて SHA によりアクセスできます。 セキュリティを強化するために、このパターンを使う組織は、アプリケーションへの直接アクセスをブロックできます。 このアクションにより、BIG-IP を経由する厳密なパスが強制されます。
次のステップ
ブラウザーから、Microsoft MyApps ポータルで、アプリケーションの外部 URL に接続するか、アプリケーションのアイコンを選択します。 Microsoft Entra ID に対して認証を行った後、アプリケーションの BIG-IP の仮想サーバーにリダイレクトされ、SSO を通じてサインイン処理が行われます。
ヘッダーベースのアプリケーションに挿入されたヘッダーの出力については、次のスクリーンショットを参照してください。
セキュリティを強化するために、このパターンを使う組織は、アプリケーションへの直接アクセスをブロックできます。 このアクションにより、BIG-IP を経由する厳密なパスが強制されます。
詳細なデプロイ
ガイド付き構成テンプレートでは、特定の要件を達成するための柔軟性が欠けている可能性があります。
BIG-IP では、ガイド付き構成の厳格な管理モードを無効にできます。 その後、構成を手動で変更できますが、構成の大部分はウィザードベースのテンプレートを使用して自動化されます。
アプリケーションの構成については、[アクセス] > [ガイド付き構成] の順に移動して、行の右端にある小さな南京錠アイコンを選択します。
この時点で、ウィザード UI を介した変更を行うことができなくなります。ただし、アプリケーションの公開されたインスタンスに関連付けられているすべての BIG-IP オブジェクトのロックが解除され、直接管理できるようになります。
Note
厳格モードを再度有効にして構成をデプロイすると、ガイド付き構成 UI の外部で実行されたすべての設定が上書きされます。 運用サービスに対しては詳細構成の方式をお勧めします。
トラブルシューティング
BIG-IP ログ
BIG-IP のログは、接続、SSO、ポリシー違反、正しく構成されていない変数マッピングなどの問題を区別するのに役立つ可能性があります。
トラブルシューティングを行うために、ログの詳細レベルを上げることができます。
- [Access Policy] (アクセス ポリシー) > [Overview] (概要) > [Event Logs] (イベント ログ) > [Settings] (設定) に移動します。
- 公開されたアプリケーションの行を選択し、[Edit] (編集) > [Access System Logs] (システム ログへのアクセス) を選択します。
- SSO のリストから [デバッグ] を選択して、[OK] を選択します。
問題を再現し、ログを調べたら、終了時にこの設定を元に戻してください。 詳細モードでは、大量のデータが生成されます。
BIG-IP エラー ページ
Microsoft Entra の事前認証後に BIG-IP のエラーが表示される場合は、この問題が Microsoft Entra ID から BIG-IP への SSO に関連している可能性があります。
- [Access] (アクセス) > [Overview] (概要) > [Access reports] (レポートへのアクセス) に移動します。
- 過去 1 時間のレポートを実行して、ログに手がかりがないかどうかを確認します。
- セッションに対する [セッションの表示] リンクを使用して、APM が Microsoft Entra ID から予想される要求を受信しているかどうかを把握します。
バックエンド要求
エラー ページが表示されない場合は、問題は、バックエンド要求や、BIG-IP からアプリケーションへの SSO に関係していることが考えられます。
- [アクセス ポリシー] > [概要] > [アクティブ セッション] に移動し、アクティブ セッションのリンクを選択します。
- BIG-IP APM で Microsoft Entra ID または別のソースから適切な属性を取得できない場合は特に、根本的な問題を特定するために [変数の表示] リンクを使用します。
APM サービス アカウントを検証する
LDAP クエリの APM サービス アカウントを検証するには、BIG-IP bash シェルから次のコマンドを使います。 ユーザー オブジェクトの認証とクエリを確認します。
ldapsearch -xLLL -H 'ldap://192.168.0.58' -b "CN=partners,dc=contoso,dc=lds" -s sub -D "CN=f5-apm,CN=partners,DC=contoso,DC=lds" -w 'P@55w0rd!' "(cn=testuser)"
詳細については、F5 の記事「K11072: Active Directory の LDAP リモート認証の構成」を参照してください。 BIG-IP 参照テーブルを使用して、AskF5 ドキュメントの LDAP 関連の問題 (LDAP クエリ) を診断することもできます。