Elasticsearch ServiceでSAML連携してAuth0のユーザーでログインしてみる

KibanaのSAML認証が試せるように、Auth0とSAML連携してAuth0のユーザーでKibanaにログインするための具体的な設定方法を紹介します。
2020.11.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

先日、Elsatcisearch ServiceがKibanaのSAML認証をサポートしました!

実際にKibanaのSAML認証が試せるように、Auth0とSAML連携してAuth0のユーザーでKibanaにログインするための具体的な設定方法を紹介します。

前提

Auth0のアカウントとユーザーはすでに作成されていることを前提とします。

次の弊社ブログを参考に、Auth0のアカウントとユーザーを作成してください。

Elasticsearch Serviceの構築

マネジメントコンソールでElasticsearch Serviceの画面を開き、新しいドメインを作成します。

検証目的ですので、デプロイタイプは 開発およびテスト を選択します。 Elasticsearchのバージョンは現段階で最新の 7.8 を選択します。

SAML認証に対応しているのは、バージョン6.7以降であることに注意してください。


次の項目を設定していきます。

項目名 備考
Elasticsearchドメイン名 auth0-es-sample ドメイン名は任意
インスタンスタイプ t3.small 検証なのでコストの低いt系インスタンスを選択


次の項目を設定していきます。

項目名 備考
ネットワーク構成 パブリックアクセス -
細かいアクセスコントロールを有効化 有効 -
マスターユーザー名 admin マスターユーザー名は任意
マスターパスワード ***** パスワードは任意
SAML認証を準備する 有効 -
ドメインアクセスポリシー ドメインへのオープンアクセス許可 -


確認画面が表示されるので、設定値を確認して問題なければドメインを作成します。

ドメインのステータスが 読み込み中 になり、10分ほどで初期化が終わります。 初期化中に、Auth0の方の設定も進めていきます。

Auth0のApplicationの作成と設定

Auth0のダッシュボードのApplicationから、CREATE APPLICATIONをクリックして新しいApplicationを作成します。

適当な名前をつけて、 Regular Web Applications を選択してCREATEします。

Applicationが作成できたら、Addonsタブを選択して SAML2 WEB APP をクリックします。

Usageタブを選択して Identity Provider Metadata をダウンロードして保存します。 このダウンロードしたファイルをElasticsearch ServiceのSAML認証の設定に使います。

ログインユーザーのKibanaの権限設定

SAML認証の連携をする前に、SAML認証連携後にログインするユーザーがKibanaを利用できるような権限をつけてあげます。

Elasticsearch Serviceの画面からKibanaのログイン画面を開きます。

構築時に設定した マスターユーザー名パスワード でログインします。

ログインできたらトップページのハンバーガーボタンでメニューを開いて、 Security の項目を選択します。

Role Mappings を選択します。

security_manager を選択します。

ログインに利用しようと考えているAuth0のユーザーの user_id を控えておき、Add User して Usersuser_id を設定してSubmitします。

この設定をしておくことで、SAML連携してAuth0のユーザーでログインした際に、 security_manager の権限でログインできます。

Elasticsearch ServiceのSAML認証を有効化

Elasticsearch Serviceの画面に戻り、SAML認証を有効化します。

アクションから 認証を変更 を選択します。

SAML認証を有効化 にチェックを入れます。

IdPメタデータのインポートは XMLファイルからインポート をクリックして、さきほどAuth0からダウンロードして保存した Identity Provider Metadata をアップロードします。

アップロードできたら送信ボタンを押して、変更を確定します。

ドメインのステータスが処理中になるので、変更が完了するまで数分待ちます。

変更が完了すると、SAML認証が有効になり下の方にSAMLの詳細が表示されます。 SAMLの詳細で表示されている、 SPによって開始されたSSO URL をメモしてください。このURLをAuth0の設定で使用します。

Auth0のSAML IdPの設定

Auth0の設定に戻ります。

Applicationのページを開いて、Addonsタブを選択して SAML2 WEB APP をクリックします。

Application Callback URL の項目に、先ほどメモした SPによって開始されたSSO URL を入力します。

また、ログアウトも連携できるように Settings に次のような設定を入力して、下の方にある ENABLE ボタンを押します。

{
  "logout": {
    "callback": "https://<<Elasticsearchのドメインエンドポイント>>/_plugin/kibana/_opendistro/_security/saml/logout",
    "slo_enabled": true
  }
}

これでSAML連携の設定は完了です。

ログインしてみる

Auth0のSAML連携ができたので、Kibanaにアクセスしてログインしてみます。

そうすると今度はこんな感じにAuth0のログイン画面に転送されます。 EmailとPasswordを入力して、Auth0のユーザーでログインしてみます。

そうすると、Auth0のユーザーでKibanaにログインできました!

ログアウトも連携しているので、ログアウトボタンを押せばKibanaからログアウトできます。

終わりに

Auth0とElasticsearch ServiceのKibanaのSAML認証連携の具体的な手順をやってみました。

いろいろなサービスのユーザーを別々に管理するのは煩雑ですので、認証連携の選択肢が増えるのはうれしいです。

本ブログが、Elasticsearch ServiceのSAML連携の設定の参考になれば幸いです。

参考サイト