Share via


Microsoft Entra シングル サインオンを Maverics Identity Orchestrator SAML Connector と統合する

注意事項

この記事では、間もなくサポート終了 (EOL) 状態になる Linux ディストリビューションである CentOS について説明します。 適宜、使用と計画を検討してください。 詳細については、「CentOS のサポート終了に関するガイダンス」を参照してください。

Strata の Maverics Identity Orchestrator には、認証とアクセス制御のために、オンプレミス アプリケーションを Microsoft Entra ID と統合する簡単な方法が用意されています。 Maverics Orchestrator を使用すると、現在、ヘッダー、Cookie、およびその他の独自の認証方法に依存しているアプリの認証と承認を最新化できます。 Maverics Orchestrator のインスタンスは、オンプレミスまたはクラウドにデプロイできます。

このハイブリッド アクセスのチュートリアルでは、レガシの Web アクセス管理製品によって現在保護されているオンプレミスの Web アプリケーションを移行し、認証とアクセス制御に Microsoft Entra ID を使う方法について説明します。 基本的な手順は次のとおりです。

  1. Maverics Orchestrator をセットアップする
  2. アプリケーションをプロキシする
  3. Microsoft Entra ID でエンタープライズ アプリケーションを登録する
  4. Azure を使用して認証し、アプリケーションへのアクセスを承認する
  5. シームレスなアプリケーション アクセスのためにヘッダーを追加する
  6. 複数のアプリケーションを使用する

前提条件

  • Microsoft Entra サブスクリプション。 サブスクリプションがない場合は、無料アカウントを取得できます。
  • Maverics Identity Orchestrator SAML Connector での SSO が有効なサブスクリプション。 Maverics ソフトウェアを入手するには、Strata の営業担当者にお問い合わせください。
  • ヘッダーベースの認証が使用されている少なくとも 1 つのアプリケーション。 この例では、https://app.connectulum.com でホストされている Connectulum という名前のアプリケーションを使って作業します。
  • Maverics Orchestrator をホストする Linux マシン
    • OS: RHEL 7.7 以降、CentOS 7 以降
    • ディスク: 10 GB 以上
    • メモリ: 4 GB 以上
    • ポート:22 (SSH/SCP)、443、7474
    • インストール/管理タスクでの root アクセス
    • Maverics Identity Orchestrator をホストしているサーバーから、保護されているアプリケーションへのネットワーク エグレス

手順 1: Maverics Orchestrator をセットアップする

Maverics をインストールする

  1. 最新の Maverics RPM を入手します。 Maverics ソフトウェアのインストール先となるシステムにパッケージをコピーします。

  2. maverics.rpm を実際のファイル名に置き換えて、Maverics パッケージをインストールします。

    sudo rpm -Uvf maverics.rpm

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

    sudo systemctl status maverics

  3. Orchestrator を再起動してログに従うには、次のコマンドを実行します。

    sudo service maverics restart; sudo journalctl --identifier=maverics -f

Maverics をインストールすると、既定の maverics.yaml ファイルが /etc/maverics ディレクトリに作成されます。 構成を編集して appgatewaysconnectors を含める前の構成ファイルは、こちらに示すようになります。

# © Strata Identity Inc. 2020. All Rights Reserved. Patents Pending.

version: 0.1
listenAddress: ":7474"

DNS を構成する

DNS によって、Orchestrator サーバーの IP を覚える必要がなくなります。

架空の Orchestrator IP である 12.34.56.78 を使用して、ブラウザー マシン (ノート PC) のホスト ファイルを編集します。 Linux ベースのオペレーティング システムでは、このファイルは /etc/hosts にあります。 Windows では、C:\windows\system32\drivers\etc にあります。

12.34.56.78 sonar.maverics.com
12.34.56.78 connectulum.maverics.com

DNS が想定どおりに構成されていることを確認するには、Orchestrator の状態エンドポイントに対して要求を行うことができます。 ブラウザーから、 http://sonar.maverics.com:7474/status を要求します。

TLS の構成

セキュリティを維持するには、セキュリティで保護されたチャネルを介して Orchestrator と通信することが重要です。 これを実現するには、tls セクションに証明書とキーのペアを追加します。

Orchestrator サーバーの自己署名証明書とキーを生成するには、/etc/maverics ディレクトリ内から次のコマンドを実行します。

openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out maverics.crt -keyout maverics.key

注意

運用環境では、ブラウザーでの警告を避けるために、既知の CA によって署名された証明書を使用できます。 信頼できる CA をお探しの場合は、Let's Encrypt は無料であり、お勧めできる選択肢です。

次に、Orchestrator 用の新しく生成された証明書とキーを使用します。 構成ファイルには、現在、こちらのコードが含まれています。

version: 0.1
listenAddress: ":443"

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

TLS が想定どおりに構成されていることを確認するには、Maverics サービスを再起動し、状態エンドポイントに対して要求を行います。

