チュートリアル: ヘッダーベース SSO 用に F5 BIG-IP Easy Button を構成する

ヘッダーベースのアプリケーションを、Microsoft Entra ID と F5 BIG-IP Easy Button ガイド付き構成 16.1 でセキュリティで保護する方法について説明します。

BIG-IP と Microsoft Entra ID の統合には、以下のように数多くの利点があります。

詳細情報:

シナリオの説明

このシナリオでは、保護されたコンテンツへのアクセスを管理するために HTTP Authorization ヘッダーを使用するレガシ アプリケーションを対象にしています。 レガシ アプリケーションは、Microsoft Entra ID との直接統合をサポートする最新のプロトコルに対応していません。 モダン化にはコストも時間もかかり、ダウンタイムのリスクが生じます。 代わりに、プロトコルの切り換えと共に、F5 BIG IP Application Delivery Controller (ADC) を使用して、レガシ アプリケーションと最新の ID コントロール プレーンとの間のギャップを埋めます。

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

Note

Microsoft Entra アプリケーション プロキシを組織で使用すると、この種のアプリケーションへのリモート アクセスを実現できます。 詳細情報: Microsoft Entra アプリケーション プロキシからのオンプレミス アプリケーションへのリモート アクセス

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

SHA ソリューションには次のものが含まれます。

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

このシナリオの場合、SHA では、SP と IdP によって開始される各フローがサポートされます。 次の図は、SP によって開始されるフローを示しています。

SP によって開始されるフローを使用した構成の図。

  1. ユーザーがアプリケーション エンドポイント (BIG-IP) に接続します。
  2. BIG-IP APM アクセス ポリシーにより、ユーザーが Microsoft Entra ID (SAML IdP) にリダイレクトされます。
  3. Microsoft Entra がユーザーを事前認証し、条件付きアクセスのポリシーを適用します。
  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 Web 証明書。または、テストの場合には既定の BIG-IP 証明書を使用します
  • ヘッダーベースのアプリケーション。または、テストの場合には IIS ヘッダー アプリを設定します

BIG-IP の構成

このチュートリアルでは、Easy Button テンプレートを備えた Guided Configuration v16.1 を使用します。 Easy Button を使用すると、管理者は SHA サービスを有効にするために行き来する必要がなくなります。 [Guided Configuration] (ガイド付き構成) ウィザードと Microsoft Graph でデプロイとポリシー管理を処理します。 BIG-IP APM と Microsoft Entra を統合すると、ID フェデレーション、SSO、条件付きアクセスをアプリケーションで確実にサポートできます。

Note

サンプルの文字列や値は、お使いの環境のものに置き換えてください。

Easy Button を登録する

ヒント

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

クライアントまたはサービスは、Microsoft Graph にアクセスする前に、Microsoft ID プラットフォームによって信頼される必要があります。

クイックスタート: Microsoft ID プラットフォームにアプリケーションを登録する」を参照してください。

Graph への Easy Button アクセスを認可するために、テナント アプリの登録を作成します。 BIG-IP はこの権限を使って、発行済みアプリケーションの SAML SP インスタンスと SAML IdP である Microsoft Entra ID の間に信頼を確立するための構成をプッシュします。

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

  2. [ID]>[アプリケーション]>[アプリの登録]>[新しい登録] の順に移動します。

  3. [管理] で、[アプリの登録] > [新規登録] を選びます。

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

  5. アプリケーションを使用するユーザーを指定します。

  6. [この組織のディレクトリ内のアカウントのみ] を選択します。

  7. [登録] を選択します。

  8. [API permissions] (API のアクセス許可) に移動します。

  9. 次の 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
  10. 組織に管理者の同意を付与します。

  11. [証明書とシークレット] で、新しいクライアント シークレットを生成します。 クライアント シークレットをメモします。

  12. [概要] で、クライアント ID とテナント ID をメモします。

