AWS GrafanaとOracleIdentityCloudService(IDCS)をSAML連携する方法

# 概要
AWS Grafanaにログインする際に、IdPとしてOracleIdentityCloudService(IDCS)を利用してログインします。
その際のSAML設定の仕方を紹介します。

AWS GrafanaがサポートしているIdPは以下です。
- Azure Active Directory
- CyberArk
- Okta
- OneLogin
- Ping Identity

そう、OracleIdentityCloudService(IDCS)はサポートされていません。
故に、本文書も非公式な内容であり、
ご利用頂く場合は"自己責任"で実施ください。

# 連携手順
## 1.Grafana構築
### 1-1.ワークスペースの作成

ワークスペース名を入力し、「次へ」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/dedf1398-6d28-8fc5-81f5-d0c5ec7136c4.png)

SAMLに☑をいれて、「次へ」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/7fb3291b-c33a-77da-de5f-999fb0bd6106.png)

データソースは利用する物を選択し、「次へ」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/55a223fe-9363-640c-1af4-160ca3abcf2f.png)

ワークスペースの作成が完了したら、「セットアップを完了にする」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/ac595856-d3e8-c42b-0a8e-b63103221ad1.png)


### 1-2.SAML設定

AWSコンソールで「SAMLの設定」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/095c1b02-c92f-b6c7-4462-ec62c6db2f8d.png)

ステップ1部分の情報は後の工程で利用するので、メモしておく
ステップ2に関しては後でおこなう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/594937a2-e66b-4f37-c1d3-33345f2eaeb2.png)

ステップ3は先に実施可能
各項目の入力を実施
管理者ロールの値は後で設定するIDCS側のグループ名と一致する必要がある
エディタロール値に関しては、grafanaのエディター権限をIDCSユーザーに付与したい場合は設定する
こちらもIDCS側のグループ名と一致する必要がある
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/2276a2b8-e726-6a65-dac4-bf6ae978e5db.png)


## 2.IDCS構築
## 2-1.アプリケーション登録
アプリケーション画面から「追加」⇒「SAMLアプリケーション」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/66b03c04-0bd8-b906-551d-06d3b798ca54.png)

アプリケーション名を入力
アイコンは必要であれば設定
自分のアプリケーションに表示は☑をはずしておく
※2022/09/09現在、GrafanaはIdP開始フローに対応していないため
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/7bebb861-e7f6-db6a-ab98-44b53be31571.png)

先程メモした内容を入力
エンティティ名：サービスプロバイダー識別子 (エンティティ ID)
アサーション・コンシューマのURL：サービスプロバイダーの応答 URL (Assertion Consumer Service URL)
属性構成はAWS側の「ステップ 3: アサーション属性をマッピングする」部分と設定をあわせる

★★★重要★★★
NameID形式は「一時」を設定する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/c9407409-0325-0ca4-10b7-c7aa6e6184a6.png)

アイデンティティ・プロパイダ・メタデータのダウンロードを実施しておく

## 2-2.グループ登録
グループを作成し、先程作成したアプリに紐づける
グループにはユーザーをアサインしておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/236b2ca9-0135-8684-e7ed-6de408fa8dc8.png)

## 3.GrafanaへのIdPメタデータのインポート
AWS Grafana画面でSAML設定を再度開き、先程ダウンロードした「アイデンティティ・プロパイダ・メタデータ」を
アップロードする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/160aa4d7-72a5-33b4-ba28-4198a606a0ee.png)


# 連携確認
## 1.Grafana画面にアクセス

AWSコンソールのGrafana画面から、「GrafanaワークスペースURL」の部分をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/879d75b2-bd6c-fd6e-3559-ff3b4010e88b.png)

Grafanaのログイン画面に飛ばされるので、「Sign in with SAML」をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/63f510b8-7ac7-eecb-582a-8aefb258f0cb.png)

IDCSのログイン画面が表示されるので、ユーザー名・パスワードを入力後「サイン・イン」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/faf88a15-7d75-891b-8863-d2ca7c98a269.png)

Grafanaの画面が表示されれば、SAMLログイン完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172015/5bbde18e-641d-a7a1-0db5-f27fe2759243.png)