次の方法で共有


Strata を使用して Azure Active Directory B2C を構成するチュートリアル

重要

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

このチュートリアルでは、オンプレミスアプリケーションの保護に役立つ Strata Maverics Identity Orchestrator と Azure Active Directory B2C (Azure AD B2C) を統合する方法について説明します。 ID システムに接続し、ユーザーと資格情報を移行し、ポリシーと構成を同期し、認証とセッション管理を抽象化します。 Strata を使用して、アプリケーションを書き換えることなく、レガシから Azure AD B2C に移行します。

このソリューションには次の利点があります。

  • オンプレミスハイブリッド アプリへの顧客シングル サインオン (SSO) - Azure AD B2C では、Maverics Identity Orchestrator に対する顧客 SSO がサポートされます
    • ユーザーは、Azure AD B2C または ID プロバイダー (IdP) でホストされているアカウントでサインインします
    • Maverics は、従来、Symantec SiteMinder などのレガシ ID システムによってセキュリティ保護されたアプリへの SSO を証明します
  • 標準 SSO をアプリに拡張する - Azure AD B2C を使用してユーザー アクセスを管理し、Maverics Identity Orchestrator Security Assertion Markup Language (SAML) または OpenID Connect (OIDC) コネクタで SSO を有効にする
  • 簡単な構成 - Maverics Identity Orchestrator SAML または OIDC コネクタを Azure AD B2C に接続する

[前提条件]

作業を開始するには、以下が必要です。

  • Azure サブスクリプションにリンクされた Azure AD B2C テナント
  • Maverics Identity Orchestrator によって使用されるシークレットを格納するための Azure Key Vault のインスタンス。 Azure AD B2C またはライトウェイト ディレクトリ アクセス プロトコル (LDAP) ディレクトリやデータベースなどの他の属性プロバイダーに接続します。
  • Azure 仮想マシン (VM) またはオンプレミス サーバーで実行されている Maverics Identity Orchestrator のインスタンス。 ソフトウェアとドキュメントを入手するには、「 Strata.io Strata Identity に問い合わせる」を参照してください。
  • Azure AD B2C に移行するオンプレミス アプリケーション

シナリオの説明

Maverics Identity Orchestrator の統合には、次のコンポーネントが含まれています。

  • Azure AD B2C - ユーザー資格情報を検証する承認サーバー
    • 認証されたユーザーは、Azure AD B2C ディレクトリ内のローカル アカウントを使用してオンプレミス アプリにアクセスします
  • 外部ソーシャルまたはエンタープライズ ID プロバイダー (IdP):OIDC プロバイダー、Facebook、Google、または GitHub
  • Strata Maverics Identity Orchestrator: HTTP ヘッダーを介してアプリに ID を渡すユーザー サインオン サービス

次のアーキテクチャ図は、実装を示しています。

ハイブリッド アプリにアクセスするための、Maverics Identity Orchestrator を使用した Azure AD B2C 統合アーキテクチャの図。

  1. ユーザーは、オンプレミスでホストされているアプリケーションへのアクセスを要求します。 Maverics Identity Orchestrator は、アプリケーションに要求をプロキシします。
  2. オーケストレーターは、ユーザー認証の状態を確認します。 セッション トークンがない場合、またはトークンが無効な場合、ユーザーは認証のために Azure AD B2C にアクセスします
  3. Azure AD B2C は、構成されたソーシャル IdP に認証要求を送信します。
  4. IdP はユーザーに資格情報を要求します。 多要素認証 (MFA) が必要な場合があります。
  5. IdP は、認証応答を Azure AD B2C に送信します。 ユーザーは、Azure AD B2C ディレクトリにローカル アカウントを作成できます。
  6. Azure AD B2C は、Azure AD B2C テナントでの Orchestrator アプリの登録中に指定されたエンドポイントにユーザー要求を送信します。
  7. Orchestrator は、アプリに転送される HTTP ヘッダーのアクセス ポリシーと属性値を評価します。 オーケストレーターは、他の属性プロバイダーを呼び出して、ヘッダー値を設定する情報を取得する場合があります。 Orchestrator は、要求をアプリに送信します。
  8. ユーザーは認証され、アプリにアクセスできます。