Easy Button を構成する

  1. APM Guided Configuration を開始します。

  2. Easy Button テンプレートを開始します。

  3. [Access] (アクセス) > [Guided Configuration] (ガイド付き構成) に移動します。

  4. [Microsoft Integration] (Microsoft 統合) を選びます

  5. [Microsoft Entra アプリケーション] を選択します。

  6. 構成の手順を確認します。

  7. [次へ] を選択します。

  8. アプリケーションを発行するには、図に示されている手順の順序を使用します。

    発行の順序の図。

Configuration Properties

[Configuration Properties] (構成のプロパティ) タブを使用して、BIG-IP アプリケーション構成と SSO オブジェクトを作成します。 [Azure Service Account Details] (Azure サービス アカウントの詳細) は、Microsoft Entra テナントに登録したクライアントの構成です。 BIG-IP OAuth クライアントの設定を使用して、SSO プロパティと共に SAML SP をテナントに登録します。 Easy Button により、発行されて SHA が有効になっている BIG-IP サービスに対してこのアクションが実行されます。

設定を再利用して、さらにアプリケーションを発行できます。

  1. 構成名を入力します。

  2. [シングル サインオン (SSO) と HTTP ヘッダー] で、[オン] を選びます。

  3. [Tenant ID] (テナント ID), [Client ID] (クライアント ID)[Client Secret] (クライアント シークレット) に、メモした内容を入力します。

  4. BIG-IP がテナントに接続されたことを確認します。

  5. [次へ] を選択します

    [Configuration Properties] (構成のプロパティ) のエントリとオプションのスクリーンショット。

サービス プロバイダー

Service Provider](サービス プロバイダー) の設定では、SHA で保護されたアプリケーションの SAML SP インスタンス設定を定義します。

  1. ホスト (アプリケーションパブリック FQDN) を入力します。

  2. エンティティ ID (トークンを要求した SAML SP を特定するために Microsoft Entra ID が使用する ID) を入力します。

    [Service Provider](サービス プロバイダー) の入力フィールドのスクリーンショット。

  3. (省略可能) 発行された SAML アサーションを Microsoft Entra で暗号化するには、[Security Settings] (セキュリティの設定) で、[Enable Encryption Assertion] (暗号化アサーションを有効にする) を選択します。 Microsoft Entra ID と BIG-IP APM の暗号化アサーションは、コンテンツ トークンの傍受や個人または企業のデータ侵害を確実に防止するために役立ちます。

  4. [Security Settings] (セキュリティの設定) で、[Assertion Decryption Private Key] (アサーション解読の秘密キー) の一覧から、[Create New] (新規作成) を選びます。

    [Assertion Decryption Private Key] (アサーション解読の秘密キー) の一覧にある [Create New] (新規作成) オプションのスクリーンショット。

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

  6. [SSL 証明書とキーのインポート] ダイアログが表示されます。

  7. [Import Type] (インポートの種類) で、[PKCS 12 (IIS)] を選びます。 この操作により、証明書と秘密キーがインポートされます。

  8. [Certificate and Key Name] (証明書とキー名)[New] (新規) を選び、入力します。

  9. パスワードを入力します。

  10. [インポート] を選択します。

  11. ブラウザー タブを閉じて、メイン タブに戻ります。

SSL 証明書キー ソースの選択とエントリのスクリーンショット。

  1. [Enable Encrypted Assertion] (暗号化されたアサーションを有効にする) チェック ボックスをオンにします。
  2. 暗号化を有効にした場合は、[Assertion Decryption Private Key] (アサーション解読の秘密キー) の一覧から証明書を選びます。 BIG-IP APM では、この証明書の秘密キーを使用して Microsoft Entra アサーションの暗号化を解除します。
  3. 暗号化を有効にした場合は、[Assertion Decryption Certificate] (アサーション解読の証明書) の一覧から証明書を選びます。 BIG-IP は、発行された SAML アサーションを暗号化するために、この証明書を Microsoft Entra ID にアップロードします。

[Security Settings] (セキュリティの設定) の 2 つのエントリと 1 つのオプションのスクリーンショット。

