【AzureAD】Workplace by facebookとのSSO及びユーザープロビジョニング


WorkplaceとSSOとユーザプロビジョニングを構成してみました。
参考になればと思います

#workplaceの登録

workplaceの登録にはworkplaceのトップページから作成できます。
ただし、ドメイン毎にテナントを持っており、他のテナントに登録されているドメインだと作成ができません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/946dc883-1992-aa4c-4af6-6a0ae90389c6.png)
メールアドレスを入れると、登録したメールアドレスにworkplaceからメールが届き、アカウントをアクティブ化すればテナントの最初のユーザーとして登録できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/33ea146c-e4ec-ed8f-afdd-be405204bb7d.png)
初回登録時はトライアルで30日間アドバンスモードが使用できます。
アドバンス以上でないとSSOが出来ないので注意が必要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/54199a45-124c-d24c-be92-2adc080ab763.png)

#ドメインの認証
Workplaceはドメイン毎にテナントで管理されていて、ドメインの認証をすることで
ドメインの所有権を持つ形になります。（ほかのworkplaceテナントが同じドメイン名で登録できなくする）
ドメインの認証をさせないと、SSOができませんので、まずドメインの認証をおこないます。

設定から[メールドメイン］を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/b53fbf74-af13-b175-ea22-6f731f53dd50.png)
今回はメールアドレスの認証でおこなってみます。アドレスは選択式だったのでhostmasterのアドレスあてに送付しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/b4559984-3488-7dba-786c-dd81e4ae864f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/2e0fd995-4438-b335-ede2-2491d9244dc6.png)
選択したメールアドレスに認証コードが届きますので、そのコードを入力すると
ドメイン認証がされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/af49628c-56b1-4ddd-157f-16c39a88843c.png)
メールアドレスの認証がされました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/09b5dedf-68cc-fd23-c93c-6b8a2b65e24c.png)

#SSOの設定
SSOの設定に移ります。
まずworkplaceのURLとなる会社のサブドメインを決めます。
ここでは以下のように設定してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/3d3d1bd4-baee-315d-e860-664debe5be08.png)

SSOの設定はセキュリティタブの認証タブから設定が出来ます。[+新しいSSOプロバイダーを追加］します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/1fe49428-fbd8-3913-e61f-df9961670036.png)

こちらの設定を埋めていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/1e56c580-df41-3899-93ed-ec8101afc5b8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/0ba66410-2cbc-278d-2f55-566245aadacb.png)

**AzureAD側の設定**
AzureADにログインし、workplaceのアプリを登録します。
エンタープライズアプリケーションの画面で、Workplaceで検索し、[追加］をクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/bc900dbc-5040-b3de-43f8-bdec92f76a8f.png)

概要から[シングルサインオンの設定］をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/07fd9e4b-f73b-f1ba-38ea-fa2d43f67820.png)
[SAML]をクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/1a9c8da7-e629-bdc4-a658-a373de982141.png)

識別子→workplaceのオーディエンスURLを入力
応答URL→workplaceの受信者のURLを入力
サインオンURL→ログイン用のURLを入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/a5d3861e-be79-75a3-a5a9-bb1b1fbb3526.png)

それと連携にはユーザーの登録が必要ですので、アプリの画面からユーザとグループを選択し割りあてておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/2b350e80-4380-7685-081d-cbb48f7ffa8d.png)


これでAzuere側の設定が完了です。
続いて、workplace側の設定をするために、以下の情報を取得しておきます
シングルサインオンの設定画面から　証明書(base64）をダウンロードしておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/a9e994bf-7639-15be-a7cb-6784e6afc102.png)
それとログインURLとAzureAD識別子をメモ帳等に貼り付けておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/ebf2a68e-f4c0-c84d-b054-e1b5bb3a320d.png)

workplcae側の設定に戻り、AzureADから取得した設定値を入力します
SSOプロバイダー名　→適当な名前
SAMLURL　→AzureADのログインURL
SAML発行元URL　→AzureAD識別子
SAML証明書　→ダウンロードした証明書をテキスト等で開き内容をすべてコピペ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/8e509d83-c835-600f-c5b0-d109099a39cf.png)

