次の方法で共有


チュートリアル: F5 BIG-IP Access Policy Manager の Kerberos 認証を構成する

このチュートリアルでは、F5 BIG-IP の高度な構成を使用して、Kerberos アプリケーションへのシングル サインオン (SSO) によるセキュア ハイブリッド アクセス (SHA) を実装する方法について説明します。 Microsoft Entra SSO に対して BIG-IP の公開済みサービスを有効にすると、以下のような多くの利点があります。

  • Microsoft Entra 事前認証と条件付きアクセス セキュリティ ポリシー適用ソリューションの使用により、ゼロ トラスト ガバナンスが改善されました。
  • Microsoft Entra ID と BIG-IP の公開済みサービス間の完全な SSO
  • 単一のコントロール プレーンである Microsoft Entra 管理センター からの ID管理 とアクセス

メリットの詳細については、「F5 BIG-IP と Microsoft Entra ID の統合」を参照してください。

シナリオの説明

このシナリオでは、重要な基幹業務アプリケーションに対し、"統合 Windows 認証" としても知られる "Kerberos 認証" を使用するための構成を行います。

Microsoft Entra ID にアプリケーションを統合するには、Security Assertion Markup Language (SAML) など、フェデレーションベースのプロトコルからのサポートが必要になります。 しかし、アプリケーションの最新化にはダウンタイムのリスクが伴うことから、他の選択肢もあります。

Kerberos の制約付き委任 (KCD) による SSO を使用しながら、Microsoft Entra アプリケーション プロキシを使用してリモートからアプリケーションにアクセスできます。 レガシ アプリケーションを最新の ID コントロール プレーンに連携するプロトコル移行を実現できます。

また、F5 BIG-IP Application Delivery Controller を使用する方法もあります。 この方法により Microsoft Entra の事前認証や KCD SSO でアプリケーションをオーバーレイできます。 これにより、アプリケーションの全体的なゼロ トラスト体制が向上します。

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

このシナリオの SHA ソリューションには、次の要素があります。

  • アプリケーション: バックエンドの Kerberos ベースのサービス。BIG-IP によって外部に公開され、SHA によって保護されます

  • BIG-IP: バックエンド アプリケーションを公開するためのリバース プロキシ機能。 公開されたアプリケーションは、Access Policy Manager (APM) によって SAML サービス プロバイダー (SP) と SSO 機能でオーバーレイされます。

  • Microsoft Entra ID: ID プロバイダー (IdP)。ユーザーの資格情報の検証や、Microsoft Entra 条件付きアクセス、さらに BIG-IP APM に対する SAML での SSO を担います

  • KDC: Kerberos チケットを発行するドメイン コントローラー (DC) のキー配布センター ロール

次の画像は、SAML SP を起点としたこのシナリオのフローを表していますが、IdP を起点としたフローもサポートされます。

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

ユーザー フロー

  1. ユーザーがアプリケーション エンドポイント (BIG-IP) に接続する
  2. BIG-IP アクセス ポリシーにより、ユーザーが Microsoft Entra ID (SAML IdP) にリダイレクトされます
  3. Microsoft Entra ID は、ユーザーを事前認証し、強制的な条件付きアクセス ポリシーを適用します
  4. ユーザーが BIG-IP (SAML SP) にリダイレクトされ、発行された SAML トークンを使用して SSO が実行される
  5. BIG-IP がユーザーを認証し、KDC に Kerberos チケットを要求する
  6. BIG-IP がバックエンド アプリケーションに対し SSO 用の Kerberos チケットとともに要求を送信する
  7. アプリケーションが要求を承認し、ペイロードを返す

前提条件

以前の BIG-IP エクスペリエンスは必要ありません。 必要なもの:

  • Azure の無料アカウント、またはより上位のサブスクリプション。
  • BIG-IP、または Azure に BIG-IP Virtual Edition をデプロイします
  • 次のいずれかの F5 BIG-IP ライセンス:
    • F5 BIG-IP Best バンドル
    • F5 BIG-IP APM スタンドアロン ライセンス
    • BIG-IP Local Traffic Manager (LTM) に対する F5 BIG-IP APM アドオン ライセンス
    • 90 日間の BIG-IP 無料試用版ライセンス
  • オンプレミスのディレクトリから Microsoft Entra ID に同期されたユーザー ID、または Microsoft Entra ID 内で作成されてオンプレミスのディレクトリに戻されたユーザー ID。
  • Microsoft Entra テナントの次のいずれかのロール: クラウド アプリケーション管理者、アプリケーション管理者。
  • HTTPS でサービスを公開するための Web サーバー証明書。またはテスト時に既定の BIG-IP 証明書を使用します。
  • Kerberos アプリケーション。または active-directory-wp.com にアクセスして Windows 上で IIS を使用した SSO を構成する方法をご確認ください。

