AzureADでLINE WORKSにSSO(SAML)する方法

AzureADでLINE WORKSへSSOする方法について、簡単にまとめてみたいと思います。

# はじめに
LINE WORKSでは、SSOはSAML2.0とOAuth2.0の2つに対応しています。
公式ドキュメントは**[こちら](https://developers.worksmobile.com/jp/document/1?lang=ja)**！

# 1. AzureAD側の設定
## 1−1.　AzureADにLINE WORKSのアプリケーションを登録する
①　[https://portal.azure.com/](https://portal.azure.com/)アクセスし、全体管理者でログイン。
②　左メニューの[Azure Active Directory]をクリックし、[エンタープライズアプリケーション]をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/cd9db694-b746-54d8-c9b1-4f3b1852f422.png)
③上部メニューの[+新しいアプリケーション]をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/7c9a3bf0-52df-d260-7a14-7d5c26365bc6.png)
④[ギャラリーから追加する]欄で「LINE WORKS」アプリを検索します。アプリケーションが見つかったら、それをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/0fa63811-03be-3692-ec24-0366bdfd8695.png)
⑤[追加]をクリックしアプリケーションを追加します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/f8942770-de9f-0afe-1a8d-975076d24159.png)
⑥左のメニューの[シングルサインオン]をクリックし、シングルサインオン方式の選択画面で[SAML]をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/5ac09eca-8c60-910f-d43c-693c1853d258.png)

## 1−2.　AzureADでシングルサインオンを構成する

①　[基本的なSAML構成]から設定していきます。メニュー横の鉛筆マークをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/52fd570b-94ac-a5cd-4920-e7590f5dcd5a.png)

② 下記のように設定し、完了したら[保存]をクリックし、設定を保存します。

| 項目       | 設定内容        | 参考情報         |
|:-----------------|-------------------|--------------------|
| サインオンURL      |https://auth.worksmobile.com/d/login/{ドメイン名}|[公式ドキュメント](https://developers.worksmobile.com/jp/document/3001001?lang=ja)|
| 応答URL（Assertion Consumer Service URL） |https://auth.worksmobile.com/acs/{ドメイン名}|[公式ドキュメント](https://developers.worksmobile.com/jp/document/10010802?lang=ja)|
| 識別子（エンティティID）|worksmobile.com|[公式ドキュメント](https://developers.worksmobile.com/jp/document/10010802?lang=ja)|

![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/c405754a-b33e-fe8f-d325-bb7d18528583.png)

③　[ユーザー属性と要求]は、デフォルト設定のままにしておきます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/05ff389d-3d77-9f87-04a9-cefcc3952bb1.png)

> **補足**
> SP（LINE WORKS)へ渡す属性値（IdPとSPでユーザーを紐付けする一意の値）を変更する場合、[ユーザー属性と要求]メニュー横にある編集ボタンをクリックし[ユーザー属性と要求]画面にて「名前識別子の値」を変更します。
> 例えば、メールアドレスに変更する場合は、[ユーザー要求の管理]画面にて[ソース属性]で「user.mail」を選択します。
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/2ffd37c3-280e-afda-2c81-39f9201d0499.png)
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/976c638f-fed9-8d22-4c34-166d6c030496.png)

④ [SAML署名証明書]にて、「証明書（Base64)」をダウンロードします。ダウンロードした証明書の拡張子を「.cer」から「.pem」へ変更します。
LINE WORKSへ登録するときに、「.pem」拡張子である必要があります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/f1c5daeb-24f7-f6f2-e7ad-6bb1dcf2935a.png)

⑤ [LINE WORKSのセットアップ]画面に表示されている情報は、「2. LINE WORKS側の設定」で使うので確認しておきましょう。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/d2623a69-1293-4077-01ab-2dbb156ca9ea.png)

## 1-3.　AzureADのユーザーにLINE WORKSのSSOが利用できるように設定する

① 左メニューの[Azure Active Directory]をし、[エンタープライズアプリケーション]をクリックします。

② 1−2.で登録した[LINE WORKS]アプリケーションをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/6d064d35-3d5e-cd3f-a0ba-1dc230c90217.png)

③ [ユーザーとグループ]をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/f60e1b58-9d3e-b35e-edcd-71a48ca6f6ec.png)

④ [+ユーザーの追加]をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/d9ea30fd-fc50-6d22-63de-6af5b45ae805.png)

⑤ ユーザーを検索し、SAML SSOを使わせたいユーザーを選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/58ec544e-80fe-3033-311e-ca4d7252be2a.png)

⑥ ユーザーを選択したら、画面下の[割り当て]ボタンをクリックし、利用権限の割り当てを行います。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/8a512fb3-35de-37a7-1347-cf576bee7667.png)

# 2. LINE WORKS側の設定
## 2-1.　SSOの設定を有効にする

① Developer Consoleへログインします。
https://developers.worksmobile.com/jp/console/openapi/main

②　左のメニューで[SSO]をクリックします。
③　[SSO Type]画面で、[SAML]を選択します。
④ 下記項目を、Azureの設定画面からコピーして記入します。

| LINE WORKS側のラベル名       | Azure AD側のラベル名       |
|:-----------------|-------------------|
| Web Login URL      |ログインURL|
| Logout URL      |ログアウトURL|
| Certificate File      |1-2の④でダウンロードした.pem拡張子のファイル|

![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/8ce4f513-d82c-08a9-214f-cffc4f6fdd79.png)

⑤ 全て設定が完了したら[適用]ボタンをクリックして保存します。

## 2-2.　External Keyを設定する

AzureADのユーザーIDとLINE WORKSのメンバーの ExternalKey は同一の値である必要があります。メンバーの ExternalKey は Developer Console の SSO 設定ページにある 「構成員 External Key Mapping」で確認、編集できます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/53a43228-3cd2-a807-0527-32034809da2c.png)



## 3. テスト
さあ、テストしてみましょう！

##3-1. LINE WORKSからログイン
① 下記のログインURLにアクセスします。
https://auth.worksmobile.com/login/myService
②　ID（xxx@ドメイン名）を入力すると、AzureADへリダイレクトされます。
③ AzureADのIDとパスワードを入力しSign inします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/1f6a11fe-d6ad-09c8-8451-4b3f0079be52.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/23425d62-1f18-59d9-6d11-3f8314afa0c3.png)
④ 下記のようにLINE WORKSへリダイレクトされログイン出来ていたら成功です！！
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/51e5aaa6-323c-43dc-3970-6b1eacee7f4f.png)

## 3-2. AzureADからログイン
① [アクセスパネル](http://myapps.microsoft.com)へアクセスします。
② LINE WORKSをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/b9e5b011-ad5c-7277-d01f-9a730f1183a4.png)
③ 下記のようにLINE WORKSへリダイレクトされログイン出来ていたら成功です！！
![image.png](https://qiita-image-store.s3.amazonaws.com/0/135983/51e5aaa6-323c-43dc-3970-6b1eacee7f4f.png)

手順は以上になります。