手順 2: アプリケーションをプロキシする

次に、appgateways を使用して、Orchestrator で基本的なプロキシを構成します。 この手順により、Orchestrator に、保護されたアプリケーションへの必要な接続があることを検証できます。

構成ファイルには、現在、こちらのコードが含まれています。

version: 0.1
listenAddress: ":443"

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

appgateways:
  - name: sonar
    location: /
    # Replace https://app.sonarsystems.com with the address of your protected application
    upstream: https://app.sonarsystems.com

プロキシが想定どおりに動作していることを確認するには、Maverics サービスを再起動し、Maverics プロキシ経由でアプリケーションに対して要求を行います。 必要に応じて、特定のアプリケーション リソースに対して要求を行うことができます。

手順 3: Microsoft Entra ID でエンタープライズ アプリケーションを登録する

次に、エンドユーザーの認証に使用される新しいエンタープライズ アプリケーションを Microsoft Entra ID 内に作成します。

Note

条件付きアクセスなどの Microsoft Entra 機能を使う場合は、オンプレミスのアプリケーションごとにエンタープライズ アプリケーションを作成することが重要です。 これにより、アプリごとの条件付きアクセス、アプリごとのリスク評価、アプリごとの割り当てられたアクセス許可などが許可されます。 一般に、Microsoft Entra ID のエンタープライズ アプリケーションは、Maverics の Azure コネクタにマップされます。

Microsoft Entra ID でエンタープライズ アプリケーションを登録するには:

  1. Microsoft Entra テナントで、[エンタープライズ アプリケーション] に移動し、[新しいアプリケーション] を選びます。 Microsoft Entra ギャラリーで、「Maverics Identity Orchestrator SAML Connector」を検索して選びます。

  2. Maverics Identity Orchestrator SAML Connector の [プロパティ] ペインで、 [ユーザーの割り当てが必要ですか?][いいえ] に設定して、ディレクトリ内のすべてのユーザーがアプリケーションを使用できるようにします。

  3. Maverics Identity Orchestrator SAML Connector の [概要] ペインで、 [シングル サインオンを設定する] を選択してから、 [SAML] を選択します。

  4. Maverics Identity Orchestrator SAML Connector の [SAML ベースのサインオン] ペインで、 [編集] (鉛筆アイコン) ボタンを選択して [基本的な SAML 構成] を編集します。

  5. エンティティ IDhttps://sonar.maverics.com を入力します。 エンティティ ID はテナント内のアプリ間で一意である必要があり、任意の値を指定できます。 この値は、次のセクションで Azure コネクタの samlEntityID フィールドを定義するときに使用します。

  6. 応答 URLhttps://sonar.maverics.com/acs を入力します。 この値は、次のセクションで Azure コネクタの samlConsumerServiceURL フィールドを定義するときに使用します。

  7. サインオン URLhttps://sonar.maverics.com/ を入力します。 このフィールドは Maverics には使われませんが、ユーザーが Microsoft Entra のマイ アプリ ポータルを介してアプリケーションにアクセスできるようにするには、Microsoft Entra ID で必要です。

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

  9. [SAML 署名証明書] セクションで、 [コピー] ボタンを選択して [アプリのフェデレーション メタデータ URL] の値をコピーし、お使いのコンピューターに保存します。

    [SAML 署名証明書] コピー ボタンのスクリーンショット。

手順 4: Azure を使用して認証し、アプリケーションへのアクセスを承認する

次に、Maverics で Azure コネクタを構成して、使用するために作成したばかりのエンタープライズ アプリケーションを配置します。 この connectors 構成と idps ブロックを組み合わせることで、Orchestrator ではユーザーを認証できます。

構成ファイルには、現在、次のコードが含まれています。 METADATA_URL は、前の手順で取得したアプリのフェデレーション メタデータ URL の値に必ず置き換えてください。

version: 0.1
listenAddress: ":443"

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

idps:
  - name: azureSonarApp

appgateways:
  - name: sonar
    location: /
    # Replace https://app.sonarsystems.com with the address of your protected application
    upstream: https://app.sonarsystems.com

    policies:
      - resource: /
        allowIf:
          - equal: ["{{azureSonarApp.authenticated}}", "true"]

connectors:
  - name: azureSonarApp
    type: azure
    authType: saml
    # Replace METADATA_URL with the App Federation Metadata URL
    samlMetadataURL: METADATA_URL
    samlConsumerServiceURL: https://sonar.maverics.com/acs
    samlEntityID: https://sonar.maverics.com

認証が想定どおりに動作していることを確認するには、Maverics サービスを再起動し、Maverics プロキシ経由でアプリケーション リソースに対して要求を行います。 リソースにアクセスする前に、認証のために Azure にリダイレクトされます。

手順 5: シームレスなアプリケーション アクセスのためにヘッダーを追加する