BIG-IP の構成方法

この記事では、BIG-IP 構成オブジェクトを作成する柔軟な SHA 実装である高度な構成について説明します。 この方法は、ガイド付き構成テンプレートが対応できないシナリオにも使用できます。

Note

この記事のすべての文字列または値の例は、実際の環境の文字列または値に置き換える必要があります。

Microsoft Entra ID に F5 BIG-IP を登録する

ヒント

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

BIG-IP から Microsoft Entra ID に事前認証を引き継ぐ前に、お使いのテナントにそれを登録します。 このプロセスにより、両方のエンティティ間で SSO が開始されます。 F5 BIG-IP ギャラリー テンプレートから作成するアプリが証明書利用者であり、BIG-IP によって公開されるアプリケーションの SAML SP を表します。

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

  2. ID>アプリケーション>エンタープライズ アプリケーション>すべてのアプリケーション に移動し、新しいアプリケーション を選択します。

  3. [Microsoft Entra ギャラリーの参照] ペインが開き、クラウド プラットフォーム、オンプレミス アプリケーション、および対象となるアプリケーションのタイルが表示されます。 [注目のアプリケーション] セクションに表示されているアプリケーションには、フェデレーション SSO とプロビジョニングをサポートしているかどうかを示すアイコンがあります。

  4. Azure ギャラリーで F5 を検索し、[F5 BIG-IP APM Microsoft Entra ID 統合] を選びます。

  5. 新しいアプリケーションの名前を入力して、アプリケーションのインスタンスを認識します。

  6. [追加/作成] を選択して、これをテナントに追加します。

F5 BIG-IP への SSO を有効にする

BIG-IP APM から要求された SAML トークンを実行できるように BIG-IP の登録を構成します。

  1. 左側のメニューの [管理] セクションで、[シングル サインオン] を選択します。 [シングル サインオン] ペインが表示されます。
  2. [シングル サインオン方式の選択] ページで、 [SAML] を選択します。 [いいえ、後で保存します] を選択して、プロンプトをスキップします。
  3. [SAML によるシングル サインオンのセットアップ] ペインで、ペン アイコンを選択して [基本的な SAML 構成] を編集します。
  4. 事前に定義された [識別子] の値を、BIG-IP によって公開されたアプリケーションの完全な URL に置き換えます。
  5. ただし、[応答 URL] の値は、アプリケーションの SAML SP エンドポイントのパスのままにしてください。

Note

この構成では、SAML フローは IdP によって開始されるモードで動作します。 ユーザーがアプリケーションの BIG-IP エンドポイントにリダイレクトされる前に、Microsoft Entra ID によって SAML アサーションが発行されます。

  1. SP 開始モードを使用するには、[サインオン URL] にアプリケーションの URL を入力します。

  2. [ログアウト URL] には、公開するサービスのホスト ヘッダーが前についた BIG-IP APM シングル ログアウト (SLO) エンドポイントを入力します。 このアクションにより、ユーザーが Microsoft Entra ID からサインアウトした後に、ユーザーの BIG-IP APM セッションが終了します。

    基本的な SAML 構成の URL エントリのスクリーンショット。

Note

BIG-IP トラフィック管理オペレーティング システム (TMOS) v16 から、SAML SLO エンドポイントが /saml/sp/profile/redirect/slo に変わりました。

  1. SAML 構成を閉じる前に [保存] を選択します。

  2. SSO テスト プロンプトをスキップします。

  3. [ユーザー属性とクレーム] セクションのプロパティを確認してください。 バックエンド アプリケーションに対する BIG-IP APM 認証と SSO 用に、Microsoft Entra ID からユーザーにプロパティが発行されます。

  4. コンピューターにフェデレーション メタデータ XML ファイルを保存するには、[SAML 署名証明書] ペインで [ダウンロード] を選択します。

    フェデレーション メタデータ XML のダウンロード オプションのスクリーンショット。

Note

