次の方法で共有


チュートリアル:Azure Active Directory B2C と F5 BIG-IP を使用してアプリケーションのセキュリティで保護されたハイブリッド アクセスを有効にする

重要

2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください

Azure Active Directory B2C (Azure AD B2C) を F5 BIG-IP Access Policy Manager (APM) と統合する方法について説明します。 Azure AD B2C 事前認証、条件付きアクセス (CA)、シングル サインオン (SSO) を使用して、BIG-IP セキュリティを通じてレガシ アプリケーションをインターネットに安全に公開できます。 F5 Inc. は、コンピューティング、ストレージ、ネットワーク リソースなど、接続されたサービスの配信、セキュリティ、パフォーマンス、可用性に重点を置いています。 ハードウェア、モジュール化されたソフトウェア、クラウド対応の仮想アプライアンス ソリューションを提供します。

F5 BIG-IP Application Delivery Controller(ADC)を、プライベート ネットワークとインターネット間のセキュア ゲートウェイとして導入します。 アプリケーション レベルの検査とカスタマイズ可能なアクセス制御の機能があります。 リバース プロキシとしてデプロイする場合は、BIG-IP を使用して、APM によって管理されるフェデレーション ID アクセス層を使用して、ビジネス アプリケーションへのセキュリティで保護されたハイブリッド アクセスを有効にします。

microsoft Entra ID を使用してすべてのアプリケーションへのセキュリティで保護されたアクセスを簡単に構成する方法については、f5.com のリソースとホワイト ペーパーを参照してください

[前提条件]

開始するには、次のものが必要です。

シナリオの説明

次のシナリオはヘッダーベースですが、これらの方法を使用して Kerberos SSO を実現できます。

このシナリオでは、内部アプリケーションへのアクセスは、レガシ ブローカー システムからの HTTP 承認ヘッダーの受信に依存します。 販売エージェントは、コンテンツのそれぞれの領域に向けることができます。 このサービスは、より広範なコンシューマー ベースに拡張する必要があります。 アプリケーションは、コンシューマー認証オプション用にアップグレードされるか、置き換えられます。

理想的には、アプリケーションのアップグレードでは、最新のコントロール プレーンを使用した直接管理とガバナンスがサポートされます。 ただし、最新化の時間と労力により、コストと潜在的なダウンタイムが発生します。 代わりに、パブリック インターネットと内部 Azure 仮想ネットワーク (VNet) の間に BIG-IP Virtual Edition (VE) をデプロイして、Azure AD B2C でアクセスをゲートします。 アプリケーションの前にある BIG-IP により、Azure AD B2C 事前認証とヘッダーベースの SSO を使用したサービスのオーバーレイが可能になり、アプリのセキュリティ体制が向上します。

セキュリティで保護されたハイブリッド アクセス ソリューションには、次のコンポーネントがあります。

  • アプリケーション - Azure AD B2C によって保護され、BIG-IP セキュリティで保護されたハイブリッド アクセスによって保護されるバックエンド サービス
  • Azure AD B2C - ユーザーの資格情報、多要素認証、BIG-IP APM への SSO を検証する ID プロバイダー (IdP) と OpenID Connect (OIDC) 承認サーバー
  • BIG-IP - アプリケーションのリバース プロキシ。 BIG-IP APM は OIDC クライアントであり、ヘッダーベースの SSO をバックエンド サービスにする前に、認証を OIDC 承認サーバーに委任します。

次の図は、このシナリオのサービス プロバイダー (SP) によって開始されるフローを示しています。

サービス プロバイダーによって開始されたフローのスクリーンショット。

  1. ユーザーがアプリケーション エンドポイントに接続します。 BIG-IP はサービスプロバイダーです。
  2. BIG-IP APM OIDC クライアントは、ユーザーを Azure AD B2C テナント エンドポイント (OIDC 承認サーバー) にリダイレクトします
  3. Azure AD B2C テナントがユーザーを事前認証し、条件付きアクセス ポリシーを適用する
  4. Azure AD B2C が承認コードを使用してユーザーを SP にリダイレクトする
  5. OIDC クライアントは、ID トークンの承認コードを交換するように承認サーバーに要求します
  6. BIG-IP APM は、ユーザーにアクセスを許可し、アプリケーションに転送されるクライアント要求に HTTP ヘッダーを挿入します