まだアップストリーム アプリケーションにヘッダーを送信しません。 Maverics プロキシを通過する要求に headers を追加して、アップストリーム アプリケーションでユーザーを識別できるようにしましょう。

構成ファイルには、現在、こちらのコードが含まれています。

version: 0.1
listenAddress: ":443"

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

idps:
  - name: azureSonarApp

appgateways:
  - name: sonar
    location: /
    # Replace https://app.sonarsystems.com with the address of your protected application
    upstream: https://app.sonarsystems.com

    policies:
      - resource: /
        allowIf:
          - equal: ["{{azureSonarApp.authenticated}}", "true"]

    headers:
      email: azureSonarApp.name
      firstname: azureSonarApp.givenname
      lastname: azureSonarApp.surname

connectors:
  - name: azureSonarApp
    type: azure
    authType: saml
    # Replace METADATA_URL with the App Federation Metadata URL
    samlMetadataURL: METADATA_URL
    samlConsumerServiceURL: https://sonar.maverics.com/acs
    samlEntityID: https://sonar.maverics.com

認証が想定どおりに動作していることを確認するには、Maverics プロキシ経由でアプリケーション リソースに対して要求を行います。 これで、保護されたアプリケーションでは要求でヘッダーを受信するようになりました。

アプリケーションで異なるヘッダーが想定されている場合は、ヘッダー キーを自由に編集してください。 SAML フローの一部として Microsoft Entra ID から返されるすべての要求は、ヘッダーで使用できます。 たとえば、別のヘッダー secondary_email: azureSonarApp.email を含めることができます。ここで、azureSonarApp はコネクタ名で、email は Microsoft Entra ID から返される要求です。

手順 6: 複数のアプリケーションを使用する

次に、別のホスト上にある複数のアプリケーションにプロキシするために必要なものを見てみましょう。 この手順を実行するには、別の App Gateway、Microsoft Entra ID 内の別のエンタープライズ アプリケーション、および別のコネクタを構成します。

構成ファイルには、現在、こちらのコードが含まれています。

version: 0.1
listenAddress: ":443"

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

idps:
  - name: azureSonarApp
  - name: azureConnectulumApp

appgateways:
  - name: sonar
    host: sonar.maverics.com
    location: /
    # Replace https://app.sonarsystems.com with the address of your protected application
    upstream: https://app.sonarsystems.com

    policies:
      - resource: /
        allowIf:
          - equal: ["{{azureSonarApp.authenticated}}", "true"]

    headers:
      email: azureSonarApp.name
      firstname: azureSonarApp.givenname
      lastname: azureSonarApp.surname

  - name: connectulum
    host: connectulum.maverics.com
    location: /
    # Replace https://app.connectulum.com with the address of your protected application
    upstream: https://app.connectulum.com

    policies:
      - resource: /
        allowIf:
          - equal: ["{{azureConnectulumApp.authenticated}}", "true"]

    headers:
      email: azureConnectulumApp.name
      firstname: azureConnectulumApp.givenname
      lastname: azureConnectulumApp.surname

connectors:
  - name: azureSonarApp
    type: azure
    authType: saml
    # Replace METADATA_URL with the App Federation Metadata URL
    samlMetadataURL: METADATA_URL
    samlConsumerServiceURL: https://sonar.maverics.com/acs
    samlEntityID: https://sonar.maverics.com

  - name: azureConnectulumApp
    type: azure
    authType: saml
    # Replace METADATA_URL with the App Federation Metadata URL
    samlMetadataURL: METADATA_URL
    samlConsumerServiceURL: https://connectulum.maverics.com/acs
    samlEntityID: https://connectulum.maverics.com

このコードで、App Gateway の定義に host フィールドが追加されていることが分かります。 host フィールドを使用することで、Maverics Orchestrator では、トラフィックのプロキシ先のアップストリーム ホストを区別できます。

新しく追加された App Gateway が想定どおりに動作していることを確認するには、 https://connectulum.maverics.com に対して要求を行います。

高度なシナリオ

ID の移行

有効期間が終了した Web アクセス管理ツールには我慢できないが、パスワードの一括リセットを行わずにユーザーを移行する方法がないとお考えですか。 Maverics Orchestrator では、migrationgateways を使用して ID の移行をサポートします。

Web サーバー ゲートウェイ

Maverics Orchestrator を使用してネットワークとプロキシのトラフィックをやり直したくないとお考えですか。 問題ありません。 Maverics Orchestrator では、Web サーバー ゲートウェイ (モジュール) と組み合わせることで、プロキシを使用せずに同じソリューションを提供できます。

まとめ

この時点で、Maverics Orchestrator をインストールし、Microsoft Entra ID 内にエンタープライズ アプリケーションを作成して構成し、保護されたアプリケーションにプロキシするように Orchestrator を構成し、さらに認証を要求してポリシーを適用しました。 Maverics Orchestrator を分散 ID 管理のユースケースに使用する方法の詳細については、Strata にお問い合わせください。

次のステップ