すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:Elasticsearch クラスターの SSO を実装する

最終更新日:Jan 11, 2025

Alibaba Cloud Elasticsearch では、Elasticsearch クラスターの Kibana コンソールへのシングルサインオン (SSO) を実行できます。 Elasticsearch クラスターに対して Security Assertion Markup Language (SAML) 認証を有効にすると、SAML 2.0 に準拠したID プロバイダー (IdP) を使用して、クラスターとその Kibana コンソールにアクセスできます。 このトピックでは、SAML IdP を構成し、Kibana を SAML サービスプロバイダー (SP) として構成して、Elasticsearch クラスターの Kibana コンソールへの SAML SSO を実装する方法について説明します。

背景情報

SAML では、Kibana は SP として機能し、Web ブラウザーに基づいて SAML 2.0 SSO を構成し、SAML 2.0 シングルログアウト (SLO) を構成できます。 これにより、Alibaba Cloud Identity as a Service (IDaaS) や Active Directory Federation Service (AD FS) などの SAML 2.0 に準拠した IdP を使用して、Elasticsearch と Kibana にアクセスできます。 この例では、IDaaS が IdP として使用されます。

説明
  • SSO:

    SSO は、ワンタイム ID 認証で複数のアプリケーションと Web サイトにログオンできる認証ソリューションです。 ログオン後、相互に信頼されたすべてのアプリケーションシステムにアクセスできます。

  • SAML:

    SAML は、レルム全体で SSO を実装する XML ベースのオープンスタンダードです。 SAML は、アサーションを含むセキュリティトークンを使用して、IdP と SP の間で ID 情報を転送します。 SAML は堅牢な ID 認証プロトコルです。 パブリッククラウドとプライベートクラウドで広く使用されています。

  • IDaaS:

    IDaaS は、企業向けに ID、権限、およびアプリケーションの管理を提供する集中型プラットフォームです。 IDaaS は、従業員 ID およびアクセス管理 (EIAM) や顧客 ID およびアクセス管理 (CIAM) などのさまざまなサービスをサポートしています。

前提条件

  • Alibaba Cloud Elasticsearch クラスターが作成され、クラスターに対して HTTPS が有効になっています。 この例では、Alibaba Cloud Elasticsearch V7.10 クラスターが使用されます。 Elasticsearch クラスターの SSO を実装するために必要な操作と構成は、バージョンによって異なります。

    説明
  • IDaaS EIAM インスタンスが作成されています。

    説明

    Elasticsearch は、SAML 認証リクエストに HTTP-Redirect バインディングのみをサポートしており、HTTP-POST バインディングなどの他のメソッドはサポートしていません。 デバイスが IdP と SP にアクセスできることを確認するだけで済みます。

インターネット経由で Kibana にアクセスするために使用されるポート 443

手順

説明