メイバリックス・アイデンティティ・オーケストレーター

ソフトウェアとドキュメントを入手するには、「 Strata.io Strata Identity に問い合わせる」を参照してください。 Orchestrator の前提条件を決定します。 インストールして構成します。

Azure AD B2C テナントを構成する

次の手順の間に、記録してください。

  • テナント名と識別子
  • クライアントID
  • クライアント シークレット
  • 構成済みの要求
  • リダイレクト URI
  1. Azure AD B2C テナントの Azure Active Directory B2C に Web アプリケーションを登録 します。
  2. アプリケーションに Microsoft MS Graph API のアクセス許可を付与します。 アクセス許可を使用する: offline_accessopenid
  3. Orchestrator Azure AD B2C コネクタ構成の oauthRedirectURL パラメーターに一致するリダイレクト URI を追加します (例: https://example.com/oidc-endpoint)。
  4. Azure Active Directory B2C でユーザー フローとカスタム ポリシーを作成します。
  5. Azure Active Directory B2C テナントに ID プロバイダーを追加します。 ローカル アカウント、ソーシャル アカウント、または企業を使用してユーザーをサインインさせます。
  6. サインアップ時に収集する属性を定義します。
  7. Orchestrator インスタンスを使用してアプリケーションに返される属性を指定します。

Orchestrator は、Azure AD B2C によって返された要求の属性を使用し、LDAP ディレクトリやデータベースなどの接続された ID システムから属性を取得できます。 これらの属性は HTTP ヘッダー内にあり、アップストリームのオンプレミス アプリケーションに送信されます。

Maverics Identity Orchestrator の構成

Orchestrator インスタンスを構成するには、次のセクションの手順に従います。

Maverics Identity Orchestrator サーバーの要件

オンプレミスでも、Azure、AWS、GCP などのプロバイダーによるパブリック クラウド インフラストラクチャでも、任意のサーバーで Orchestrator インスタンスを実行できます。

  • オペレーティング システム: RHEL 7.7 以降
  • ディスク: 10 GB (小)
  • メモリ: 16 GB
  • ポート: 22 (SSH/SCP)、443、80
  • ルート アクセス: インストール/管理タスクの場合
  • Maverics Identity Orchestrator: maverics の下でユーザー systemd として実行されます
  • ネットワーク エグレス: Microsoft Entra テナントに到達できる Maverics Identity Orchestrator をホストしているサーバーから

Maverics Identity Orchestrator のインストール

  1. 最新の Maverics RPM パッケージを入手します。

  2. Maverics をインストールするシステムにパッケージを配置します。 リモート ホストにコピーする場合は、SSH scp を使用します。

  3. 次のコマンドを実行します。 実際のファイル名を使って maverics.rpm を置き換えます。

    sudo rpm -Uvf maverics.rpm

    既定では、Maverics は /usr/local/bin ディレクトリにあります。

  4. Maverics は、 systemdでサービスとして実行されます。

  5. Maverics サービスが実行されていることを確認するには、次のコマンドを実行します。

    sudo service maverics status

  6. 次のようなメッセージが表示されます。

Redirecting to /bin/systemctl status maverics.service
  maverics.service - Maverics
  Loaded: loaded (/etc/systemd/system/maverics.service; enabled; vendor preset: disabled)
  Active: active (running) since Thu 2020-08-13 16:48:01 UTC; 24h ago
  Main PID: 330772 (maverics)
  Tasks: 5 (limit: 11389)
  Memory: 14.0M
  CGroup: /system.slice/maverics.service
          └─330772 /usr/local/bin/maverics --config /etc/maverics/maverics.yaml

Maverics の起動に失敗した場合は、次のコマンドを実行します。

journalctl --unit=maverics.service --reverse

最新のログ エントリが出力に表示されます。

  1. 既定の maverics.yaml ファイルは、 /etc/maverics ディレクトリに作成されます。
  2. アプリケーションを保護するように Orchestrator を構成します。
  3. Azure AD B2C と統合し、格納します。
  4. Azure Key Vault からシークレットを取得します。
  5. Orchestrator が構成を読み取る場所を定義します。

環境変数を使用して構成を指定する

環境変数を使用して Orchestrator インスタンスを構成します。

MAVERICS_CONFIG

この環境変数は、Orchestrator インスタンスに使用する YAML 構成ファイルと、起動時または再起動時に見つける場所を通知します。 環境変数を /etc/maverics/maverics.env に設定します。

Orchestrator TLS 構成を作成する

tlsmaverics.yaml フィールドは、Orchestrator インスタンスが使用するトランスポート層セキュリティ構成を宣言します。 コネクタでは、TLS オブジェクトと Orchestrator サーバーが使用されます。

maverics キーは Orchestrator サーバー用に予約されています。 他のキーを使用して、TLS オブジェクトをコネクタに挿入します。

tls:
  maverics:
    certFile: /etc/maverics/maverics.cert
    keyFile: /etc/maverics/maverics.key

Azure AD B2C コネクタを構成する

オーケストレーターは、コネクタを使用して認証および属性プロバイダーと統合します。 Orchestrators App Gateway は、認証および属性プロバイダーとして Azure AD B2C コネクタを使用します。 Azure AD B2C はソーシャル IdP を使って認証を行い、その後、属性をオーケストレーターに提供して、HTTP ヘッダー内のクレームセットとして渡します。

コネクタの構成は、Azure AD B2C テナントに登録されているアプリに対応します。

  1. アプリ構成から、クライアント ID、クライアント シークレット、リダイレクト URI をテナントにコピーします。
  2. コネクタ名を入力します (例: azureADB2C)。
  3. コネクタ typeazureに設定します。
  4. コネクタ名を書き留めます。 この値は、他の構成パラメーターで使用します。
  5. authTypeoidc に設定します。
  6. oauthClientID パラメーターには、コピーしたクライアント ID を設定します。
  7. oauthClientSecret パラメーターには、コピーしたクライアント シークレットを設定します。
  8. oauthRedirectURL パラメーターには、コピーしたリダイレクト URI を設定します。
  9. Azure AD B2C OIDC コネクタは、OIDC エンドポイントを使用して、URL や署名キーなどのメタデータを検出します。 テナント エンドポイントには、 oidcWellKnownURLを使用します。
connectors:
  name: azureADB2C
  type: azure
  oidcWellKnownURL: https://<tenant name>.b2clogin.com/<tenant name>.onmicrosoft.com/B2C_1_login/v2.0/.well-known/openid-configuration
  oauthRedirectURL: https://example.com/oidc-endpoint
  oauthClientID: <azureADB2CClientID>
  oauthClientSecret: <azureADB2CClientSecret>
  authType: oidc

認証プロバイダーとして Azure AD B2C を定義する

認証プロバイダーは、アプリ リソース要求中に有効なセッションを提示しないユーザーの認証を決定します。 Azure AD B2C テナント構成によって、ユーザーが資格情報に対してどのようにチャレンジされるかが決まりますが、他の認証ポリシーが適用されます。 たとえば、認証を完了し、認証後に Orchestrator App Gateway に返される内容を決定するために、2 番目の要素を要求します。

authProviderの値は、コネクタのnameの値と一致している必要があります。

authProvider: azureADB2C

Orchestrator App Gateway を使用してオンプレミス アプリを保護する

Orchestrator App Gateway 構成では、Azure AD B2C がアプリケーションを保護する方法と、ユーザーがアプリにアクセスする方法を宣言します。

  1. アプリ ゲートウェイ名を入力します。
  2. location を設定します。 この例では、アプリ ルート /を使用します。
  3. upstreamで保護されたアプリケーションを定義します。 host:port 規則: https://example.com:8080を使用します。
  4. エラー ページと未承認ページの値を設定します。
  5. 認証と制御を確立するために、アプリケーションの HTTP ヘッダー名と属性値を定義します。 ヘッダー名は通常、アプリの構成に対応します。 属性値はコネクタによって名前空間付けされます。 この例では、Azure AD B2C から返される値の前にコネクタ名 azureADB2Cが付いています。 サフィックスは、 given_nameなど、必要な値を持つ属性名です。
  6. ポリシーを設定します。 allowUnauthenticatedallowAnyAuthenticatedallowIfAnyの 3 つのアクションが定義されています。 各アクションは、 resourceに関連付けられます。 その resourceに対してポリシーが評価されます。

headerspolicies は、JavaScript または GoLang のサービス拡張機能を使用して任意のロジックを実装します。

appgateways:
  - name: Sonar
    location: /
    upstream: https://example.com:8080
    errorPage: https://example.com:8080/sonar/error
    unauthorizedPage: https://example.com:8080/sonar/accessdenied

    headers:
      SM_USER: azureADB2C.sub
      firstname: azureADB2C.given_name
      lastname: azureADB2C.family_name

    policies:
      - resource: ~ \.(jpg|png|ico|svg)
        allowUnauthenticated: true
      - resource: /
        allowAnyAuthenticated: true
      - resource: /sonar/daily_deals
        allowIfAny:
          azureADB2C.customAttribute: Rewards Member

シークレット プロバイダーとしての Azure Key Vault

Orchestrator が Azure AD B2C やその他の ID システムに接続するために使用するシークレットをセキュリティで保護します。 Maverics は maverics.yamlからプレーン テキストでシークレットを読み込みますが、このチュートリアルでは、シークレット プロバイダーとして Azure Key Vault を使用します。

クイック スタート: Azure Portal を使用して Azure Key Vault からシークレットを設定および取得する」の手順に従います。 シークレットを保管庫に追加し、各シークレットのSECRET NAME をメモします。 たとえば、AzureADB2CClientSecret のようにします。

maverics.yaml構成ファイルで値をシークレットとして宣言するには、山かっこで囲んでシークレットをラップします。

connectors:
  - name: AzureADB2C
    type: azure
    oauthClientID: <AzureADB2CClientID>
    oauthClientSecret: <AzureADB2CClientSecret>

角かっこ内の値は、Azure Key Vaultのシークレットに指定されたSECRET NAMEと一致している必要があります。

Azure Key Vault からシークレットを読み込むには、azure-credentials.json ファイル内の資格情報を使用して、ファイル MAVERICS_SECRET_PROVIDER/etc/maverics/maverics.env環境変数を設定します。 次のパターンを使用します。

MAVERICS_SECRET_PROVIDER='azurekeyvault://<KEYVAULT NAME>.vault.azure.net?clientID=<APPID>&clientSecret=<PASSWORD>&tenantID=<TENANT>'

構成を完了する

次の情報は、Orchestrator の構成がどのように表示されるかを示しています。

version: 0.4.2
listenAddress: ":443"
tls:
  maverics:
    certFile: certs/maverics.crt
    keyFile: certs/maverics.key

authProvider: azureADB2C

connectors:
  - name: azureADB2C
    type: azure
    oidcWellKnownURL: https://<tenant name>.b2clogin.com/<tenant name>.onmicrosoft.com/B2C_1_login/v2.0/.well-known/openid-configuration
    oauthRedirectURL: https://example.com/oidc-endpoint
    oauthClientID: <azureADB2CClientID>
    oauthClientSecret: <azureADB2CClientSecret>
    authType: oidc

appgateways:
  - name: Sonar
    location: /
    upstream: http://example.com:8080
    errorPage: http://example.com:8080/sonar/accessdenied
    unauthorizedPage: http://example.com:8080/sonar/accessdenied

    headers:
      SM_USER: azureADB2C.sub
      firstname: azureADB2C.given_name
      lastname: azureADB2C.family_name

    policies:
      - resource: ~ \.(jpg|png|ico|svg)
        allowUnauthenticated: true
      - resource: /
        allowAnyAuthenticated: true
      - resource: /sonar/daily_deals
        allowIfAny:
          azureADB2C.customAttribute: Rewards Member

フローをテストする

  1. オンプレミスのアプリケーション URL ( https://example.com/sonar/dashboard) に移動します。
  2. Orchestrator は、ユーザー フロー ページにリダイレクトします。
  3. 一覧から IdP を選択します。
  4. IdP で必要な場合は、MFA トークンを含む資格情報を入力します。
  5. アプリ要求を Orchestrator リダイレクト URI に転送する Azure AD B2C にリダイレクトされます。
  6. Orchestrator はポリシーを評価し、ヘッダーを計算します。
  7. 要求されたアプリケーションが表示されます。

次のステップ