Microsoft Entra ID が作成する SAML 署名証明書の有効期間は 3 年間です。 詳細については、フェデレーション シングル サインオンのためのマネージド証明書に関するページを参照してください。

ユーザーとグループへのアクセスの付与

既定では、Microsoft Entra ID で、サービスへのアクセスが許可されているユーザーにトークンが発行されます。 ユーザーおよびグループにアプリケーションへのアクセスを許可するには、次の手順に従います。

  1. [F5 BIG-IP application’s overview](F5 BIG-IP アプリケーションの概要) ペインで、[ユーザーとグループの割り当て] を選択します。

  2. [+ Add user/group](+ ユーザーまたはグループの追加) を選択します。

    [ユーザーとグループ] の [ユーザーまたはグループの追加] オプションのスクリーンショット。

  3. ユーザーとグループを選択してから、[割り当て] を選択します。

Active Directory による Kerberos の制約付き委任の構成

BIG-IP APM がユーザーに代わってバックエンド アプリケーションへの SSO を実行するように、ターゲット Active Directory (AD) ドメインで KCD を構成します。 認証を委任するには、ドメイン サービス アカウントで BIG-IP APM をプロビジョニングする必要があります。

このシナリオでは、アプリケーションはサーバー APP-VM-01 にホストされ、コンピューターの ID ではなく、web_svc_account という名前のサービス アカウントのコンテキストで実行されています。 APM に割り当てられた、委任する側のサービス アカウントの名称は F5-BIG-IP です。

BIG-IP APM 委任アカウントを作成する

BIG-IP ではグループ管理サービス アカウント (gMSA) がサポートされていないため、APM のサービス アカウントとして使用する標準ユーザー アカウントを作成します。

  1. 次の PowerShell コマンドを入力します。 UserPrincipalNameSamAccountName の値を、お使いの環境値に置き換えます。 セキュリティを強化するため、アプリケーションのホスト ヘッダーに一致する専用のサービス プリンシパル名 (SPN) を使います。

    New-ADUser -Name "F5 BIG-IP Delegation Account" UserPrincipalName $HOST_SPN SamAccountName "f5-big-ip" -PasswordNeverExpires $true Enabled $true -AccountPassword (Read-Host -AsSecureString "Account Password")

    HOST_SPN = host/f5-big-ip.contoso.com@contoso.com

    Note

    ホストを使用すると、ホストで実行されているアプリケーションはアカウントを委任しますが、HTTPS を使用すると、HTTP プロトコル関連の操作のみが許可されます。

  2. Web アプリケーションのサービス アカウントに委任している間に使用する APM サービス アカウントのサービス プリンシパル名 (SPN) を作成します。

    Set-AdUser -Identity f5-big-ip -ServicePrincipalNames @Add="host/f5-big-ip.contoso.com"}

    Note

    host/part を UserPrincipleName (host/name.domain@domain) または ServicePrincipleName (host/name.domain) の形式で含める必要があります。

  3. ターゲット SPN を指定する前に、その SPN 構成を表示します。 SPN が APM サービス アカウントに対して表示されていることを確認します。 APM サービス アカウントが Web アプリケーションの委任を行います。

    • Web アプリケーションがコンピューターのコンテキストまたは専用サービス アカウントで実行されていることを確認します。

    • Computer コンテキストの場合、次のコマンドを使用して、Active Directory のアカウント オブジェクトに対してクエリを実行し、定義されている SPN を確認します。 <name_of_account> は、実際の環境のアカウントに置き換えてください。

      Get-ADComputer -identity <name_of_account> -properties ServicePrincipalNames | Select-Object -ExpandProperty ServicePrincipalNames

      例: Get-ADUser -identity f5-big-ip -properties ServicePrincipalNames | Select-Object -ExpandProperty ServicePrincipalNames

    • 専用サービス アカウントの場合、次のコマンドを使用して、Active Directory のアカウント オブジェクトに対してクエリを実行し、定義されている SPN を確認します。 <name_of_account> は、実際の環境のアカウントに置き換えてください。

      Get-ADUser -identity <name_of_account> -properties ServicePrincipalNames | Select-Object -ExpandProperty ServicePrincipalNames

      例: Get-ADComputer -identity f5-big-ip -properties ServicePrincipalNames | Select-Object -ExpandProperty ServicePrincipalNames

  4. アプリケーションをマシン コンテキストで実行した場合は、Active Directory のコンピューター アカウントのオブジェクトに SPN を追加します。

    Set-ADComputer -Identity APP-VM-01 -ServicePrincipalNames @{Add="http/myexpenses.contoso.com"}