Azure AD B2C の構成

Azure AD B2C 認証で BIG-IP を有効にするには、ユーザー フローまたはカスタム ポリシーで Azure AD B2C テナントを使用します。

「チュートリアル:Azure AD B2C でユーザーフローとカスタムポリシーを作成する方法」

カスタム属性を作成する

Azure AD B2C ユーザー オブジェクト、フェデレーション IdP、API コネクタ、またはユーザー サインアップからカスタム属性を取得します。 アプリケーションに送るトークンに属性を含めます。

レガシ アプリケーションでは特定の属性が必要であるため、ユーザー フローに含めます。 アプリケーションで必要な属性に置き換えることができます。 または、手順を使用してテスト アプリを設定する場合は、任意のヘッダーを使用してください。

  1. 少なくとも B2C IEF ポリシー管理者として Azure portal にサインインします。
  2. 左側のウィンドウで、[ ユーザー属性] を選択します。
  3. [ 追加] を選択して、2 つのカスタム属性を作成します。
  4. [エージェント ID] で、[文字列 データ型] を選択します。
  5. [エージェント geo] で、[文字列 データ型] を選択します。

ユーザー フローに属性を追加する

  1. 左側のメニューで、[ ポリシー>ユーザー フロー] に移動します。
  2. ポリシーを選択します (例: B2C_1_SignupSignin)。
  3. [ユーザー属性] を選択します。
  4. 両方のカスタム属性を追加します。
  5. 表示名属性を追加します。 これらの属性は、ユーザーのサインアップ時に収集されます。
  6. [ アプリケーション要求] を選択します
  7. 両方のカスタム属性を追加します。
  8. 表示名を追加します。 これらの属性は BIG-IP に移動します。
  9. ユーザー フローを実行する を選択します。
  10. ユーザー フロー メニューの左側のナビゲーション バーで、定義された属性のプロンプトを確認します。

詳細情報: チュートリアル: Azure AD B2C でユーザー フローとカスタム ポリシーを作成する

Azure AD B2C フェデレーション

相互信頼のために BIG-IP と Azure AD B2C をフェデレーションします。 Azure AD B2C テナントに OIDC アプリケーションとして BIG-IP を登録します。

  1. ポータルで、[アプリの登録] >[新しい登録] を選択します。
  2. アプリ名 (HeaderApp1 など) を入力します
  3. [サポートされているアカウントの種類] で、[(ユーザー フローを使用してユーザーを認証するための) 任意の ID プロバイダーまたは組織のディレクトリのアカウント] を選択します。
  4. [リダイレクト URI] で [Web] を選択します。
  5. 保護されたサービスパブリック FQDN を入力します。
  6. パスを入力します。
  7. 残りの選択はそのままにしておきます。
  8. 登録 を選択します。
  9. [証明書とシークレット>+ 新しいクライアント シークレット] に移動します。
  10. わかりやすい名前を入力します
  11. BIG-IP によって使用されるシークレットの TTL を入力します。
  12. BIG-IP 設定のクライアントシークレットをメモします。

リダイレクト URI は、BIG-IP エンドポイントです。 認証後、承認サーバー (Azure AD B2C) はユーザーをエンドポイントに送信します。

詳細情報: チュートリアル: Azure AD B2C for Azure AD B2C に Web アプリケーションを登録 する。

BIG-IP の構成

BIG-IP 設定には、ガイド付き設定v.7/8を使用します。 ワークフロー フレームワークは、トポロジにアクセスするように調整されており、迅速な Web サービスの発行を実現します。

ガイド付き構成バージョン

  1. バージョンを確認するには、管理者アカウントで BIG-IP Web 設定にサインインします。
  2. Access>ガイド付き構成にアクセスします
  3. バージョンが右上隅に表示されます。

ガイド付き構成をアップグレードするには、「 my.f5.com for K85454683: BIG-IP システムでの F5 BIG-IP ガイド付き構成のアップグレード」を参照してください。

SSL プロファイル