Microsoft Entra ID

Microsoft Entra テナントで新しい BIG-IP SAML アプリケーションを構成するには、以下の手順を実行します。 Easy Button には、Oracle PeopleSoft、Oracle E-business Suite、Oracle JD Edwards、SAP ERP 用のアプリケーション テンプレートと、汎用の SHA テンプレートが用意されています。

  1. [Azure の構成][構成プロパティ] で、[F5 BIG-IP APM Microsoft Entra ID 統合] を選びます。
  2. [追加] を選択します。

Azure 構成

  1. BIG-IP で Microsoft Entra テナント内に作成するアプリの表示名を入力します。 ユーザーには、この名前がアイコンと共に Microsoft [マイ アプリ] 上に表示されます。

  2. [Sign On URL] (サインオン URL) (省略可能) は、スキップします。

  3. [Signing Key] (署名キー)[Signing Certificate] (署名証明書) の横にある更新ボタンを押して、インポートした証明書を検索します。

  4. [署名キーのパスフレーズ] に証明書のパスワードを入力します。

  5. (省略可能) Microsoft Entra ID による署名付きのトークンや要求を BIG-IP で受け付けるには、[署名オプション] をオンにします。

    [Azure Configuration]\(Azure の構成\) のスクリーンショット - 署名証明書情報を追加する

  6. [User And User Groups] (ユーザーとユーザー グループ) の入力は動的に照会されます。

    重要

    テストに使うユーザーまたはグループを追加します。そうしないと、すべてのアクセスは拒否されます。 [User And User Groups] (ユーザーとユーザー グループ) で、[+ Add] (+ 追加) を選びます。

    [User And User Groups] (ユーザーとユーザー グループ) の [Add] (追加) オプションのスクリーンショット。

ユーザー属性とクレーム

ユーザーの認証が実行されると、Microsoft Entra ID は、要求とユーザー識別用の属性を含んだ SAML トークンを発行します。 [User Attributes & Claims] (ユーザー属性とクレーム) タブには、アプリケーションの既定のクレームがあります。 さらにクレームを構成するには、このタブを使用します。

次のようにして、もう 1 つの属性を含めます。

  1. ヘッダー名として「employeeid」と入力します。

  2. ソース属性として「user.employeeid」と入力します。

    [Additional Claims] (追加のクレーム) の値のスクリーンショット。

追加のユーザー属性

[Additional User Attributes] (追加のユーザー属性) タブでは、セッションの拡張を有効にします。 この機能は、Oracle、SAP、他のディレクトリに属性を格納する必要がある他の JAVA 実装などの分散システムに使用します。 ライトウェイト ディレクトリ アクセス プロトコル (LDAP) ソースからフェッチされた属性は、追加の SSO ヘッダーとして挿入されます。 このアクションは、ロール、パートナー ID などに基づいてアクセスを制御するのに役立ちます。

Note

この機能には、Microsoft Entra ID との関連性はありません。 これは属性ソースです。 

条件付きアクセス ポリシー

条件付きアクセスのポリシーは、デバイス、アプリケーション、場所、リスクの兆候に基づいてアクセスを制御します。

  • [Available Policies] (使用可能なポリシー) では、ユーザー アクションのない条件付きアクセス ポリシーが検索されます
  • [Selected Policies] (選択されたポリシー) では、クラウド アプリ ポリシーが検索されます
    • これらのポリシーは、テナント レベルで適用されるため、選択解除することも、[Available Policies] (使用可能なポリシー) に移動することもできません

公開されているアプリケーションに適用するポリシーを選択するには:

  1. [Conditional Access Policy] (条件付きアクセス ポリシー) タブの [Available Policies] (使用可能なポリシー) の一覧で、ポリシーを選びます。
  2. 右矢印を選択して、これを [選択されたポリシー] リストに移動します。

注意

ポリシーに対して [Include] (含める) または [Exclude] (除外する) オプションを選ぶことができます。 両方のオプションが選択されている場合、ポリシーは強制されません。

