最新 追記

雑記帳


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に有用な情報が含まれている場合は、ここの設定を活用すると便利だろう。