クライアント SSL プロファイルで構成された BIG-IP を使用して、TLS 経由のクライアント側のトラフィックを保護します。 アプリの公開 URL で使用されるドメイン名と一致する証明書をインポートします。 パブリック認証局を使用することをお勧めしますが、テストには BIG-IP 自己署名証明書を使用できます。

BIG-IP VE で証明書を追加および管理するには、 BIG-IP システムの techdocs.f5.com: SSL 管理に進みます。

ガイド付き構成

  1. デプロイ ウィザードを起動するには、Web 構成で Access>Guided 構成に移動します。
  2. OAuth クライアントとリソース サーバーとして>F5 を選択します。
  3. このシナリオのフローの概要を確認します。
  4. [次へ] を選択します。
  5. ウィザードが起動します。

OAuth のプロパティ

次のセクションでは、BIG-IP APM と OAuth 承認サーバー (Azure AD B2C テナント) 間のフェデレーションを有効にするプロパティを定義します。 OAuth は、BIG-IP 構成全体で参照されます。 このソリューションでは、OAuth 2.0 プロトコルの ID レイヤーである OIDC を使用します。 OIDC クライアントは、ユーザー ID を確認し、他のプロファイル情報を取得します。

構成名

構成の表示名は、ガイド付き構成の展開構成を区別するのに役立ちます。 名前は変更できません。また、ガイド付き構成ビューにのみ表示されます。

モード

BIG-IP APM は OIDC クライアントであるため、[クライアント] オプションを選択します。

DNS リゾルバー

指定したターゲットは、Azure AD B2C エンドポイントのパブリック IP アドレスを解決する必要があります。 パブリック DNS リゾルバーを選択するか、新しく作成します。

プロバイダーの設定

Azure AD B2C を OAuth2 IdP として構成します。 ガイド付き構成には Azure AD B2C テンプレートがありますが、特定のスコープはありません。

新しいプロバイダーを追加して構成します。

OAuth の一般的なプロパティ

特性 説明
OAuth プロバイダーの種類 習慣
OAuth プロバイダーの選択 新しいプロバイダーを作成するか、OAuth プロバイダーを使用する
名前 B2C IdP の表示名。 この名前は、サインイン時にプロバイダー オプションとしてユーザーに表示されます
トークンの種類 JSON Web トークン

OAuth ポリシーの設定

特性 説明
範囲 空白のままにします。 ユーザー サインインの OpenID スコープが自動的に追加されます
許可の種類 Authorization code (承認コード)
OpenID Connect を有効にする APM OAuth クライアントを OIDC モードにするオプションを選択します
フローの種類 Authorization code (承認コード)

OAuth プロバイダーの設定

次の OpenID URI は、署名証明書のロールオーバーなどの IdP 情報を検出するために OIDC クライアントによって使用されるメタデータ エンドポイントを参照します。

  1. Azure AD B2C テナントのメタデータ エンドポイントを見つけます。 アプリの登録>Endpoints に移動します。
  2. Azure AD B2C OpenID Connect メタデータ ドキュメント URI をコピーします。 たとえば、https://wacketywackb2c .b2clogin.com/<tenantname>.onmicrosoft.com/<policyname>/v2.0/.well-known/openid-configuration のようにします。
  3. プロパティを使用して URI を更新 https://<tenantname>.b2clogin.com/WacketywackB2C.onmicrosoft.com/B2C_1_SignUpIn/v2.0/.well-known/openid-configuration
  4. ブラウザーに URI を貼り付けます。
  5. Azure AD B2C テナントの OIDC メタデータを表示します。
プロパティ 説明
聴衆 Azure AD B2C テナントの BIG-IP を表すアプリケーション クライアント ID
認証 URI B2C OIDC メタデータ内の承認エンドポイント
トークン URI Azure AD B2C メタデータ内のトークン エンドポイント
ユーザー情報リクエストURI 空のままにします。 Azure AD B2C では、この機能はサポートされていません
OpenID URI 作成した OpenID URI メタデータ エンドポイント
期限切れの証明書の検証を無視する オフのまま
自己署名 JWK 構成証明書を許可する 確認
信頼された CA バンドル 既定の F5 信頼機関を使用するには、ca-bundle.crt を選択します
検出間隔 BIG-IP が Azure AD B2C テナントに更新プログラムのクエリを実行する間隔を指定します。 AGC バージョン 16.1 0.0.19 の最小間隔は 5 分です。