SPN の定義後、APM サービス アカウントがそのサービスに対して委任を行うための信頼を確立します。 その構成は、BIG-IP インスタンスとアプリケーション サーバーのトポロジによって異なります。

BIG-IP とターゲット アプリケーションを同じドメインで構成する

  1. APM サービス アカウントが認証を委任するための信頼を設定します。

    Get-ADUser -Identity f5-big-ip | Set-ADAccountControl -TrustedToAuthForDelegation $true

  2. APM サービス アカウントは、委任先として信頼されているターゲット SPN を知っている必要があります。 ターゲット SPN は、Web アプリケーションを実行しているサービス アカウントに設定します。

    Set-ADUser -Identity f5-big-ip -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/myexpenses.contoso.com')}

    Note

    これらのタスクは、ドメイン コントローラー上の Active Directory ユーザーとコンピューターおよび Microsoft 管理コンソール (MMC) スナップインを使用して完了できます。

BIG-IP とターゲット アプリケーションを異なるドメインで構成する

Windows Server 2012 以降のバージョンでは、クロス ドメインの KCD にリソースベースの制約付き委任 (RBCD) が使用されます。 サービスの制約は、ドメイン管理者からサービス管理者に転送されます。 この委任により、バックエンドのサービス管理者が SSO を許可または拒否できます。 この状態では、構成の委任時に異なるアプローチが作成されます。このアプローチは、PowerShell または Active Directory Service Interfaces Editor (ADSI Edit) を使用する場合に適用できます。

アプリケーション サービス アカウント (コンピューターまたは専用サービス アカウント) の PrincipalsAllowedToDelegateToAccount プロパティを使って、BIG-IP からの委任を行えます。 このシナリオでは、アプリケーションと同じドメインのドメイン コントローラー (Windows Server 2012 R2 以降) で以下の PowerShell コマンドを使用します。

Web アプリケーション サービス アカウントに対して定義された SPN を使用します。 セキュリティを強化するため、アプリケーションのホスト ヘッダーに一致する専用の SPN を使用します。 たとえば、この例の Web アプリケーションのホスト ヘッダーは myexpenses.contoso.com なので、Active Directory (AD) でアプリケーションのサービス アカウント オブジェクトに HTTP/myexpenses.contoso.com を追加します。

Set-AdUser -Identity web_svc_account -ServicePrincipalNames @{Add="http/myexpenses.contoso.com"}

次のコマンドでは、コンテキストに注意してください。

web_svc_account サービスがユーザー アカウントのコンテキストで実行されている場合は、以下のコマンドを使用します。

$big-ip= Get-ADComputer -Identity f5-big-ip -server dc.contoso.com Set-ADUser -Identity web_svc_account -PrincipalsAllowedToDelegateToAccount $big-ip Get-ADUser web_svc_account -Properties PrincipalsAllowedToDelegateToAccount

web_svc_account サービスがコンピューター アカウントのコンテキストで実行されている場合は、以下のコマンドを使用します。

$big-ip= Get-ADComputer -Identity f5-big-ip -server dc.contoso.com Set-ADComputer -Identity web_svc_account -PrincipalsAllowedToDelegateToAccount $big-ip Get-ADComputer web_svc_account -Properties PrincipalsAllowedToDelegateToAccount

詳細については、「ドメイン間の Kerberos の制約付き委任」を参照してください。

BIG-IP の高度な構成

次のセクションを使用して、BIG-IP 構成の設定を続行します。

SAML サービス プロバイダーの設定を構成する

SAML サービス プロバイダー設定では、APM が SAML 事前認証でレガシ アプリケーションをオーバーレイするために使う SAML SP プロパティを定義します。 それらを構成するには、次の手順に従います。

  1. ブラウザーから F5 BIG-IP 管理コンソールにサインインします。

  2. [Access](アクセス)>[Federation](フェデレーション)>[SAML Service Provider](SAML サービス プロバイダー)>[Local SP Services](ローカル SP サービス)>[Create](作成) の順に選択します。

    [ローカル SP サービスの SAML サービス プロバイダー] の [作成] オプションのスクリーンショット。

  3. Microsoft Entra ID の SSO を構成する際に保存した [名前][エンティティ ID] の値を指定します。

    [新しい SAML SP サービスの作成] の [名前] と [エンティティ ID] エントリのスクリーンショット。

  4. SAML のエンティティ ID が公開されたアプリケーションの URL と完全に一致している場合、[SP 名の設定] はスキップできます。 たとえば、エンティティ ID が urn:myexpenses:contosoonline の場合、[スキーム] の値は https で、[ホスト] の値は myexpenses.contoso.com です。 エンティティ ID が https://myexpenses.contoso.com" の場合は、この情報を指定する必要はありません。