[Selected Policies] (選択されたポリシー) でポリシーに対して [Exclude] (除外する) オプションが選択されているスクリーンショット。

注意

[Conditional Access Policy] (条件付きアクセス ポリシー) タブを選ぶと、ポリシーの一覧が表示されます。更新を選ぶと、ウィザードによってテナントが照会されます。 アプリケーションがデプロイされると、更新内容が表示されます。

仮想サーバーのプロパティ

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

  1. [宛先アドレス] に、BIG-IP でクライアント トラフィックの受信に使う IPv4 または IPv6 アドレスを入力します。 クライアントが BIG-IP 公開アプリケーションの外部 URL をこの IP に解決できるようにする、ドメイン ネーム サーバー (DNS) 内の対応するレコードを確認します。 テストの場合には、コンピューターの localhost DNS を使用できます。

  2. [Service Port] (サービス ポート) には「443」と入力し、[HTTPS] を選びます。

  3. [Enable Redirect Port] (リダイレクト ポートを有効にする) チェック ボックスをオンにします。

  4. [Enable Redirect] (リダイレクト ポート) に値を入力します。 このオプションにより、受信 HTTP クライアント トラフィックが HTTPS にリダイレクトされます。

  5. 作成したクライアント SSL プロファイルを選びます。または、テストの場合には既定値のままにします。 [クライアント SSL プロファイル] では、クライアント接続が TLS で暗号化されるように、HTTPS 用の仮想サーバーを有効にできます。

    [Virtual Server Properties] (仮想サーバーのプロパティ) の宛先アドレス、サービス ポート、選択済みプロファイルのスクリーンショット。

プールのプロパティ

[Application Pool] (アプリケーション プール) タブには、プールとして表される、BIG-IP の背後にあるサービスを設定します。これには、1 つ以上のアプリケーション サーバーが含まれます。

  1. [Select a Pool] (プールの選択) で、[Create New] (新規作成) を選ぶか、別のものを選びます。

  2. [Load Balancing Method] (負荷分散方法) では、[Round Robin] (ラウンド ロビン) を選びます。

  3. [Pool Servers] (プール サーバー) では、ノードを選ぶか、ヘッダーベースのアプリケーションをホストするサーバーの IP アドレスおよびポートを選びます。

    [Pool Properties] (プールのプロパティ) での IP アドレスまたはノード名、およびポートの入力のスクリーンショット。

    注意

    Microsoft バックエンド アプリケーションは HTTP ポート 80 にあります。 [HTTPS] を選んだ場合は、443 を使用してください。

シングル サインオンと HTTP ヘッダー

SSO を使用すると、ユーザーは資格情報を入力することなく、BIG-IP で発行済みのサービスにアクセスします。 Easy Button ウィザードでは、SSO 用に Kerberos、OAuth Bearer、HTTP 承認ヘッダーがサポートされています。

  1. [シングル サインオンと HTTP ヘッダー][SSO ヘッダー] にある [ヘッダー操作] で、[挿入] を選びます

  2. ヘッダー名upn を使用します。

  3. ヘッダーの値%{session.saml.last.identity} を使用します。

  4. [Header Operation] (ヘッダー操作) で、[insert] (挿入) を選びます。

  5. ヘッダー名employeeid を使用します。

  6. [ヘッダー値] には、%{session.saml.last.attr.name.employeeid} を使います。

    SSO ヘッダーのエントリと選択のスクリーンショット。

    Note

    中かっこ内の APM セッション変数では、大文字と小文字が区別されます。 不整合があると、属性マッピングが失敗します。

セッションの管理

BIG-IP セッション管理設定を使用して、ユーザー セッションの終了または継続の条件を定義します。

詳細については、support.f5.com にアクセスして、「K18390492: セキュリティ | BIG-IP APM 操作ガイド」を参照してください