クラスターの SAML 認証を有効にすると、システムはクラスターを再起動して変更を有効にします。 変更による影響を軽減するために、オフピーク時に SAML 認証を有効にすることをお勧めします。

  1. Alibaba Cloud Elasticsearch コンソール にログオンします。

  2. 左側のナビゲーションペインで、[elasticsearch クラスター] をクリックします。

  3. 目的のクラスターに移動します。

    1. 上部のナビゲーションバーで、クラスターが属するリソースグループとクラスターが存在するリージョンを選択します。

    2. [elasticsearch クラスター] ページで、クラスターを見つけて ID をクリックします。

  4. 表示されるページの左側のナビゲーションペインで、[構成と管理] > [セキュリティ] を選択します。

  5. [アクセス設定] セクションで、[SAML 認証] をオンにします。

    説明

    クラスターに対して HTTPS が有効になっていない場合は、最初にクラスターに対して HTTPS を有効にするように求めるメッセージが表示されます。

  6. [SAML 認証の有効化] パネルで、SAML アプリケーションを構成します。

    1. [SAML アプリケーションの構成] ステップで、[アクセスタイプ] を構成します。 この例では、[インターネット経由で Kibana にアクセス] が選択されています。

    2. IdP メタデータをダウンロードします。 詳細については、「IDaaS SAML アプリケーションを構成する」をご参照ください。

      説明

      [SAML アプリケーションの構成] ステップで、Assertion Consumer Service (ACS) URL と SP の一意の ID を取得できます。

    3. IdP メタデータをアップロードします。

    4. [次へ] をクリックします。

  7. Elasticsearch カスタムロールを関連付けます。

    1. [elasticsearch カスタムロールの関連付け] ステップで、クラスターへのアクセスに使用するパスワードを入力します。

      • ロール名: このパラメーターの値はデフォルトで es_saml1_default であり、変更できません。

      • ロール権限: デフォルトでは、es_saml1_default ロールにはすべての権限があります。 きめ細かい権限を構成する場合は、ロールの作成後に Kibana コンソールでロールの権限を変更できます。 詳細については、「Elasticsearch X-Pack が提供する RBAC メカニズムを使用してアクセス制御を実装する」をご参照ください。

      • Elasticsearch クラスターパスワード: ロールを作成する権限があるかどうかを確認するために、クラスターへのアクセスに使用するパスワードを入力します。

    2. [ロールの作成と関連付け] をクリックします。

      ロールを作成し、SAML アプリケーションにマッピングします。

    3. [次へ] をクリックします。

  8. クラスターの YML ファイルを構成します。

    カテゴリ

    パラメーター

    説明

    SAML 情報

    認証レルム

    このパラメーターの値はデフォルトで saml1 であり、変更できません。

    order

    レルムの優先順位。 値が小さいほど優先順位が高くなります。 このパラメーターの値はデフォルトで 2 であり、変更できません。

    idp.entity_id

    IdP の ID。

    sp.entity_id

    Kibana の一意の ID。 このパラメーターの値は、SAML アプリケーションに構成されている SP エンティティ ID パラメーターの値と同じである必要があります。 Kibana を IdP の SP として構成する場合は、このパラメーターが必要です。

    sp.acs

    ACS URL。 IdP から認証情報を受信するために使用されます。 このパラメーターの値は、SAML アプリケーションに構成されている ACS URI パラメーターの値と同じである必要があります。

    attributes.principal

    nameid:persistent などのアサーション情報。 詳細については、「属性マッピング」をご参照ください。

    attributes.groups

    ロールなどのアサーション情報。 詳細については、「属性マッピング」をご参照ください。

    詳細設定

    基本ユーザーとして Kibana にログオンする

    有効な値: 通常表示とエントリを表示しない。 デフォルト値: 通常表示。

    SAML ベースの Kibana ログオンの説明

    SAML ベースの Kibana ログオンの説明。

    説明
    • パラメーターが構成されると、システムはバックエンドで識別できる標準 YML 形式で構成を生成し、構成に基づいてクラスターの YML 構成ファイルを変更します。

    • idp.metadata.path などのその他のパラメーターは自動的に生成され、編集および変更することはできません。 idp.metadata.path パラメーターは、バックエンドで構成する必要がある XML ファイルパスを示します。

  9. [完了] をクリックします。

    ページの上部に [有効] メッセージが表示された場合、SAML 認証が有効になり、クラスターが再起動されています。

  10. クラスターの再起動後、クラスターの Kibana コンソールへの SSO を確認します。

    1. 左側のナビゲーションペインで、[構成と管理] > [データの視覚化] を選択します。

    2. 表示されるページの [kibana] セクションで、[インターネット経由でアクセス] をクリックします。

    3. 表示されるページで、[elasticsearch でログイン] をクリックします。

    4. ユーザー名とパスワードを入力し、[ログイン] をクリックします。

      Kibana コンソールのホームページが表示されます。

    説明