入力後[TESTSSO]をクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/e7bec825-a70a-574a-8ac5-2f045edfe2c8.png)

無事SSOが出来ました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/996747a2-ee0a-718f-17a5-f11f7ae79da2.png)
※テストをしないとSSOの登録ができないので気を付けてください↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/0461f8a3-94c9-7461-ab70-45cea286e13b.png)

#ユーザープロビジョニング

続いてユーザープロビジョニングを実施してみます。
workplaceでは　ユーザプロビジョニングすると、新規ユーザーはworkplaceのデフォルトグループに所属されます。
これをユーザーがworkplace登録時にマーケティングチームに参加させてみようと思います。
グループを分けることで、workplace参加時に例えばデフォルトグループは全員公開にして、他のグループはグループに参加している人しか見れないようにする等が可能になります。

##workplace側グループの設定

右側の[…]から管理グループを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/92a31e8b-fab3-3aea-d3e3-b0fc012b151d.png)
[管理オプション]を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/f28f1d4a-c399-3aa0-2412-e20e71737c3e.png)
[グループ設定]を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/27010b6b-9735-1d27-9bc3-e25dd7053556.png)
自動メンバーシップ[メンバールール]を設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/89ec5fca-7f13-aa25-5f09-4f156988f647.png)
ここでは役職に営業が含まれたらマーケティングチームに属するように
設定してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/d62ffd99-d7d9-31c7-0a25-9a5bb048e22c.png)

Microsoft GraphでAzureADのユーザー属性を見てみます。
役職は"jobTitle": "営業部長"となっていました。
AzureADでのjobTitleがworkplaceの役職に
プロビジョニングされれば、マーケティングチームに所属されるはずです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/209ae12e-628b-820b-2c17-b3b9a5f64f80.png)

##プロビジョニングの設定

ではプロビジョニングの設定をしてみます。

AzureADのworkplaceアプリ画面でプロビジョニングタブを選択し、
プロビジョニングモードを手動にします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/f4980904-a66e-4835-1020-a49c6a81e035.png)
管理者資格情報で[承認する]をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/5818da26-d761-c5aa-db70-2150ed22e327.png)
以下の画面が表示されるので、[workplaceに追加］をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/f1aa2b73-88fb-c7f8-7be6-cff3bd1db8e2.png)

そうするとworkplace側にプロビジョニングのアプリが作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/41ccf16d-f0f4-150a-4e72-709f87418aff.png)
この統合を使用して追加された人をその都度workplaceに自動的に招待します
をONにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/cc93fbd3-aec1-7e95-21a2-bc421d19b426.png)
※workplaceへの参加は以下のような設定ができます。
上記はユーザーがプロビジョニングされたタイミングで、招待メールを送る設定をしています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/25e59b4e-95a6-b673-8ac7-e245479bc450.png)
プロビジョニングするユーザーを追加します。
ここではtestuserを追加しました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/d9c6a2f8-ceed-9d87-5290-d2adeb0edbae.png)
プロビジョニング開始ボタンをクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/7c1700d2-c094-d563-37a8-2458b2fa32eb.png)
無事Workplace側に追加されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/532e5e94-2b4a-8613-aeec-35b7a2d64733.png)
プロビジョニングされると、ユーザーに招待メールが送られます
join your teamをクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/fd5636c9-27e0-5553-4f80-b8528ba6ec49.png)
Azureのアカウントでログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/9f5cab53-ae87-38c3-1f0e-5ef24f16123f.png)
登録するをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/703113b0-d046-5a30-7b77-9eeeadd73493.png)
無事プロビジョニングされたユーザーでSSOできました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/1d6fe945-b58d-49e7-979c-c9f66886b111.png)
マーケティングチームにも追加されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/5b96da7f-0584-e197-2de6-827e686b3958.png)
ユーザーの役職が営業部長になっています。無事プロビジョニングされてますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/1a7a6e8e-ee7a-ea3e-85ca-c12168c38831.png)



#まとめ
無事SSOとユーザープロビジョニングをすることができました。
認証連携はそこまで難しくなかったのですが、workplace側の仕組みをある程度理解しておく必要があると感じました
以上です。