外部 IdP コネクタを構成する

SAML IdP コネクタは、BIG-IP APM が SAML IdP として Microsoft Entra ID を信頼するための設定を定義します。 これらの設定により、SAML SP が SAML IdP にマップされ、APM と Microsoft Entra ID 間のフェデレーションの信頼が確立されます。 コネクタを構成するには、次の手順に従います。

  1. 下へスクロールして新しい SAML SP オブジェクトを選択し、[IdP コネクタのバインドまたはバインド解除] を選択します。

    [ローカル SP サービスの SAML サービス プロバイダー] の [バインド/バインド解除 IdP コネクタ] オプションのスクリーンショット。

  2. [Create New IdP Connector](新しい IdP コネクタの作成)>[From Metadata](メタデータから) を選択します。

    [SAML IdP の編集] の [新しい IdP コネクタの作成] の [メタデータから] オプションのスクリーンショット

  3. ダウンロードしたフェデレーション メタデータ XML ファイルを参照し、外部 SAML IdP を表す APM オブジェクトの [ID プロバイダー名] を指定します。 次の例は、MyExpenses_AzureAD を示します。

    [新しい SAML IdP コネクタの作成] の [ファイルの選択] の [ファイルと ID プロバイダー名のエントリの選択] のスクリーンショット。

  4. [新しい行の追加] を選択して新しい [SAML IdP コネクタ] 値を選択し、その後 [更新] を選択します。

    [SAML IdP コネクタ] エントリの [更新] オプションのスクリーンショット。

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

Kerberos SSO を構成する

バックエンド アプリケーションに対する KCD SSO を実行するための APM SSO オブジェクトを作成します。 作成した APM 委任アカウントを使用します。

  1. [Access](アクセス)>[Single Sign-on](シングル サインオン)>[Kerberos]>[Create](作成) の順に選択し、次の情報を指定します。
  • [名前]: 作成後、発行された他のアプリケーションでも Kerberos SSO APM オブジェクトを使用できます。 たとえば、Contoso_KCD_sso は、Contoso ドメインで公開された複数のアプリケーションに使用します。 1 つのアプリケーションに MyExpenses_KCD_sso を使用します。

  • [ユーザー名ソース]: ユーザー ID ソースを指定します。 ソースとして APM セッション変数を使用します。 Microsoft Entra 要求からのログイン ユーザー ID が格納されるため、session.saml.last.identity を使用することをお勧めします。

  • [ユーザー領域のソース]: ユーザー ドメインが KCD の Kerberos 領域と異なる場合に必要です。 信頼された別のドメインにユーザーが存在している場合、ログイン ユーザーのドメインが格納されている APM セッション変数を指定することによって APM に認識させます。 たとえば、「session.saml.last.attr.name.domain」です。 このアクションは、ユーザー プリンシパル名 (UPN) が代替サフィックスに基づいているシナリオで実行します。

  • [Kerberos 領域]: ユーザー ドメインのサフィックス (大文字)

  • [KDC]: ドメイン コントローラーの IP アドレス。 または、DNS が構成されていて効率的である場合は、完全修飾ドメイン名を入力します。

  • [UPN サポート]: session.saml.last.identity 変数など、ユーザー名のソースが UPN 形式である場合にこのチェックボックスをオンにします。

  • [アカウント名] および [アカウント パスワード]: KCD を実行するための APM サービス アカウントの資格情報

  • [SPN パターン]: HTTP/%h を使用する場合、APM はクライアント要求のホスト ヘッダーを使用して、Kerberos トークンの要求対象となる SPN を構築します。

  • [Send Authorization](承認の送信): 1 回目の要求で Kerberos トークンを受信するのではなく、認証をネゴシエートした方が望ましいアプリケーションでは、このオプションを無効にしてください (例: Tomcat)。

    [全般プロパティ] の [名前]、[ユーザー名ソース]、[SSO メソッドの構成] エントリのスクリーンショット。