シングル ログアウト (SLO) を使用すると、ユーザーがサインアウトしたときに IdP、BIG-IP、ユーザー エージェントの各種セッションを終了できます。Easy Button によって Microsoft Entra テナント内の SAML アプリケーションがインスタンス化されると、サインアウト URL に APM SLO エンドポイントが設定されます。 マイ アプリからの IdP によって開始されたサインアウトにより、BIG-IP とクライアントのセッションが終了します。

詳細情報: [マイ アプリ] を確認してください

発行済みアプリケーションの SAML フェデレーション メタデータがテナントからインポートされます。 Microsoft Entra ID の SAML サインアウト エンドポイントは、このインポートによって APM に伝えられます。 これにより、SP によってサインアウトが開始されたときにクライアントと Microsoft Entra のセッションを確実に終了できます。 ユーザーのサインアウトが発生した場合に 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 をトリガーできるようにします。

詳細情報:

デプロイ

デプロイでは、構成の概要を提供します。

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

テスト

  1. ブラウザーでアプリケーションの外部 URL に接続するか、[マイ アプリ] でアプリケーションのアイコンを選びます。
  2. Microsoft Entra ID に対して認証を行います。
  3. アプリケーションの BIG-IP 仮想サーバーにリダイレクトされ、SSO でサインインします。

次のスクリーンショットでは、ヘッダー ベースのアプリケーションからのヘッダー出力が挿入されています。

[Server Variables] (サーバー変数) の下の UPN、従業員 ID、イベントのロールのスクリーンショット。

注意

アプリケーションへの直接アクセスをブロックできます。これにより BIG-IP を介したパスが強制されます。

詳細なデプロイ

一部のシナリオでは、Guided Configuration テンプレートは柔軟性が不足します。

詳細情報: チュートリアル: ヘッダーベースの SSO 用に F5 BIG-IP Access Policy Manager を構成する

BIG-IP では、ガイド付き構成の厳格な管理モードを無効にできます。 その後、構成を手動で変更しますが、ほとんどの構成はウィザード テンプレートを使用して自動化されます。

  1. 厳格モードを無効にするには、[Access] (アクセス) > [Guided Configuration] (ガイド付き構成) に移動します。

  2. アプリケーション構成の行で、南京錠アイコンを選びます。

  3. アプリケーションの発行済みインスタンスに関連する BIG-IP オブジェクトは、管理のためにロック解除されます。 ウィザードでの変更はできなくなります。

    南京錠アイコンのスクリーンショット。

    注意

    厳格モードを再度有効にして構成をデプロイすると、このアクションによって、ガイド付き構成に含まれていない設定が上書きされます。 運用サービスには高度な構成をお勧めします。

トラブルシューティング

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

ログの詳細

BIG-IP のログは、接続、SSO、ポリシー、正しく構成されていない変数マッピングなどに関する問題の切り分けに役立ちます。 トラブルシューティングを行うには、ログの詳細を増やします。

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

注意

完了したら、この機能を元に戻してください。 詳細モードでは、データが過剰に生成されます。

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

Microsoft Entra の事前認証後に BIG-IP のエラー メッセージが表示される場合は、Microsoft Entra ID から BIG-IP への SSO に関する問題が発生している可能性があります。

  1. [Access Policy] (アクセス ポリシー) > [Overview] (概要) に移動します。
  2. [Access reports] (レポートへのアクセス) を選びます。
  3. 直近 1 時間のレポートを実行します。
  4. ログに手がかりがないか確認します。

期待どおりの Microsoft Entra 要求を APM が受信しているか確認するには、セッションの [View Session Variables] (セッション変数の表示) リンクが役立ちます。

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

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

  1. [Access Policy] (アクセス ポリシー) > [Overview] (概要) に移動します。
  2. [Active Sessions] (アクティブなセッション) を選びます。
  3. アクティブなセッション リンクを選びます。

変数の表示リンクを使用すると、特に BIG-IP APM で正しい属性が取得されない場合の SSO の問題を特定できます。

詳細情報: