---
title: IDaaSを使用してAzure Active Directory（AD）B2C SSOを実装する
description: このチュートリアルでは、Microsoft Azure Active Directory B2C（AzureADB2C）を使用したIDaaS SSOの実装方法について説明します。これは、Microsoft Azure ADをIdP、KurocoをSPとするOAuth認証を使用したSSOです。
---

このチュートリアルでは、Microsoft Azure Active Directory B2C（Azure AD B2C）を使用したIDaaS SSOの実装方法について説明します。
これは、Microsoft Azure ADをIdP、KurocoをSPとするOAuth認証を使用したSSOです。

:::info
このドキュメントは、IDaaS機能を使用するActive DirectoryユーザーのSSO実装について説明しています。
MicrosoftのOAuth機能を使用したOAuth SPログインについては、[Microsoftを利用してOAuth認証によるSSOを実装する](/ja/docs/tutorials/implement-login-with-microsoft/)を参照してください。
:::

## 前提条件
このチュートリアルはAzure ADテナントアカウントを所持していることが前提となります。

## Kuruco管理画面でIDaaS設定を追加する
まずは、Kurocoの管理ページにIDaaS設定を追加します。

**1. IDaaS SP設定ページにアクセス**  
[IDaaS SP編集](/ja/docs/management/sso-idaas-sp/)を参考に、IDaaS SP編集ページにアクセスします。

**2. SP設定を追加**  
IDaaS SP編集ページに以下を入力し、「追加」ボタンをクリックします。  
この段階では有効のチェックを外してください。クライアントID、秘密鍵の入力不要で追加が可能です。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/56c497fbee163e9bb66c846d42f9680a.png)

![Image from Gyazo](https://t.gyazo.com/teams/diverta/84e5550b980966daa5c9d5a6dcce8334.png)

| 項目  | 説明 |
| :-- | :--- |
| ログインIDaaS SP名   | 任意の名前を入力します。 |
| ターゲットドメイン   | IDaaS SPのターゲットドメイン<br/>本チュートリアルでは管理画面に設定して進めます。 |
| タイプ  | AzureADB2C  |
|Emailを利用せずメンバー拡張項目にIDを格納してリンクする|有効にするのチェックを外す<br/>`emails`<br/>`0`|

追加したIDaaS SPを開き、[ログインURL]を控えます。  
後ほど、Microsoft Azure Portalで使用します。  
(URLの形式は `https://<管理画面URL>/direct/login/idaas_login/spid=<SP ID>` になります。)

## Microsoft Azure Active Directoryの構成

次に、[Microsoft Azure Portal](https://portal.azure.com/)でAzure AD B2Cアプリを登録します。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/4bd1a64e0d0bffa4c5e3fd21a1294468.png)

:::info
画面はMicrosoftの仕様によって変更される可能性があります。
:::

**1. Azure AD B2Cダッシュボードにアクセス**  
Azure PortalのダッシュボードからAzure AD B2C構成にアクセスします。
クイックアクセスに表示される場合は選択してください。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/bbaf68059cb6562b91a6ad188de39441.png)

ない場合は、検索を使用して[Azure AD B2C]を検索し、開きます。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/95975fba6824d3d443c3cceb25fa324a.png)

**2. 新しいアプリを登録**  
[アプリの登録]をクリックし、[新規登録]をクリックします。これによりアプリ作成画面に移動します。これがMicrosoft Azure側のIdPアプリになります。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/4c29ee6880938624f7b6f35bca0a3bf5.png)

アプリケーションの登録画面で、以下のように入力します。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/7525a188f278456efde8f3e0668ca741.png)

| 項目 | 説明  |
| :--- | :--- |
| 名前  | 任意の名前を入力してください。これはKurocoと同じである必要はありません。MicrosoftのIdPアプリの名前となります。 |
| サポートされているアカウントの種類 | このアプリケーションで有効にするアカウントの種類。アプリケーションを利用するユーザーを選択してください。 |
| リダイレクト URI - プラットフォーム | ドロップダウンから[Web]を選択します。  |
| リダイレクトURL - URL  | 前のステップで控えたKuroco管理画面IDaaS SP編集画面の[ログインURL]を入力します。 |
|アクセス許可|チェックボックスをオンにして、アプリケーションがopenIdの詳細にアクセスする権限を付与します。|

[登録]をクリックします。  