ユーザーの領域がバックエンド サーバーの領域と異なる場合、[KDC] は未定義のままでかまいません。 この規則は、複数ドメイン領域のシナリオに適用されます。 KDC を未定義のままにすると、BIG-IP はバックエンド サーバー ドメインの SRV レコードの DNS 参照を通じて Kerberos 領域を検出しようとします。 ドメイン名は領域名と同じと見なされます。 ドメイン名が異なる場合は、/ などの /krb5.conf ファイルで指定します。

KDC が IP アドレスで指定されている場合、Kerberos SSO 処理は速くなります。 KDC をホスト名で指定すると、Kerberos SSO 処理は遅くなります。 DNS クエリが増えるため、KDC が未定義の場合、処理はさらに遅くなります。 概念実証を運用環境に移行する前に、DNS のパフォーマンスが最適であることを確認します。

Note

バックエンド サーバーが複数の領域に存在する場合は、それぞれの領域用に別個の SSO 構成オブジェクトを作成します。

バックエンド アプリケーションに対する SSO 要求の一部としてヘッダーを挿入できます。 [全般プロパティ] 設定を [基本] から [詳細] に変更します。

KCD SSO のための APM の構成について詳しくは、F5 の記事「K17976428: Kerberos の制約付き委任の概要」を参照してください。

アクセス プロファイルを構成する

アクセス プロファイルは、BIG-IP 仮想サーバーへのアクセスを管理する APM 要素をバインドします。 これらの要素には、アクセス ポリシー、SSO 構成、UI 設定が含まれます。

  1. [アクセス]>[プロファイル/ポリシー]>[アクセス プロファイル (セッション単位のポリシー)]>[作成] の順に選択して、以下のプロパティを入力します。

    • [名前]: たとえば「MyExpenses」と入力します

    • [プロファイルの種類]: [すべて] を選択します

    • [SSO 構成]: 作成した KCD SSO 構成オブジェクトを選択します

    • [使用可能な言語]: 少なくとも 1 つの言語を追加します

    [全般プロパティ]、[認証ドメイン間の SSO]、[言語設定] エントリのスクリーンショット。

  2. 作成したセッションごとのプロファイルに対して [編集] を選択します。

    [セッションごとのポリシー] の [編集] オプションのスクリーンショット。

  3. ビジュアル ポリシー エディターが開きます。 フォールバックの横にあるプラス記号を選択します。

    [アクセス ポリシーの適用] のプラス記号ボタンのスクリーンショット。

  4. ダイアログで、[認証]>[SAML 認証]>[項目の追加] を選択します。

    [認証] タブの [SAML Auth] オプションのスクリーンショット。

  5. [SAML 認証 SP] の構成で、作成した SAML SP オブジェクトを使用するように [AAA サーバー] オプションを設定します。

    [プロパティ] タブの [AAA Server] エントリのスクリーンショット。

  6. [成功] ブランチを [許可] に変更するには、上記の [拒否] ボックス内のリンクを選択します。

  7. [保存] を選択します。

    [アクセス ポリシー] の [拒否] オプションのスクリーンショット。

属性マッピングの構成

必須ではありませんが、LogonID_Mapping 構成を追加すると、BIG-IP アクティブ セッションのリストにセッション番号ではなく、ログインしているユーザーの UPN を表示できます。 この情報は、ログを分析する場合やトラブルシューティングを行うのに便利です。

  1. [SAML 認証の成功] ブランチのプラス記号を選択します。

  2. ダイアログで、[割り当て]>[変数の割り当て]>[項目の追加] の順に選択します。

    [割り当て] タブの [変数の割り当て] オプションのスクリーンショット。

  3. [名前] を入力します。

  4. [Variable Assign](変数の割り当て) ペインで、[Add new entry](新しいエントリの追加) > [change](変更) を選択します。 次の例は、[Name](名前) ボックスでの LogonID_Mapping を示したものです。

    [新しいエントリと変更の追加] オプションのスクリーンショット。

  5. 次の両方の変数を設定します。

    • [カスタム変数]: 「session.logon.last.username」と入力します
    • [セッション変数]:: 「session.saml.last.identity」と入力します
  6. [完了]>[保存] の順に選択します。

  7. アクセス ポリシーの [成功] ブランチの [拒否] ターミナルを選択します。 これを [許可] に変更します。

  8. [保存] を選択します。

  9. [アクセス ポリシーの適用] を選択し、エディターを閉じます。

    [アクセス ポリシーの適用] オプションのスクリーンショット。

