Alibaba Cloud Elasticsearch (ES) は、Kibana のシングルサインオン (SSO) をサポートしています。Security Assertion Markup Language 2.0 (SAML 2.0) 認証を有効にすると、SAML 2.0 準拠の ID プロバイダー (IdP) を使用して Alibaba Cloud ES インスタンスと Kibana にアクセスできます。このトピックでは、ES V7.10 インスタンスを例に、SAML IdP とサービスプロバイダー (SP) である ES と Kibana を設定して、Kibana コンソールの SSO を実装する方法について説明します。
背景情報
SAML では、ES と Kibana はサービスプロバイダー (SP) として機能します。これらは、Web ブラウザー SSO プロファイルと SAML 2.0 のシングルログアウトプロファイルをサポートしています。これにより、Alibaba Cloud Identity as a Service (IDaaS) や Active Directory Federation Services (ADFS) など、SAML 2.0 に準拠した ID プロバイダー (IdP) を使用して Alibaba Cloud ES と Kibana にアクセスできます。このトピックでは、IDaaS を例として使用します。
シングルサインオン (SSO):
ユーザーが一度ログインするだけで、相互に信頼されたすべてのアプリケーションにアクセスできるようにします。
Security Assertion Markup Language (SAML):
SAML は、クロスドメインシングルサインオン (SSO) を実装する XML ベースのプロトコルです。アサーションを含むセキュリティトークンを使用して、ID プロバイダー (IdP) とサービスプロバイダー (SP) の間で ID 情報を転送します。SAML は、パブリッククラウドおよびプライベートクラウドで広く使用されている成熟した認証プロトコルです。
Alibaba Cloud Identity as a Service (IDaaS):
IDaaS は、エンタープライズユーザー向けの一元化された ID、権限、およびアプリケーション管理サービスのセットです。IDaaS は、EIAM や CIAM などの複数のプロダクトをサポートしています。
前提条件
Alibaba Cloud ES V7.10 インスタンスが作成され、HTTPS プロトコルが有効になっています。他のバージョンでは操作が異なる場合があり、実際の UI も異なる場合があります。
説明インスタンスの作成については、「Alibaba Cloud Elasticsearch インスタンスの作成」をご参照ください。
HTTPS の有効化については、「HTTPS プロトコルの使用」をご参照ください。
IDaaS サービスの EIAM インスタンスがアクティベートされています。
説明Elastic は、SAML 認証に対して HTTP-Redirect バインディングメソッド のみをサポートし、HTTP-POST バインディングやその他のメソッドはサポートしていません。したがって、PC が IdP および SP サービスにアクセスできることを確認する必要があります。
Kibana のパブリックポートが 443 の場合
手順
SAML 認証を有効にすると、クラスターの再起動が必要になります。この変更による影響を最小限に抑えるため、オフピーク時にこの操作を実行してください。
Alibaba Cloud Elasticsearch コンソールにログインします。
左側のナビゲーションウィンドウで、[Elasticsearch クラスター] をクリックします。
目的のクラスターに移動します。
上部のナビゲーションバーで、クラスターが属するリソースグループとクラスターが存在するリージョンを選択します。
[Elasticsearch クラスター] ページで、クラスターを見つけてその ID をクリックします。
ターゲットインスタンスの左側のナビゲーションウィンドウで、 を選択します。
クラスターアクセス設定 エリアで、SAML 認証 を有効にします。
説明現在のインスタンスの HTTPS プロトコルを無効にしようとすると、ダイアログボックスに「このインスタンスには SAML 認証が有効化されているため、HTTPS を無効にすることはできません」というメッセージが表示されます。
SAML 認証を有効にする パネルで、SAML アプリケーションを設定できます。
SAML アプリケーションの設定 ページで、アクセス方法 に インターネットでの Kibana へのアクセス を選択します。
IdP メタデータをダウンロードします。詳細については、「IDaaS SAML アプリケーションの設定」をご参照ください。
説明シングルサインオン ACS URL と SP エンティティ ID は、SAML アプリケーションの設定 ウィザードページからコピーできます。
クリックまたはドラッグして IdP メタデータをアップロードします。
次へ をクリックします。
カスタム ES ロールを関連付けます。
ES のカスタムロールを関連付ける ウィザードページで、ES アクセスパスワードを入力します。
ロール名: デフォルト値は es_saml1_default で、変更できません。
ロール権限: デフォルトでは、es_saml1_default ロールに対してすべての権限が有効になっています。詳細な権限を設定するには、Kibana コンソールでロールの権限を変更できます。詳細については、「Elasticsearch X-Pack ロール管理によるユーザー権限の管理」をご参照ください。
ES アクセスパスワード: ロールを作成する権限があることを確認するためのパスワードを入力します。
ロールを作成して関連付ける をクリックします。
ロールが作成され、SAML にマッピングされます。
次へ をクリックします。
完了 をクリックします。
ページの上部に「SAML 認証が有効になりました」というメッセージが表示され、設定が成功し、インスタンスが再起動中であることを示します。
インスタンスが再起動したら、Kibana の SSO を確認します。
左側のナビゲーションウィンドウで、 を選択します。
[Kibana] エリアで、インターネットからのアクセス をクリックします。
ユーザー名 と パスワード を入力し、[ログイン] をクリックします。
Kibana ページにログインします。
説明詳細については、「Kibana コンソールへのログイン」をご参照ください。
インスタンスの セキュリティ ページで SAML ID 認証設定を表示および変更できます。SAML 設定が正しいにもかかわらずログインできない場合は、Kibana アクセスホワイトリストまたはセキュリティグループが正しく設定されているか確認してください。詳細については、「Kibana を使用してクラスターに接続する」をご参照ください。
IDaaS SAML アプリケーションの設定
IDaaS コンソールにログインします。
ターゲット IDaaS インスタンスの ID をクリックします。
アプリケーションを追加します。
左側のメニューバーで、 をクリックします。
Applications ページで、Add Application をクリックします。
Standard Protocols タブをクリックします。
[SAML 2.0] エリアで、Add Application をクリックします。
Application Name を入力し、Add をクリックします。
Sign-In セクションの SSO タブで、アプリケーションの SSO を完了できます。
次の表で説明するパラメーターを設定します。他のパラメーターはデフォルト値のままにできます。詳細については、「IDaaS 側の設定フィールドの説明」をご参照ください。
パラメーター
説明
シングルポイントログインアドレス ACS URl
ACS URL は、IdP から認証情報を受信するために使用されます。ACS URL は、ES コンソールの SAML アプリケーションの設定 ウィザードページからコピーできます。
アプリケーション一意識別子 SP Entity ID
SP の一意の識別子。この例では、SP は Kibana です。SP エンティティ ID は、ES コンソールの SAML アプリケーションの設定 ウィザードページからコピーできます。
Authorize
権限付与の範囲を選択します。
Manually を選択した場合は、Authorize タブで権限を割り当てる必要があります。
NameIDFormat
[2.0 Persistent] を選択します。
設定例:

Application Settings セクションで、IDP メタデータ の横にある Download をクリックします。
Save をクリックしてアプリケーションを保存します。
その他の操作
インスタンスの セキュリティ ページの クラスターアクセス設定 セクションで、SAML 認証設定の表示と変更、または SAML 認証の無効化ができます。
項目 | 操作 |
SAML 認証設定の表示 | SAML 認証 の横にある 設定の変更 をクリックして、SAML 認証設定を表示します。 |
SAML 認証設定の変更 | SAML 認証 の横にある 設定の変更 をクリックします:
|
SAML 認証の無効化 | SAML 認証 スイッチをオフにし、表示されるダイアログボックスで OK をクリックします。変更はクラスターの再起動後に有効になります。 説明 SAML 認証を無効にすることを確認すると、現在の SAML 認証設定はパージされます。 |
Kibana のパブリックポートが 5601 の場合
ステップ 1: IDaaS SAML アプリケーションの設定
IDaaS コンソールにログインします。
ターゲット IDaaS インスタンスの ID をクリックします。
アプリケーションを追加します。
左側のメニューバーで、 をクリックします。
Applications ページで、Add Application をクリックします。
Standard Protocols タブをクリックします。
[SAML 2.0] エリアで、Add Application をクリックします。
Application Name を入力し、Add をクリックします。
Sign-In で、SSO タブで、アプリケーションの SSO を完了します。
次の表で説明するパラメーターを設定します。他のパラメーターはデフォルト値のままにできます。詳細については、「IDaaS 設定フィールドの説明」をご参照ください。
パラメーター
説明
シングルポイントログインアドレス ACS URl
この ACS エンドポイントは IDP からの ID 検証情報を受け入れ、SAML HTTP-POST バインディングのみをサポートします。通常、
${kibana-url}:5601/api/security/v1/samlのように設定されます。アプリケーション一意識別子 SP Entity ID
サービスプロバイダー (SP) の URL。このトピックでは、サービスプロバイダーは Kibana です。この値を
${kibana-url}:5601に設定します。Authorize
権限付与の範囲を選択します。手動承認を選択した場合は、Authorize タブで権限を割り当てる必要があります。
NameIDFormat
[2.0 Persistent] を選択します。
説明${kibana-url}は Kibana のパブリックアドレスです。Kibana のパブリック URL とパブリックポートは、Elasticsearch コンソールの Kibana 設定ページで確認できます。詳細については、「Kibana を使用してクラスターに接続する」をご参照ください。
設定例:

Application Settings セクションで、IDP メタデータ の Download をクリックします。
ダウンロードされたファイルは IDaaS SAML メタデータ設定ファイルです。後で使用するためにこのファイルを保存します。
アプリケーションを保存するには、Save をクリックします。
ステップ 2: カスタムロールの作成と elastic SAML の設定
ターゲットインスタンスの Kibana コンソールにログインします。詳細については、「Kibana コンソールへのログイン」をご参照ください。
ロールを SAML にマッピングします。
PUT /_security/role_mapping/idaas-test { "roles": "<admin_role>" , "enabled": true, "rules": { "field": { "realm.name": "saml1" } } }idaas-testを ステップ 1 で作成した IDaaS サービスアカウントの名前に置き換えます。<admin_role>を前のステップで作成したロールの名前に置き換えます。
Elasticsearch と Kibana の YAML 設定ファイルを作成し、SAML 情報を追加します。
説明YML パラメーター情報は、IDaaS SAML アプリケーションの設定 で設定した SAML 情報と一致している必要があります。
elasticsearch.yml 設定ファイルの内容
#elasticsearch.yml configuration 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 シングルサインオンを設定するには、このパラメーターを true に設定する必要があります。詳細については、「saml-enable-token」をご参照ください。
xpack.security.authc.realms.saml.saml1
ID 認証レルム。この例では、saml1 が使用されます。レルムの詳細については、「Realms」をご参照ください。
order
レルムの優先度。値が小さいほど優先度が高くなります。
説明V8.x では order に一意の値が必要です。2 を使用することをお勧めします。
idp.metadata.path
IdP メタデータファイルへのパス。
idp.entity_id
IdP によって使用される識別子。メタデータファイルの EntityID と一致する必要があります。
sp.entity_id
Kibana インスタンスの一意の識別子。これは、SAML アプリケーションの SP エンティティ ID と同じです。IdP の SP として Kibana を追加する場合は、この値を設定します。Kibana URL に設定することをお勧めします。
重要パラメーター値がビジネス環境と一致していることを確認してください。URL を使用して直接 Kibana にアクセスする代わりに、リバースプロキシを使用して Kibana にアクセスする場合は、このパラメーターをリバースプロキシのアドレスとポートに設定します。
sp.acs
Assertion Consumer Service (ACS) エンドポイント。値は、SAML アプリケーションのシングルサインオンアドレスの ACS URL と同じである必要があります。このエンドポイントは IdP から ID 検証情報を受け取り、SAML HTTP-POST バインディングのみをサポートし、通常は
${kibana-url}:5601/api/security/v1/samlとして設定されます。説明${kibana-url}は Kibana のインターネットアドレスです。attributes.principal
アサーション情報。詳細については、「属性マッピング」をご参照ください。
attributes.groups
アサーション情報。詳細については、「属性マッピング」をご参照ください。
kibana.yml 設定ファイルの内容
重要この設定は、バージョン
7.10のインスタンスにのみ適用されます。Kibana の設定は、バージョンによって大きく異なる場合があります。必要に応じて設定を調整できます。詳細については、「Kibana の設定」をご参照ください。# kibana configuration 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 プロバイダーを追加して、Kibana が認証方式として SAML SSO を使用するように設定します。
xpack.security.authc.providers.saml.<provider-name>.realm
SAML レルム名を設定します。<provider-name> を elasticsearch.yml で設定したレルム名に置き換えます。この例では saml1 です。
xpack.security.authc.providers.basic.basic1
Kibana に SAML を設定すると、SAML 認証に合格したユーザーのみが Kibana にログインできます。Kibana ログインページで基本認証を有効にするには、
basic.basic1設定を指定できます。これは、elasticユーザー名とパスワードを使用してクラスターにログインし、ロールとロールマッピングを作成する必要があるテスト環境で特に便利です。この設定を指定すると、基本認証のエントリポイントが Kibana ログインページに追加されます。詳細については、「kibana での認証」をご参照ください。説明ユーザーが Kibana コンソールにログインするために基本認証を使用する必要がない場合は、kibana.yml で基本認証を設定する必要はありません。
ステップ 3: ファイルの提出
次のファイルを Alibaba Cloud Elasticsearch テクニカルサポートに提出してください:
テクニカルサポートエンジニアが IDaaS SAML メタデータ設定ファイルを Elasticsearch の config/saml パスにアップロードします。
elasticsearch.yml 設定ファイル。テクニカルサポートは、提出された内容に基づいてクラスターの YML ファイルを更新します。
kibana.yml 設定ファイル。テクニカルサポートは、提出された内容に基づいてクラスターの YML ファイルを更新します。
ステップ 4: Kibana への SSO の検証
テクニカルサポートが設定を完了したら、Kibana の SSO を検証します。
Kibana コンソールのログインページに移動します。[Log In With Saml/saml1] をクリックします。
詳細については、「Kibana コンソールへのログイン」をご参照ください。
IDaaS アカウントを入力し、送信 をクリックします。
Kibana ページにログインします。