Rancher Azure Active Directory 連携

### Configuring Azure AD のページでAzure ADの設定方法が「App registrations (Legacy)」だったので「Microsoft ID プラットフォーム (v2.0) 」での設定方法をメモ
#### Configuring Azure AD
https://rancher.com/docs/rancher/v2.x/en/admin-settings/authentication/azure-ad/


####1. RancherをAzureに登録
「App registrations」を検索
![App_registrations.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/8b1f90f1-13d6-7533-726a-f828bd151c74.png)
「New registrations」を選択
![New_registrations-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/ff916bcc-7237-4d0c-3257-8797344a21e5.png)
「Register an application」に必要事項入力して登録
![Register_application-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/4dc77cb6-fd5b-49b1-7993-3339688ea36f.png)

####2. Azure API Keyを作成
![Create_AZ_API Key-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/2e78e2c0-31b8-bf9d-e302-666186235e57.png)
![Create_AZ_API Key-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/2bb784b4-fde7-4741-91d1-63466021d780.png)
「Expires」の期間は各自で選択
![Create_AZ_API Key-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/f7d3f412-8577-e3a1-d912-4d7bf57ef819.png)
Keyの値をテキストファイルへ保存します
<font color="Red">__次の画面へ推移した後はKeyの値は再表示できませんので注意してください__</font>

####3. Rancherに必要な権限を設定
Azure内でRancherのAPI権限を設定します
![Create_AZ_API Permisions-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/08a52b3a-237c-05d6-921a-6b7dc8745f4c.png)
スクロールダウンして「Azure Active Directory Graph」を選択
「Azure Active Directory Graph」は「Supported legacy APIs」なので、今後は「Microsoft Graph」を使用した方が良い

![Create_AZ_API Permisions-04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/fe350430-6277-f9eb-ea73-92e334f8a9e5.png)
![Create_AZ_API Permisions-05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/d75aedd4-7c57-6a1b-a2e7-41aa7712238d.png)
必要項目にチェックを入れて「Add Permissions」を選択
![Create_AZ_API Permisions-06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/867bf901-8de7-64f8-3a63-b2bc5400b5a6.png)
設定した権限付与に同意
![Create_AZ_API Permisions-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/e0330e26-9df6-72af-3ffb-f9a16dc1674c.png)
![Create_AZ_API Permisions-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/942f0bde-3089-8de3-4240-7f5d92d5333f.png)
Grant Permissions の成功表示を確認
![Grant_Sucsess-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/c1c0ced6-ad91-e87d-fdc7-1f2647ceb2b0.png)


####4. Reply URLの追加
![Create_AZ_Replay_URI-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/070e5a27-8468-c7f3-b85b-63fb5448fbfe.png)
「https://Rancher-URI/verify-auth-azure」 を設定
![Create_AZ_Replay_URI-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/850909fd-e170-2db5-d56e-f2cbae57c519.png)

####5. Azureアプリケーションデータのコピー
「Endpoints」を表示
![Create_AZ_End_Points-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/6e678cab-c2ce-7639-b01d-7945ecac7142.png)
下記3つの情報をテキストファイルへ保存

    Microsoft Azure AD Graph API Endpoint
    OAuth 2.0 Token Endpoint
    OAuth 2.0 Authorization Endpoint

####6. Ranncher側でのAzure AD設定
Rancherにサインインして「Security」-「Authentication」のページを開く
「Azure AD」を選択して下記の項目を入力し保存する

| Rancherの設定項目| Azureの値|
|:------------------:|:------------:|
| Tenant ID  　　　　 |Directory ID　|
| Application ID  　 |Application ID|
| Application Secret | 2.の手順で保存したKeyの値              |
| Endpoint           | https://login.microsoftonline.com/   |
| Graph Endpoint     | Microsoft Azure AD Graph API Endpoint|
| Token Endpoint     | OAuth 2.0 Token Endpoint             |
| Auth Endpoint      | OAuth 2.0 Authorization Endpoint     |

####7. Azure AD に登録したユーザでサインインします
![Create_AZ_Login-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71534/b933490d-a88b-41fd-77e2-a341f1ac633e.png)

####8. 参考URL
Training guide: App registrations in the Azure portal
https://docs.microsoft.com/ja-jp/azure/active-directory/develop/app-registrations-training-guide