バックエンド プールを構成する

BIG-IP でクライアント トラフィックを正確に転送するには、アプリケーションをホストするバックエンド サーバーを表す BIG-IP ノード オブジェクトを作成します。 その後、そのノードを BIG-IP サーバー プールに配置します。

  1. [ローカル トラフィック>プール]>[プールの一覧>作成] の順に選択し、サーバー プール オブジェクトの名前を指定します。 たとえば、「MyApps_VMs」と入力します。

    [新しいプールでの構成] の [名前] エントリのスクリーンショット。

  2. 以下のリソースの詳細を使用してプール メンバー オブジェクトを追加します。

    • [ノード名]: バックエンド Web アプリケーションをホストするサーバーの表示名
    • [アドレス]: アプリケーションをホストするサーバーの IP アドレス
    • [サービス ポート]: アプリケーションがリッスンする HTTP/S ポート。

    [ノード名]、[アドレス]、[サービス ポート] エントリと [追加] オプションのスクリーンショット。

Note

こ記事では、正常性モニターで必要となる追加の構成については説明しません。 「K13397: BIG-IP DNS システムの HTTP 正常性モニター要求の書式設定の概要」を参照してください。

仮想ネットワークを構成する

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

仮想サーバーを構成するには、次の手順に従います。

  1. [ローカル トラフィック]>[仮想サーバー]>[仮想サーバーの一覧]>[作成] の順に選択します。

  2. [名前] と接続されたネットワーク上の BIG-IP オブジェクトやデバイスに割り当てられていない IPv4/IPv6 アドレスを入力します。 この IP アドレスは、公開されたバックエンド アプリケーションのクライアント トラフィックの受信専用です。

  3. [サービス ポート]443 に設定します。

    [全般プロパティ] の [名前]、[宛先アドレス/マスク]、[サービス ポート] エントリのスクリーンショット。

  4. [HTTP プロファイル (クライアント)]http に設定します。

  5. トランスポート層セキュリティ (TLS) の仮想サーバーを有効にして、HTTPS でサービスを公開できるようにします。

  6. [SSL プロファイル (クライアント)] で、前提条件のために作成したプロファイルを選択します。 もしくは、テストする場合は既定値を使用します。

    クライアントの [HTTP プロファイル] と [SSL プロファイル] エントリのスクリーンショット。

  7. [Source Address Translation](ソース アドレス変換)[Auto Map](自動マップ) に変更します。

    [ソース アドレス変換] エントリのスクリーンショット。

  8. [アクセス ポリシー] で、作成したプロファイルに基づいて [アクセス プロファイル] を設定します。 この選択により、Microsoft Entra SAML 事前認証プロファイルと KCD SSO ポリシーが仮想サーバーにバインドされます。

    [アクセス ポリシー] の [アクセス プロファイル] エントリのスクリーンショット。

  9. 前のセクションで作成したバックエンド プール オブジェクトを使用するように [既定のプール] を設定します。

  10. [完了] を選択します。

    リソースの [既定のプール] エントリのスクリーンショット。

セッション管理の設定を構成する

BIG-IP のセッション管理設定では、ユーザー セッションが終了する条件や続行が許可される条件、ユーザーと IP アドレスの制限、およびエラー ページを定義します。 ここではポリシーを作成できます。

[アクセス ポリシー]>[アクセス プロファイル]>[アクセス プロファイル] に移動し、一覧からアプリケーションを選択します。

Microsoft Entra ID で 1 つのログアウト URI 値を定義すると、MyApps ポータルから IdP によって開始されるサインアウトにより、クライアントと BIG-IP APM の間のセッションが確実に終了します。 インポートされたアプリケーション フェデレーション メタデータ XML ファイルは、SP によって開始されるサインアウトの Microsoft Entra SAML サインアウト エンドポイントを APM に提供します。効果的な結果を得るには、ユーザーがいつサインアウトしたかを APM が把握する必要があります。