OAuth サーバーの設定

OIDC 認可サーバーの場合、自分の Azure AD B2C テナント。

プロパティ 説明
クライアントID Azure AD B2C テナントの BIG-IP を表すアプリケーション クライアント ID
クライアント シークレット アプリケーション クライアント シークレット
クライアント/サーバー SSL プロファイル SSL プロファイルを設定して、APM が TLS 経由で Azure AD B2C IdP と通信するようにします。 既定の serverssl を選択します

OAuth 要求の設定

BIG-IP には、事前に構成された要求セットに Azure AD B2C 要求が必要です。 ただし、要求の形式が正しくありませんでした。重要なパラメーターがありません。 そのため、手動で作成しました。

トークン要求: 有効

プロパティ 説明
OAuth 要求の選択 新規作成
HTTP メソッド 投稿
ヘッダーを有効にする 未チェック
パラメーターを有効にする 確認済み
パラメーター パラメーター名 パラメーター値
クライアントID クライアントID なし
ナンス ナンス なし
redirect_uri redirect_uri なし
範囲 範囲 なし
レスポンス・タイプ (response_type) レスポンス・タイプ (response_type) なし
クライアントシークレット クライアントシークレット なし
習慣 grant_type(グラントタイプ) 認証コード

認証リダイレクト要求: 有効

プロパティ 説明
OAuth 要求の選択 新規作成
HTTP メソッド 取得する
プロンプトの種類 無し
ヘッダーを有効にする 未チェック
パラメーターを有効にする 確認済み
パラメーター パラメーター名 パラメーター値
クライアントID クライアントID なし
redirect_uri redirect_uri なし
レスポンス・タイプ (response_type) レスポンス・タイプ (response_type) なし
範囲 範囲 なし
ナンス ナンス なし

トークン更新要求: 無効: 必要に応じて有効にして構成できます。

OpenID UserInfo 要求: 無効 グローバル Azure AD B2C テナントではサポートされていません。

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

BIG-IP 仮想サーバーを作成して、セキュリティで保護されたハイブリッド アクセスによって保護されたバックエンド サービスに対する外部クライアント要求をインターセプトします。 アプリケーションを表す BIG-IP サービスエンドポイントのパブリック DNS レコードにマップされた IP を仮想サーバーに割り当てます。 使用可能な場合は仮想サーバーを使用し、それ以外の場合は次のプロパティを指定します。

プロパティ 説明
宛先アドレス バックエンドアプリケーションの BIG-IP サービスエンドポイントとなるプライベートIPまたはパブリックIP
サービス ポート HTTPS
リダイレクト ポートを有効にする ユーザーが http から https に自動リダイレクトされるように選択する
ポートのリダイレクト HTTP
クライアント SSL プロファイル 定義済みの clientssl プロファイルを SSL 証明書を持つプロファイルと交換します。 既定のプロファイルを使用してテストできます。 ただし、ブラウザーのアラートが発生する可能性があります。

プールのプロパティ

バックエンド サービスは、BIG-IP ではプールとして表示され、仮想サーバーがインバウンド トラフィックを転送する 1 つ以上のアプリケーション サーバーがあります。 プールを選択し、それ以外の場合は新しいプールを作成します。

プロパティ 説明
負荷分散方法 ラウンドロビンを選択
プール サーバー バックエンド アプリケーションの内部 IP
港 / ポート バックエンド アプリケーションのサービス ポート

BIG-IP はプール サーバー アドレスに対して見通しが効くことを確認します。

SSO の設定

BIG-IP は SSO オプションをサポートしていますが、OAuth クライアント モードでは、ガイド付き構成は Kerberos または HTTP ヘッダーに限定されます。 SSO を有効にし、APM に対して次の情報を使用して、定義された受信属性を送信ヘッダーにマップします。

プロパティ 説明
ヘッダー操作 [挿入]
ヘッダー名 名前
ヘッダー値 %{session.oauth.client.last.id_token.name}
ヘッダー操作 [挿入]
ヘッダー名 agentid
ヘッダー値 %{session.oauth.client.last.id_token.extension_AgentGeo}

