Azure ADで IBM Cloudポータルにシングルサインオンする

# はじめに
IBM CloudのApp IDは、IBM CloudポータルのIdPになることが可能であり、かつSAMLのSPになることができます。本記事ではAzure ADのIdPを用いてIBM Cloudのポータルの認証を行います。

※AWSの連携についてはこちら
Qiita：[AWS IAM Identity Center で IBM Cloudポータルにシングルサインオンする](https://qiita.com/takason/items/1edff3eddeaf9a632613)

# 事前準備
- Azure
    - ログインユーザーアカウント
- IBM Cloud 
    - App ID インスタンス

# 手順
## Azure上での作業
### アプリケーションの作成
 [Microsoft Entra 管理センター](https://aad.portal.azure.com/#dashboard)にアクセスします。
 左メニューの「**エンタープライズアプリケーション**」をクリック、「**新しいアプリケーション**」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/fe5d89bc-9b3a-b5e8-a343-115b50354fa4.png)

「**独自のアプリケーションの作成**」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/dfcc04cf-830c-2648-95a5-262bb2d32ae8.png)

任意のアプリケーション名を入力し、「**作成**」をクリックします。
<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/96900345-e80e-ef7b-e357-c2850775b672.png width=70%>


### ログインユーザーの設定
「**ユーザーとグループの割り当て**」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/465b0eab-4b41-b6ad-fc5b-73c763425797.png)

「**ユーザーまたは負ループの追加**」より対象ユーザーを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/3d00cb0d-b990-aff6-8d9c-e27d433bc95a.png)



### アプリケーションの設定
作成したアプリケーションの詳細画面で「**シングルサインオンの設定**」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/5cd6f614-bb97-479c-af94-291410746b17.png)

シングルサインオンの画面で「**SAML**」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/b4ed87a7-becc-6baf-cd40-1632e3f59bc1.png)


以下のように必須項目の情報を提供する必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/0ee12926-8c79-7a9a-3942-e4fb5cdc2e80.png)

[「(後述)App IDのメタデータの取得」](https://qiita.com/takason/items/b23929781d5ef5eef6db#app-id%E3%81%AE%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%8F%96%E5%BE%97)で取得したメタデータを「**メタデータファイルをアップロードする**」よりアップロードし、「**保存**」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/9db02fa1-c09b-76c3-b1e0-03533c0318ed.png)

### IdPの情報を取得
IdPの情報を取得します。（App IDで使用します）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/09b29afe-907c-8bc8-4fcd-c0a3b8ceb0fd.png)


## IBM Cloud上での作業
### SAML2.0の有効化
作成したApp ID詳細画面の「**Manage Authentication**」をクリックし、「**SAML2.0 Federation**」のスイッチを有効化します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/7a2ac0ff-85f7-d254-28a0-96275c589ba3.png)

### App IDのメタデータの取得
作成したApp ID詳細画面の「**Identity Providers**」→「**SAML2.0 Federation**」をクリック、「**Download SAMLmetadata file**」をクリックしてxmlファイルを取得します。
<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/f60307e8-2feb-2c8a-0a27-cbc95167dd75.png width= 70%>


### App IDにAzure ADを設定
[(前述)「IdPの情報を取得」](https://qiita.com/takason/items/b23929781d5ef5eef6db#idp%E3%81%AE%E6%83%85%E5%A0%B1%E3%82%92%E5%8F%96%E5%BE%97)で取得したIdPの情報を以下のように入力し、「**Save**」をクリックします。
- Entity ID：Microsoft Entra 識別子をコピー
- Sign in URL：ログイン URL をコピー
- Primary certificate：ダウンロードした証明書（Base64）のcerファイルの中身をコピー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/c07301d5-6f36-fc3b-e614-cdd3ed31e08e.png)

以上の手順が完了していると、App IDの「**テスト**」から、以下のように成功します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/ce99be51-57af-85d7-09a9-74f17b622bc9.png)
<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/dee622b8-f495-efa4-2b61-4fbbef005766.png width=60%>

### IdPを設定
「**Default IdP URL**」はログイン時に使用するURLです。必要に応じて編集します。
「**Manage**」→「**Access(IAM)**」→「Identity Providers」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/7a9e6e5e-f918-f3e5-bfef-74244d9a1e81.png)

未作成の場合は「**Create**」、作成済の場合は右の「︙」より以下のように編集し「**Update**」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/9caca8ff-413b-dafe-c49a-d4cbac1e5f1f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/210ed240-4b38-6b13-4d7c-79a82088d9e5.png)

以上で設定が完了です。


# ログインテスト
[(前述)IdPを設定](https://qiita.com/takason/items/b23929781d5ef5eef6db#idp%E3%81%AE%E6%83%85%E5%A0%B1%E3%82%92%E5%8F%96%E5%BE%97)で確認した「**Default IdP URL**」へアクセスすると以下の画面が表示されます。
「Login with azure」をクリックします。
<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/2267e1fb-de92-1d64-4e45-9afe1bc0c791.png width=60%>

Azureのログイン画面が表示され、無事IBM Cloudポータルが表示されました！
<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/f5a784c7-c273-9aaa-1f17-17d19bf96c5f.png width=70%>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676/fa5cdde3-5c40-2021-6f9b-b0690c41059a.png)