IDaaS SAML アプリケーションを構成する

  1. IDaaS コンソール にログオンします。

  2. EIAM ページで EIAM インスタンスを見つけて、インスタンス ID をクリックします。

  3. SAML アプリケーションを追加します。

    1. クイックスタートページの左側のナビゲーションペインで、[アプリケーション] をクリックします。

    2. [アプリケーション] ページで、[アプリケーションの追加] をクリックします。

    3. [アプリケーションの追加] ページで、[標準プロトコル] タブをクリックします。

    4. [SAML 2.0] カードで、[アプリケーションの追加] をクリックします。

    5. [アプリケーションの追加 - SAML] ダイアログボックスの [アプリケーション名] フィールドに、アプリケーションの名前を入力します。 次に、[追加] をクリックします。

  4. [サインイン] タブの [SSO] サブタブで、[アプリケーションの SSO 設定] を構成します。

    次の表で説明されているパラメーターを構成する必要があります。 その他のパラメーターについては、デフォルト値を保持できます。 パラメーターの詳細については、SAML 2.0 SSO 構成トピックの IDaaS パラメーター をご参照ください。

    カテゴリ

    パラメーター

    説明

    基本設定

    [ACS URL]

    ACS URL。 IdP から認証情報を受信するために使用されます。 ACS URL は、Elasticsearch コンソールの [SAML 認証の有効化] パネルの [SAML アプリケーションの構成] ステップで取得できます。

    [SP エンティティ ID]

    SP の一意の ID。 この例では、SP は Kibana です。 ID は、Elasticsearch コンソールの [SAML 認証の有効化] パネルの [SAML アプリケーションの構成] ステップで取得できます。

    [承認]

    承認スコープ。

    このパラメーターを [手動] に設定した場合は、[サインイン] タブの [承認] サブタブで承認を実行する必要があります。

    詳細設定

    [nameidformat]

    ドロップダウンリストから [2.0 Persistent] を選択します。

  5. [アプリケーション設定] セクションで、[idp メタデータ] パラメーターの値の横にある [ダウンロード] をクリックします。

  6. [保存] をクリックしてアプリケーションを保存します。

その他の操作

クラスターの [セキュリティ] ページの [アクセス設定] セクションで、SAML 認証に関連する構成を表示または変更したり、SAML 認証を無効にしたりできます。

操作

手順

SAML 認証に関連する構成を表示する

[SAML 認証] の横にある [変更] をクリックします。

SAML 認証に関連する構成を変更する

[SAML 認証] の横にある [変更] をクリックします。

  • [SAML 認証構成の変更] パネルで、[elasticsearch 構成] セクションの右上隅にある [編集] をクリックして、IdP メタデータを再度アップロードするか、YML ファイルを変更します。 変更後、システムはクラスターを再起動します。

  • [Elasticsearch カスタムロールの関連付け] セクションの構成は変更できません。 Kibana コンソールで es_saml1_default ロールの権限を変更できます。

  • [SAML 認証構成の変更] パネルで、[kibana 構成] セクションの右上隅にある [編集] をクリックして、Kibana コンソールへのログオンに関連する構成を変更します。 構成を変更すると、システムは Kibana ノードを再起動します。

SAML 認証を無効にする

[セキュリティ] ページの [アクセス設定] セクションで、[SAML 認証] をオフにします。 表示されるダイアログボックスで、[OK] をクリックします。 次に、システムはクラスターを再起動して変更を有効にします。

説明

SAML 認証が無効になると、関連する構成が削除されます。

インターネット経由で Kibana にアクセスするために使用されるポート 5601

