こんにちは、富士榮です。
Sign in with SlackがOpenID Connectに対応したので、Azure AD B2Cに繋いでみました。
Slackのドキュメントはこちら
ふむふむ。昔のSlack連携はOAuth2.0でidentity.*というスコープが使われていたところがOpenID Connectに対応したってことですね。
ではやってみましょう。
まずはSlack側にアプリ定義を作成
こちらからSlackアプリ定義を作ります。メインはAzure AD B2C(今回のケースだとRelying Partyになります)に渡すためのclient_id、client_secretを作るための行為です。
Create an Appをクリックするとスクラッチから作るかapp manifestを使って作るかを聞かれますので、今回はスクラッチから作ることにします。
アプリ名と対象となるワークスペースを選択して次へ進みます。
ナビゲーションメニューからOAuth & Permissionsを開きます。
少し下にスクロールするとredirect_uriを設定するところがあるので、Azure AD B2CをRelying Partyとして使う場合のCallback Uriを設定します。以下の形式のUriです。
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp
これでSlack側への設定は終わりです。
左のナビゲーションメニューのBasic Informationからclient_id、client_secretが取得できるのでメモしておきましょう。後でAzure AD B2C側に設定します。
Azure AD B2CにIdentity Providerを設定する
次はAzure AD B2C側です。
IDプロバイダのメニューから新しいOpenID Connectプロバイダーをクリックして設定を開始します。
必要なのは以下の設定です。
- 名前:適当に
- メタデータURL:https://slack.com/.well-known/openid-configuration
- クライアントID、シークレット:Slack側で取得した値
- スコープ:openid profile email
- 応答の種類:code
- 応答モード:form_post
- ドメインのヒント:なし
- IDプロバイダーの要求のマッピング
- ユーザーID:sub
- 表示名:name
- 名:given_name
- 姓:family_name
- 電子メール:email