BIG-IP Web ポータルを使用しないシナリオを考えてみましょう。 ユーザーはサインアウトするよう APM に指示できません。ユーザーがアプリケーションからサインアウトしても、BIG-IP では認識されないため、SSO を使用してアプリケーション セッションを再開できます。 SP によって開始されるサインアウトでは、セッションが安全に終了するように配慮する必要があります。

Note

アプリケーションのサインアウト ボタンに SLO 関数を追加できます。 この機能により、クライアントは Microsoft Entra SAML のサインアウト エンドポイントにリダイレクトされます。 この SAML サインアウト エンドポイントは、[アプリの登録]>[エンドポイント] にあります。

アプリを変更できない場合は、BIG-IP でアプリのサインアウト呼び出しをリッスンすることを検討してください。 要求が検出されたら、SLO をトリガーします。

詳細については、F5 の記事を参照してください。

まとめ

アプリケーションが公開され、その URL または Microsoft のアプリケーション ポータルを介して、SHA によりアクセスできるようになります。 アプリケーションが、Microsoft Entra 条件付きアクセスのターゲット リソースとして表示されます。

このパターンを使用する組織では、セキュリティを強化するため、アプリケーションへの直接アクセスをブロックできます。そうすることで、BIG-IP 経由の厳密なパスを強制します。

次のステップ

ユーザーとして、ブラウザーを開き、アプリケーションの外部 URL に接続します。 Microsoft MyApps ポータルでアプリケーションのアイコンを選択できます。 Microsoft Entra テナントに対する認証後、アプリケーションの BIG-IP エンドポイントにリダイレクトされ、SSO によりサインインします。

アプリケーションの Web サイトの例の画像。

Microsoft Entra B2B ゲスト アクセス

SHA は Microsoft Entra B2B ゲスト アクセスをサポートします。 ゲストの ID は、Microsoft Entra テナントからターゲット Kerberos ドメインに同期されます。 バックエンド アプリケーションに対して BIG-IP が KCD SSO を実行できるようにするため、ゲスト オブジェクトのローカルな表現を設定します。

トラブルシューティング

トラブルシューティングの際は次の点を考慮してください。

  • Kerberos は時刻に依存します。 サーバーとクライアントを正しい時刻に設定する必要があり、可能であれば、信頼性の高いタイム ソースと同期するようにします。
  • ドメイン コントローラーと Web アプリケーションのホスト名が DNS で解決可能であることを確認します。
  • 環境内に重複する SPN がないことを確認します。 コマンド ラインで次のクエリを実行します: setspn -q HTTP/my_target_SPN

Note

KCD に対して IIS アプリケーションが構成されていることを確認するには、「アプリケーション プロキシ用の Kerberos 制約付き委任構成のトラブルシューティング」を参照してください。 AskF5 の記事「Kerberos のシングル サインオン メソッド」も参照してください。

ログの詳細度を上げる

BIG IP のログは信頼性の高い情報源です。 ログの詳細レベルを上げるには、次のようにします。

  1. [Access Policy](アクセス ポリシー)>[Overview](概要)>[Event Logs](イベント ログ)>[Settings](設定) に移動します。
  2. 発行されたアプリケーションの行を選択します。
  3. 次に、[編集]>[システム ログへのアクセス] を選択します。
  4. SSO のリストから [デバッグ] を選択します。
  5. [OK] を選択します。

ログを確認する前に、問題を再現します。 完了したら、この機能を元に戻します。 そうしない場合、ログに詳細情報が大量に出力され続けます。

BIG-IP エラー

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

  1. [Access](アクセス)>[Overview](概要)>[Access reports](アクセス レポート) に移動します。
  2. ログに手掛かりがないかを確認するには、過去 1 時間のレポートを実行します。
  3. セッションに対する [セッション変数の表示] リンクを使用して、APM が Microsoft Entra ID から予想される要求を受信しているかどうかを把握します。

バックエンド要求

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

  1. [Access Policy](アクセス ポリシー)>[Overview](概要)>[Active Sessions](アクティブ セッション) に移動します。
  2. アクティブなセッションのリンクを選択します。
  3. [変数の表示] リンクを使用して、KCD の問題、特に BIG-IP APM が適切なユーザー ID やドメイン ID を取得できない場合の根本的な原因を特定します。

KCD 関連の問題の診断については、アーカイブされた F5 BIG-IP デプロイ ガイド「Configuring Kerberos Constrained Delegation (Kerberos の制約付き委任の構成)」を参照してください。

リソース