雑記帳
2017-12-20 (Wed) [長年日記]
■ [AzureAD][SSO] Workplace by Facebookを一斉展開する
Facebookによる企業向けのSNS、Workplace by Facebook(以下、WF)というものがある。企業向けSNSということなので、当然ID Providerと連携してSSOすることができる。
今回は、Azure ADをID Provider(IdP)を使い、自動ユーザー登録とSSOを使ったログインができるように構成する。WFはギャラリーに存在するので、そこから追加すれば良い。
なお、今回はSSOとプロビジョニング設定が主眼なので、WF自体の開始方法は説明しない。すでに利用開始できているものとする。
WFの設定情報の取得
社内ダッシュボードの認証設定画面で、LoginをSSOにすると、設定画面が開く。下記の情報が表示されるので、それをメモる。Azure AD側の設定をする際に必要となる。
- オーディエンスURL
- 受信者のURL
- ACS (Assertion Consumer Service) URL
Azure AD側の設定
Azure ADのWorkplace by Facebookを開き、下記の設置を行う。
シングルサインオンの設定
- シングルサインオンモード
- SAMLベースのシングルサインオン
- サインオンURL
- WFの組織トップURL(https://<organization>.facebook.com/)
- 識別子
- 先にメモしたオーディエンスURL
- SAML証明書
- 自動的に作成されているのでダウンロードする
- 通知用メールアドレス
- 証明書が切れそうな時に通知欲しいメールアドレス
そして、最下部に[Workplace by Facebookの構成]があるので、クリックして情報を表示する。下記の情報をメモる。
- Azure AD Single Sign-On Service URL
- Azure AD SAML Entity ID
[Download Azure AD Signing Certificate (Base64 encoded)]というリンクから、証明書をダウンロードする。
WF認証の設定
WF側のSSOの設定をする。社内ダッシュボードの認証ページを開き、下記の項目を埋める。
- SAML URL
- 先にメモしたAzure AD Single Sign-On Service URL
- SAML Issuer URI
- 先にメモしたAzure AD SAML Entity ID
- SAML証明書
- ダウンロードした証明書の内容をテキストで貼り付ける
ここまで設定したら、[SSOをテスト]ボタンを使って設定が正しいのかのテストができる。押してみて正しく動作しているかを確認する。
ここまでの設定で、WFにすでに登録されているユーザーは、SSOができるようになっているので、確認すると良い。
メンバー追加の設定(プロビジョニング)
SSOの設定ができても、WFに登録されていないメンバー(ユーザー)は、ログインすることができない。メンバーアカウントをWFに自動的に登録する必要がある。
ここでは、Azure ADにあるプロビジョニング機能を使ってユーザーの登録や削除を実施する。WFと同期するメンバーは、先ほど作成したグループのメンバーとなる設定を行う。
アプリの登録
WFの社内ダッシュボードにある、[統合]を開き、[カスタム統合]を選択する。[+カスタムアプリを作成]を押す。
カスタムアプリの名前と説明に、 任意の値を入力する。
アクセス許可に、[グループの管理]と[アカウントを管理]にチェックを入れる。
[アクセストークン]ボタンを押して、アクセストークンを取得する。
[保存する]お押して、データを保存する。
プロビジョニングの設定
WFのプロビジョニングを開く。プロビジョニングモードを[自動]にすると、設定項目が表示される。下記の項目に値を入れる。
- シークレットトークン
- 先ほど取得したアクセストークン
- テナントのURL
- https://www.facebook.com/scim/v1/
[テスト接続]を押して、問題ないか確認する。問題なければ、一旦[保存]する。
[プロビジョニング状態]を[オン]に変更し、[保存]すると、同期が開始される。
同期の状態は、監査ログに出力されるので、そこを確認するといい。
ユーザーの招待
プロビジョニングができたら、自動的にユーザーの登録は実施されるが、まだユーザーはログインすることはできない。利用できるようになるには、招待メールを送信しなければならない。
実はここに罠がある。SSOで構成していると、プロビジョニングされたユーザーに自動的に"Confirm your email for Workspace"という件名のメールが送信される。しかし、そのメールだけではサインインすることができない。サインインするためには、管理者によって、招待メールの送信が実施される必要がある。
社内ダッシュボードにアクセスすると、まだ招待されていないユーザーに招待メールを一斉に送信するボタンがあるので、それを押せば良い。
補足
プロビジョニングをする際には、対象となるユーザーの絞込みが必要になることが多いと思う。その場合は、プロビジョニングのマッピングの設定を使って、対象となるオブジェクトのフィルタができるようだ(未検証)。
また、Azure ADにある情報から、WFに同期する情報の属性マッピングもできるので、ADに有用な情報が含まれている場合は、ここの設定を活用すると便利だろう。