ステップ 1: IDaaS SAML アプリケーションを構成する

  1. IDaaS コンソール にログオンします。

  2. EIAM ページで EIAM インスタンスを見つけて、インスタンス ID をクリックします。

  3. SAML アプリケーションを追加します。

    1. クイックスタートページの左側のナビゲーションペインで、[アプリケーション] をクリックします。

    2. [アプリケーション] ページで、[アプリケーションの追加] をクリックします。

    3. [アプリケーションの追加] ページで、[標準プロトコル] タブをクリックします。

    4. [SAML 2.0] カードで、[アプリケーションの追加] をクリックします。

    5. [アプリケーションの追加 - SAML] ダイアログボックスの [アプリケーション名] フィールドに、アプリケーションの名前を入力します。 次に、[追加] をクリックします。

  4. [サインイン] タブの [SSO] サブタブで、[アプリケーションの SSO 設定] を構成します。

    次の表で説明されているパラメーターを構成する必要があります。 その他のパラメーターについては、デフォルト値を保持できます。 パラメーターの詳細については、SAML 2.0 SSO 構成トピックの IDaaS パラメーター をご参照ください。

    カテゴリ

    パラメーター

    説明

    基本設定

    [ACS URL]

    ACS URL。 IdP から認証情報を受信するために使用されます。 ACS URL は、SAML アプリケーションの HTTP-POST バインディングのみをサポートしています。 ほとんどの場合、このパラメーターは ${kibana-url}:5601/api/security/v1/saml 形式で構成できます。

    [SP エンティティ ID]

    SP の一意の ID。 この例では、SP は Kibana です。 このパラメーターは ${kibana-url}:5601 形式で構成する必要があります。

    [承認]

    承認スコープ。 このパラメーターを [手動] に設定した場合は、[サインイン] タブの [承認サブタブで承認を実行する必要があります。

    詳細設定

    [nameidformat]

    ドロップダウンリストから [2.0 Persistent] を選択します。

    説明
  5. [アプリケーション設定] セクションで、[idp メタデータ] パラメーターの値の横にある [ダウンロード] をクリックします。

    IDaaS SAML メタデータは、後で使用するために構成ファイルとしてダウンロードされます。

ステップ 2: Elasticsearch でカスタムロールを作成し、SAML 情報を構成する

  1. Elasticsearch クラスターの Kibana コンソールにログオンします。詳細については、「Kibana コンソールにログオンする」をご参照ください。

  2. カスタムロールを作成します。 詳細については、「Elasticsearch X-Pack が提供する RBAC メカニズムを使用してアクセス制御を実装する」をご参照ください。

  3. ロールを SAML アプリケーションにマッピングします。

    <admin_role> は、前の手順で作成したロールの名前に置き換える必要があります。

    PUT /_security/role_mapping/idaas-test
    {
      "roles": "<admin_role>" , // ロールの名前
      "enabled": true,
      "rules": {
        "field": { "realm.name": "saml1" }
      }
    }
  4. Elasticsearch と Kibana の YML 構成ファイルに SAML 情報を追加します。

    説明

    YML 構成ファイルに追加する SAML 情報は、IDaaS SAML アプリケーションを構成する で構成された SAML 情報と一致している必要があります。

    • Elasticsearch の YML 構成ファイル

      # Elasticsearch の YML 構成ファイル
      
      xpack.security.authc.token.enabled: 'true'
      xpack.security.authc.realms.saml.saml1:
        order: 2
        idp.metadata.path: saml/metadata.xml
        idp.entity_id: "https://es-cn-n6xxxxxx1d.elasticsearch.aliyuncs.com/"
        sp.entity_id: "https://es-cn-n6xxxxxx1d.kibana.elasticsearch.aliyuncs.com:5601/"
        sp.acs: "https://es-cn-n6xxxxxx1d.kibana.elasticsearch.aliyuncs.com:5601/api/security/v1/saml"
        attributes.principal: "nameid:persistent"
        attributes.groups: "roles"

      パラメーター

      説明

      xpack.security.authc.token.enabled

      トークンサービスを有効にするかどうかを指定します。 SAML SSO を構成するには、このパラメーターを true に設定する必要があります。 トークンサービスを有効にする方法の詳細については、「saml-enable-token」をご参照ください。

      xpack.security.authc.realms.saml.saml1

      ID 認証レルム。 この例では、このパラメーターを saml1 に設定します。 レルムの詳細については、「レルム」をご参照ください。

      order

      レルムの優先順位。 値が小さいほど優先順位が高くなります。

      説明

      Elasticsearch V8.X クラスターの場合、このパラメーターの値は異なるリクエスト間で一意である必要があります。 このパラメーターを 2 に設定することをお勧めします。

      idp.metadata.path

      IdP 用に保存したメタデータ構成ファイルのパス。

      idp.entity_id

      IdP の ID。 ID は、メタデータ構成ファイルの EntityID 属性と一致する必要があります。

      sp.entity_id

      Kibana の一意の ID。 このパラメーターの値は、SAML アプリケーションの構成の [SP エンティティ ID] パラメーターの値と同じである必要があります。 Kibana を IdP の SP として追加する場合は、このパラメーターが必要です。 このパラメーターを Kibana のパブリック URL に設定することをお勧めします。SP エンティティ ID

      重要

      このパラメーターの値がビジネス環境の情報と一致していることを確認してください。 URL ではなくリバースプロキシを使用して Kibana にアクセスする場合は、このパラメーターでリバースプロキシのエンドポイントとポート番号を指定する必要があります。

      sp.acs

      ACS URL。 IdP から認証情報を受信するために使用されます。 このパラメーターの値は、SAML アプリケーションの構成の [ACS URL] パラメーターの値と同じである必要があります。 ACS URL は、SAML アプリケーションの HTTP-POST バインディングのみをサポートしています。 ほとんどの場合、このパラメーターは ACS URL${kibana-url}:5601/api/security/v1/saml 形式で構成できます。

      説明

      ${kibana-url} は、Kibana のパブリック URL を示します。

      attributes.principal

      アサーション情報。 詳細については、「属性マッピング」をご参照ください。

      attributes.groups

      アサーション情報。 詳細については、「属性マッピング」をご参照ください。

    • Kibana の YML 構成ファイル

      # Kibana の YML 構成ファイル
      
      xpack.security.authc.providers:
        saml.saml1:
          order: 0
          realm: "saml1"
        basic.basic1:
          order: 1
          icon: "logoElasticsearch"
          hint: "Typically for administrators" // 通常は管理者向け
      
      
      

      パラメーター

      説明

      xpack.security.authc.providers

      SAML アプリケーションのプロバイダー。 このパラメーターは、SAML SSO を Kibana の ID 認証方法として使用することを指定します。

      xpack.security.authc.providers.saml.<provider-name>.realm

      SAML 認証レルム。 <provider-name> を Elasticsearch の YML 構成ファイルで指定したレルムに置き換えます。 この例では、saml1 が使用されています。

      xpack.security.authc.providers.basic.basic1

      Kibana の YML 構成ファイルで SAML 情報を構成した後、SAML 認証に合格したユーザーのみが Kibana にアクセスできます。 基本ユーザーとして Kibana コンソールにログオンするには、basic.basic1 の構成項目の値を指定できます。 基本ユーザーとして Kibana コンソールへのログオンをテストする場合は、elastic ユーザー名とそのパスワードを使用して Elasticsearch クラスターにログオンし、ロールを作成してから、ロールを SAML アプリケーションにマッピングする必要がある場合があります。 basic.basic1 の構成項目の値を指定すると、Kibana ログオンページに、基本ユーザーとして Kibana コンソールにログオンするためのエントリポイントが表示されます。 詳細については、「Kibana での認証」をご参照ください。

      説明

      基本ユーザーとして Kibana コンソールにログオンする必要がない場合は、basic.basic1 の項目を構成する必要はありません。

ステップ 3: 構成ファイルを送信する

チケットを送信する して、次の構成ファイルを Alibaba Cloud Elasticsearch テクニカルサポート担当者に送信します。

  • IDaaS SAML メタデータ構成ファイル: テクニカルサポート担当者は、送信した IDaaS SAML メタデータ構成ファイルを Elasticsearch の config/saml パスにアップロードします。

  • Elasticsearch の YML 構成ファイル: テクニカルサポート担当者は、送信した構成ファイルに基づいて、バックエンドで Elasticsearch クラスターの YML 構成ファイルを更新します。

  • Kibana の YML 構成ファイル: テクニカルサポート担当者は、送信した構成ファイルに基づいて、バックエンドで Elasticsearch クラスターの YML 構成ファイルを更新します。

ステップ 4: Kibana コンソールへの SSO を確認する

上記の構成が完了したら、SSO を使用して Kibana コンソールにログオンします。

  1. Kibana コンソールのログオンページに移動し、[saml/saml1 でログイン] をクリックします。

    詳細については、「Kibana コンソールにログオンする」をご参照ください。

  2. IDaaS に関連付けられているアカウントを入力し、[送信] をクリックします。

    Kibana コンソールのホームページが表示されます。