中かっこ内の APM セッション変数では、大文字と小文字が区別されます。 agentid を入力すると、Azure AD B2C 属性名が AgentID として送信されると、属性マッピングエラーが発生します。 属性を小文字で定義します。 Azure AD B2C では、ユーザー フローは、ポータルの属性名を使用して、ユーザーにさらに多くの属性を求めます。 そのため、小文字ではなく、文頭だけを大文字にする表記を使用します。

種類とヘッダーを含むシングル サインオン設定のスクリーンショット。

カスタマイズプロパティ

ユーザーが APM アクセス ポリシー フローに表示する画面の言語と外観をカスタマイズします。 画面のメッセージとプロンプトの編集、画面レイアウトの変更、色、画像、キャプション、説明、メッセージのローカライズを行います。

[ フォーム ヘッダー ] テキスト フィールドで、 F5 Networks 文字列を目的の名前に置き換えます。

セッション管理プロパティ

BIG-IP セッション管理設定を使用して、セッションを終了する条件またはセッションの続行を許可する条件を定義します。 ユーザーと IP アドレス、およびエラー ページの制限を設定します。 セッションを安全に終了するシングル ログアウト (SLO) を実装して、不正アクセスのリスクを軽減することをお勧めします。

デプロイ設定

[ デプロイ] を選択して設定をコミットし、BIG-IP オブジェクトと APM オブジェクトを作成します。これは、アプリケーションへのハイブリッド アクセスをセキュリティで保護します。 アプリケーションは、条件付きアクセスのターゲット リソースとして表示されます。 セキュリティを強化するには、アプリケーションへの直接アクセスをブロックし、BIG-IP 経由でパスを適用します。

詳細情報: Azure AD B2C の Identity Protection と条件付きアクセス

サインイン サインアップ フローをテストする

  1. ユーザーは、アプリケーションの外部 URL に移動します。
  2. BIG-IP の OAuth クライアント サインイン ページが表示されます。
  3. 承認コード付与を使用してサインインします。 この手順を削除するには、「 補足構成 」セクションを参照してください。
  4. Azure AD B2C テナントに対してサインアップして認証します。

次の画像は、ユーザーのサインイン ダイアログとサインインのウェルカム ページです。

ユーザー サインイン ダイアログ ボックスのスクリーンショット。

サインインのウェルカム ページのスクリーンショット。

セキュリティを強化するには、アプリケーションへの直接アクセスをブロックし、BIG-IP 経由でパスを適用します。

追加設定

シングル ログアウト (SLO)

Azure AD B2C では、ID プロバイダー (IdP) とアプリケーションのサインアウトがサポートされています。シングル サインアウトを参照してください。

SLO を実現するには、アプリケーションサインアウト関数を有効にして、Azure AD B2C サインアウト エンドポイントを呼び出します。 その後、Azure AD B2C は BIG-IP への最終的なリダイレクトを発行します。 このアクションにより、ユーザー アプリケーションの APM セッションが終了します。

別の SLO プロセスは、アプリケーションの [サインアウト ] ボタンを選択するときに、BIG-IP が要求をリッスンできるようにすることです。 要求を検出すると、Azure AD B2C サインアウト エンドポイントが呼び出されます。 この方法では、アプリケーションに変更を加えることはできません。

iRule BIG-IP 詳細については、 K42052145 の support.f5.com: URI 参照ファイル名に基づく自動セッション終了 (ログアウト) の構成を参照してください。

方法に関係なく、Azure AD B2C テナントが APM サインアウト エンドポイントを認識していることを確認します。

  1. ポータルで、[ 管理>Manifest] に移動します。
  2. logoutUrl プロパティを見つけます。 null を読み取ります。
  3. APM ポスト ログアウト URI を追加します。 https://<mysite.com>/my.logout.php3

<mysite.com> は、ヘッダーベースのアプリケーションの BIG-IP FQDN です。

最適化されたログイン フロー

ユーザー サインイン エクスペリエンスを向上させるには、Microsoft Entra 事前認証の前に表示される OAuth ユーザー サインイン プロンプトを抑制します。

  1. [アクセス]>[ガイド付き構成] に移動します。

  2. 行の右端にある 南京錠 アイコンを選択します。

  3. ヘッダーベースのアプリケーションは、厳密な構成のロックを解除します。

    [状態]、[名前]、[種類] の入力のスクリーンショット。また、南京錠アイコン。