アプリが作成されると、以下のアプリケーションダッシュボードが表示されます。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/abc82ccffc1685cee18ac5636a839c2b.png)

**3. アプリケーション (クライアント) IDをコピー**  
[アプリケーション (クライアント) ID]をコピーします。これはKurocoの IDaaS SP編集画面で使用します。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/437a9160dd587b8170be8c2f69fad791.png)

**4. アクセストークンフローを有効にする**  
[認証]をクリックし、[アクセストークン]のチェックボックスをオンにして[保存]をクリックします。これにより、暗黙的なフローの使用が可能になります。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/00e26cdd1422ffdb0bfe1d304f6ef930.png)

**5. クライアントシークレットを生成する**  
[証明書とシークレット]をクリックし、[新しいクライアントシークレット]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/03347536aeb9ceebddf6c6bcfc574cfe.png)

サイドモーダルで、説明と、シークレットの有効期限を設定して[追加]をクリックします。  

:::caution
有効期限が切れた場合、SSOによるログインが機能しなくなります。  
新しいシークレットをMicrosoftで作成し、Kurocoに再設定してください。
:::

![Image from Gyazo](https://t.gyazo.com/teams/diverta/c80ed0f6c2bb75ec81020b0a3bf38fa5.png)

シークレットの値をコピーします。画面を移動すると表示されませんので注意してください。この値はKuroco IDaaS SP編集管理画面で使用します。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/46cc7e1b075f435e28c98f520f6bb2ac.png)

**6. ユーザー フローを作成する**  
Ad B2C構成ダッシュボードから、[ユーザー フロー]をクリックし、[ユーザー フローの作成]をクリックします。  
（ユーザー フローは、Azure AD B2Cがログインと登録をどのように処理するかを定義します。フローがすでに設定されている場合は、ユーザー フロー作成の手順をスキップして構いません。）  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/2a741acfb9282361a4281c3463ee5fb6.png)

:::tip
サイドメニューにユーザーフローが存在しない場合は、Microsoft Entra ディレクトリではなく Azure AD B2C ディレクトリにいることを確認してください。Azure AD B2C 機能を使用するには、既存の従業員ベースの Microsoft Entra テナントとは別の Azure AD B2C テナントを作成します。
- [Azure AD B2C:よく寄せられる質問 (FAQ)](https://learn.microsoft.com/ja-jp/azure/active-directory-b2c/faq?tabs=app-reg-ga#azure-portal---azure-ad-b2c-----------------------)
- [チュートリアル:Azure Active Directory B2C テナントの作成](https://learn.microsoft.com/ja-jp/azure/active-directory-b2c/tutorial-create-tenant)
:::

ユーザーフローの入り口を選択します。ここで新しいユーザー登録を許可するかどうかを構成できます。このサインアップ構成は、KurocoのIDaaS SP編集画面で見られるKuroco新規ユーザー登録とは異なります。  

本ドキュメントでは[サインアップとサインイン]を選択して進めます。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/666a7dbf049d1542ee19d5c6e3a6c4dd.png)

[推奨]バージョンを選択し、[作成]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/88a63ebcbeecc8a2555021a78a297a44.png)

ユーザーフロー構成画面で、以下の表に従ってフィールドを設定します。データを入力した後、[作成]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/657a7e962a3e5a44a506bb8541b4c582.png)  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/fd64b03dc4f5f181e4d868ca71b27b0b.png)

![Image from Gyazo](https://t.gyazo.com/teams/diverta/9360edd2583ff111e6c0caa830d8b737.png)


| 項目  | 説明  |
| :--- | :--- |
| 名前 | ユーザーフローの識別子。これは一意であり、将来変更できません。 |
| IDプロバイダー | ユーザーがMicrosoft IDaaSにログインする方法を選択します。この例では、電子メール/パスワードに基づくログインを選択します。 |
| 多要素認証 | ユーザーがAzure ADでMFAをどのように構成するかを選択します。この例では、メールを選択します。これは、ユーザー登録のためのメールを検証するためのメールOTPベースのMFAです。 |
| ユーザー属性とトークン要求 | ユーザーから収集され、Kurocoに渡すデータ。追加のデータが構成されている場合、それはKurocoのIDaaS SP編集画面で設定する必要があります。このチュートリアルでは、名と姓をKurocoに渡すために使用されます。 |

[作成]をクリックし、ユーザーフローを作成します。
作成したユーザーフローは、ユーザーフローリストに表示されます。フローを編集するには、フローをクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/f57e08741684ead08bb5c6ab48314608.png)

