Amazon OpenSearch ServiceのOpenSearch DashboardsにSAML連携でログインしてみる
はじめに
こんにちは。大阪オフィスの林です。
Amazon OpenSearch ServiceでセットアップされたOpenSearch DashboardsにSAML連携でログインする検証を行う機会がありましたので内容をまとめておきたいと思います。今回のエントリではAzure Active DirectoryをIDプロバイダーとし、SAML認証を使ってOpenSearch Dashboardsにログインするところまでを見ていきたいと思います。執筆時点では、Azure Active Directoryのほか、次の外部IDプロバイダーのSAML認証がサポートされているようです。
- Okta
- Keycloak
- Auth0
公式のドキュメントは下記を参考にしていただければと思います。
やってみた
Amazon OpenSearch Serviceのセットアップ
まずはAmazon OpenSearch Serviceでドメインをセットアップしていきます。Amazon OpenSearch Serviceのダッシュボードに移動し、「新しいドメインの作成」を選択します。
今回は検証のため「開発およびテスト」を選択し進めます。バージョンはOpenSearch 1.0を選択し「次へ」を選択します。
今回の検証ではネットワークの構成に「パブリックアクセス」を選択します。
SAML連携の機能を使用するには「細かいアクセスコントロールを有効化」にチェックを入れたままの状態とする必要があるのデフォルトのチェック有りのままの設定とします。
「SAML認証を準備する」にチェックを入れます。セットアップ時にできるSAML連携周りの設定はこのチェック項目しかありません。実際の設定はドメインの作成完了後に設定することとなります。
環境に応じたアクセスポリシーを設定します。今回の検証では「ドメインへのオープンアクセスを許可」を選択することとします。
対象のドメインから「アクション」-「認証を変更」を選択します。
「SAML認証を有効化」にチェックを入れます。「IDプロバイダー(IdP) を設定する」の以下2つのURLは、以降のIDプロバイダー(Azure Active Directory)側の設定で必要になりますのでコピーもしくはブラウザを表示したままとしてください。
補足ですがIdP によって開始された SSO URL
かSP によって開始された SSO URL
の使い分けがパッと分からなかったのですが以下のようなイメージで頭の中を整理しました。今回はOpenSearch Dashboards URLを介した認証を設定しようと思いますのでSP によって開始された SSO URL
を使用することとしています。
IDプロバイダー(Azure Active Directory)側の作業
続いて、IDプロバイダー側の作業を進めていきます。今回の検証ではIDプロバイダーにAzure Active Directoryを使用しますので、Azureの管理画面にログインし「Azure Active Directory」を選択します。
左メニューから「エンタープライズアプリケーション」を選択します。
任意の名前を入力し「ギャラリーに見つからないその他のアプリケーションを統合します(ギャラリー以外)」が選択されている状態で「作成」を選択します。
左メニューから「シングルサインオン」-「SAML」を選択します。
先ほどコピーもしくはブラウザを表示したままとしているAmazon OpenSearch Serviceの情報をコピーしていきます。 識別子(エンティティID)
にサービスプロバイダエンティティID
、応答 URL (Assertion Consumer Service URL)
にSP によって開始された SSO URL
を入力し、「保存」を選択します。
テストが求められますが、またユーザーをアタッチしていないので「いいえ、後でtestします」を選択します。
後程Amazon OpenSearch Serviceの設定で使用するため「SAML署名証明書」から「フェデレーションメタデータXML」をダウンロードしておきます。
「ユーザーまたはグループの追加」を選択します。予めAzure Active Directoryにはユーザーを作成しておく必要があります。
アプリケーションにユーザーがアタッチされたことを確認します。
Amazon OpenSearch Service側の作業に戻る
「XMLファイルからインポート」を選択し、先ほどダウンロードした「フェデレーションメタデータXML」を指定しインポートします。
「送信」を選択します。本当であれば「SAML マスターユーザー名 (オプション)」を指定しOpenSearch Dashboardsの管理者を指定しますが、検証なので管理者を指定しない状態での挙動も見ていきたいと思います。
「OpenSearch ダッシュボード」にアクセスしてみます。
IDプロバイダー側のアプリケーションにアタッチしたユーザーでサインインします。
Missing Role
No roles available for this user, please contact your system administrator.
と表示されました。先程の「SAML マスターユーザー名 (オプション)」を指定していないためです。
OpenSearch Dashboardsに対して管理者権限を付けていきます。対象のドメインから「アクション」-「認証を変更」を選択します。
「SAML マスターユーザー名 (オプション)」にIDプロバイダー側でアタッチしたユーザー名を入力し「送信」を選択します。
再度ログインするとOpenSearch Dashboardsが閲覧できました。
まとめ
Amazon OpenSearch ServiceでセットアップされたOpenSearch DashboardsにSAML連携でログインする検証をやっていきました。個人的に、他のサービスでもSAML連携の検証を進めているお陰か、連携に掛かる設定についての難易度自体はそう高くないような印象を受けました。このエントリがどなたかの参考になりましたら幸いです。
以上、大阪オフィスの林がお送りしました!