Slack：AWS IAM Identity CenterでSAML SSOを実現する (Enterprise Grid)

# はじめに

AWSには、IAM Identity Center (旧AWS SSO) というアカウント管理サービスがあります。一般的には複数のAWSアカウントを一元管理する目的で利用されますが、SAML SSOのIDプロバイダーとしても利用することが可能です。

今回は、IAM Identity CenterからSlackに対してSAML SSOする際の設定について以下にまとめてみました。

なお、後述しますが、一般的な（良く使われる）SAML SSO対応のIdP(IDaaS)と比べて、外部アプリケーションに対するサポートそれほど充実しているわけでありません。設定に当たっては、その点を理解のうえで進めていただければと思います。

# 設定手順

## AWS側の設定

:::note info
IAM Identity Centerの初期設定ならびに必要なユーザー・グループの追加は完了しているものとします。
:::

### １．IAM Identity Centerを開き、「アプリケーション」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/408fd1f8-30fa-f725-6d58-07744abb5439.png)

### ２．「アプリケーションを追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/875f1ca3-0df4-9d18-ef6e-3bd67a1c0133.png)

### ３．「カタログからアプリケーションを選択する」を選択し、「次」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/d99aeea5-c7d4-944d-e7d5-03d9293b2dd4.png)

### ４．「Slack」を選択し、「次」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/9ff8ff7d-45df-fe25-aba6-f228d84aa149.png)

### ５．「表示名」と「説明」を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/44527716-e237-b93f-74b0-a9f9450fb6a1.png)

### ６．アプリケーションメタデータを次の通り設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/383c1f33-1d0f-e377-1d50-ac3b9af2f118.png)

- アプリケーション ACS URL：https://<Orgのサブドメイン>.enterprise.slack.com/sso/saml
- アプリケーション SAML 対象者：https://<Orgのサブドメイン>.enterprise.slack.com

なお、Orgのサブドメインは、お使いのSlack Enteprise GridのURLより確認ください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/c40c8bd3-9cff-79e6-127c-1b071283b086.png)

### ７．「送信」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/d511b628-4a2f-45d4-8448-b96fa72d8b89.png)

### ８．「ユーザーとグループを割り当てる」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/b6543d2b-6b4f-ca17-7693-f3e94bad8ff6.png)

### ９．追加したい（SlackへSAML SSOさせたい）ユーザーまたはを選択し、「ユーザーを割り当て」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/71b89f0d-8613-dc3f-a3ac-79387e2ef95e.png)

### １０．「設定を編集」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/1c5687de-61bb-6c82-5520-eeb1e884938e.png)


### １１．「ステップバイステップの手順を表示」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/7b266c09-1784-27e3-899c-b733c296b8e5.png)

### １２．以下のようなページが表示されます。このページは開いたままとします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/898db2f8-8650-6a8d-4ba8-dc68540f3202.png)


## Slack側の設定

### １．「SSO 設定」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/b40c52c2-8ffa-0275-d769-cb7808cb4dd2.png)

### ２．「SSOの設定を追加する」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/b88d3921-34eb-a081-a0c0-6b6938e9c82d.png)

### ３．以下を参考に設定を進め、最後に「テスト設定」をクリックします。

左側のウインドウは「AWS側の設定」の『手順１２』で開いたままとしているページです。このページ上の指定された内容をSlackの所定のフィールドにセットします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/cf53e435-bb50-899a-071b-620678e0e55c.png)

エラーなくテストが完了すれば設定完了です。

# 補足

## SCIMへの対応

IAM Identity Centerには、アプリケーションのSCIM連携のための機能が用意されていません。（外部IdP -> IAM Identity CenterのSCIM連携には対応していますが、IAM Identity Center -> 外部アプリに対するSCIM連携には対応していません）

IAM Identity Centerから外部アプリ（Slack）に対して、SCIM APIを用いたアカウントプロビジョニング・デプロビジョニングを行いたい場合は、SCIM連携機能を独自に実装いただく必要があります。

※SCIM連携のリストが必須である場合は、AWS IAM Identity Centerではなく、OktaやEntra IDなど別のIdP(IDaaS)を利用いただいた方が良いでしょう。

### 参考

https://repost.aws/questions/QUx3B-TMu8RCifLNBJ2oFT7g/using-scim-with-aws-iam-as-idp

## IAM Identity Centerの「アプリケーション」を開き直すと、追加したはずのSlackの設定がない 

IAM Identity Centerの「アプリケーション」を開き直すと、何も表示されない（追加したはずのSlackの設定がない）場合があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/26cb51b9-4059-4011-f3a7-93eafcccf74c.png)

このような場合は「カスタマー管理」をクリックすることで、追加したSlackの設定を確認することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/8fe6ea28-2ce8-4e68-ac7e-fa849c86e0f7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/96d7500c-4e7f-880e-ed3a-72521c08d2bc.png)

# 参考

https://docs.aws.amazon.com/ja_jp/singlesignon/latest/userguide/customermanagedapps-saml2-setup.html