（**注意:** Kurocoにメールを渡す必要がない場合は、このステップをスキップできます）  

[アプリケーション要求]をクリックし、[メールアドレス]のチェックボックスをオンにして保存します。  
これにより、設定で1つのメールアドレスのみを持つように設定されていても、ユーザーが複数のメールアドレスを持っていても、ユーザーのメールアドレスは同じ配列形式でKurocoに渡されるようになります。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/91dc43fd19155616862dea7c12959e13.png)

**7. 構成URLをコピーする**  
[概要]をクリックし、[ユーザーフローを実行します]をクリックしてから、リソースリンクを新しいタブで開きます。リンクの形式は次のようになります  
（`https://<AD名>.b2clogin.com/<ADドメイン>/v2.0/.well-known/openid-configuration?p=B2C_1_<ユーザーフロー名>`）。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/f3b7afc34b9d2afff2e84e1aafe3134a.png)

JSONデータが表示されます。
[authorization_endpoint]、[token_endpoint]、および[jwks_uri]をコピーしてください。これらはKurocoのIDaaS SP編集画面で使用します。URLの形式を以下の表に示します。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/a7eed063516bf5bfc6a484d518017c9c.png)

| URL  | 形式 |
| :--- | :--- |
| authorization_endpoint | `https://<AD Name>.b2clogin.com/<AD Domain>/oauth2/v2.0/authorize?p=b2c_1_<User Flow Name>` |
| token_endpoint         | `https://<AD Name>.b2clogin.com/<AD Domain>/oauth2/v2.0/token?p=b2c_1_<User Flow Name>`     |
| jwks_uri               | `https://<AD Name>.b2clogin.com/<AD Domain>/discovery/v2.0/keys?p=b2c_1_<User Flow Name>`   |

:::info
ユーザーフローが1つだけの場合は、ユーザーフロー名の代わりにデフォルトが使用されることがあります。
:::

これでMicrosoft Azure側で必要な設定が完了しました。  
次に、KurocoのIDaaS SP編集画面での設定完了が必要です。

## Kuroco管理画面でIDaaS SP編集画面の設定をする

**1. IDaaS SP編集画面の設定**  
KurocoのIDaaS SP編集画面で、[クライアントID (Client ID) ]、[クライアントの秘密鍵 (Client Secret) ]、[承認URL]、[トークンURL]、および[JWKS URI]のコピーした値を入力してください。[リソースURL]は空のままにしてください。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/b41d975de071791fc20ff78e935203cb.png)

**2. ユーザーの識別方法を設定**  
この設定はサイトの構成によります。    
Kurocoはユーザーの識別にEメールまたはAzureユーザーオブジェクト識別子を使用できます。  
Eメールを利用する場合は、[Emailを利用せずメンバー拡張項目にIDを格納してリンクする]のチェックボックスを外す必要があります。  

Eメールをユーザー識別のキーに利用する場合は以下のように設定します。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/bb382ae663d9dc0f8141134db854a3b9.png)

Eメールを使用しない場合は、有効にするのチェックボックスにチェックします。その場合、open_idが保存されるメンバーの拡張項目を選択する必要があります。  
*(注: 使用するメンバーの拡張項目のタイプはテキストである必要があります)*

![Image from Gyazo](https://t.gyazo.com/teams/diverta/a73b663ce698e2ffef80e5e27f4d59c6.png)

**3. IDaaS SPを有効にする**  
最後に[有効]のチェックボックスをオンにし、[更新する]をクリックしてください。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/d038e19882f395a3b40daaef82a39290.png)

これでKuroco側のIDaaS SPも設定が完了です。

## 使用方法
KurocoのIDaaS SPページに遷移します。  
作成したSP構成の[ログインIDaaS SP Name]をクリックしてください。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/7aee6ac5b6c473037be78f6d9fd5aca5.png)

[ログインURL]が確認できます。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/d78d7fa6e6ce7aa83d4378cadd0d7229.png)

URLをクリックすると、Azure AD B2Cログインページにリンクされます。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/b33e99da2ea192fdad0744eada5ba5a3.png)

ここでAzure ADユーザーのEメールとパスワードを入力し、Kuroco SPにログインできます。