厳密な構成のロックを解除すると、ウィザード UI を使用して変更できなくなります。 BIG-IP オブジェクトは、アプリケーションの公開されたインスタンスに関連付けられ、直接管理用に開かれています。

  1. Access>Profiles/Policies>Access Profiles (セッションごとのポリシー) に移動します。

  2. アプリケーション ポリシー オブジェクトの [Per-Session ポリシー ] 列で、[ 編集] を選択します。

    [アクセス ポリシー] の [アクセス] ダイアログの [編集] オプションのスクリーンショット。

  3. OAuth ログオン ページ ポリシー オブジェクトを削除するには、[X] を選択します。

  4. プロンプトで、前のノードに接続します。

    OAuth ログオン ページ ポリシー オブジェクトの [X] オプションのスクリーンショット。

  5. 左上隅の [ アクセス ポリシーの適用] を選択します。

  6. ビジュアル エディター タブを閉じます。

アプリケーションに接続しようとすると、Azure AD B2C サインイン ページが表示されます。

厳格モードを再度有効にして構成を展開すると、ガイド付き構成 UI の外部で実行された設定が上書きされます。 運用サービスの構成オブジェクトを手動で作成して、このシナリオを実装します。

トラブルシューティング

保護されたアプリケーションへのアクセスが禁止されている場合は、次のトラブルシューティング ガイダンスを使用します。

ログの詳細

BIG-IP ログには、認証と SSO の問題を切り分けるための情報が含まれています。 ログの詳細レベルを上げます。

  1. アクセス ポリシー>Overview>Event Logs>Settings に移動します。
  2. 発行したアプリケーションの行を選択し、編集をクリックして、>します。
  3. SSO の一覧から [ デバッグ] を選択します。
  4. [OK] を選択.
  5. ログを確認する前に、問題を再現してください。

完了したら、前の設定を元に戻します。

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

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

  1. Access>Overview>Access レポートに移動します。
  2. 過去 1 時間のレポートを実行する
  3. ログで手がかりを確認します。
  4. [ セッション変数の表示 ] リンクを選択します。
  5. APM が予想される Microsoft Entra 要求を受け取るかどうかを判断します。

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

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

  1. アクセス ポリシー>Overview>Active セッションに移動します。
  2. アクティブなセッションのリンクを選択します。
  3. [ 変数の表示] リンクを選択します。
  4. 根本原因を特定するために、特に BIG-IP APMが不正確なセッション属性を取得した場合は、レビューします。
  5. アプリケーション ログを使用して、属性をヘッダーとして受け取ったかどうかを理解します。

ガイド付き構成 v8 の既知の問題

ガイド付き構成 v8 を使用している場合、Azure AD B2C 認証が成功すると、既知の問題によって次のエラーが生成されます。 この問題は、AGC がデプロイ中に自動 JWT 設定を有効にしていない可能性があります。 APM は、現在のトークン署名キーを取得できません。 F5 エンジニアリングは根本原因を調査しています。

アクセス拒否エラー メッセージのスクリーンショット。

同じアクセス ログに詳細が表示されます。

ログ メッセージの詳細のスクリーンショット。

設定を手動で有効にする

  1. [アクセス]>[ガイド付き構成] に移動します。
  2. ヘッダー ベースのアプリケーションの行の右端で、 南京錠を選択します。
  3. Access>Federation>OAuth クライアント/リソース サーバー>Providers に移動します。
  4. Azure AD B2C 構成のプロバイダーを選択します。
  5. [ 自動 JWT を使用 する] チェック ボックスをオンにします。
  6. [ 検出] を選択します。
  7. 保存 を選択します。
  8. キー (JWT) フィールドには、OpenID URI メタデータからのトークン署名証明書キー ID (KID) があります。
  9. 左上隅にある [ アクセス ポリシーの適用] を選択します。
  10. を選択してを適用します。

詳細については、OAuth クライアントとリソース サーバーのトラブルシューティングのヒントの techdocs.f5.com を参照してください