---
title: Microsoftを利用してOAuth認証によるSSOを実装する
description: KurocoをOAuthサービスプロバイダーとして使用し、Microsoftを利用したSSOを実装する（Microsoft AzureおよびMicrosoft Entra）
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

KurocoをOAuthサービスプロバイダーとして使用し、Microsoftを利用したSSOを実装する方法について説明します。

:::info
本チュートリアルは、任意のMicrosoftユーザーがKurocoにログイン/登録できるようにする、OAuth認証を利用した実装を説明するものです。  
Active Directory B2Cを使用したユーザーフロー制御SSOについては、[IDaaSを使用してAzure Active Directory (AD) B2C SSOを実装する](/docs/tutorials/using-idaas-to-implement-azure-ad-b2c-sso/)を参照してください。
:::

## 前提条件
Microsoftアカウントを所持していることが前提となります。

## Kuroco管理画面でSP設定を追加
まず、Kurocoの管理画面でOAuth SP設定を追加します。

**1. SSO OAuth SP設定ページにアクセスする**  
[OAuth SP一覧](/docs/management/sso-oauth-sp/)に遷移し、[Add]ボタンをクリックして新しいサービスプロバイダーを追加します。

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

**2. SP設定を追加する**  
SSO OAuth SP編集ページで以下を入力し、[追加]ボタンをクリックします。

| 項目 | 値 |
| :-- | :--- |
| OAuth SPの名称  | 任意の名前。これは内部参照用であり、Microsoft側と一致する必要はありません。 |
| 有効   | チェックを外す |
| ターゲットドメイン | ユースケースに応じてAPIアクセス用または管理パネルへのログインを許可するためのものです。このチュートリアルでは管理画面を設定します。 |
| タイプ | Microsoft IDを選択。 |
| ユーザーの自動登録 | 新規アカウントを許可するかどうかに応じてチェックボックスを選択します。このチュートリアルではチェックします。|
| 登録時に設定するグループ | 登録時に割り当てられるユーザーグループ。このチュートリアルでは、Administratorを設定します。|

:::warning
新規メンバーに管理者グループを使用すると、意図しないメンバーがサインアップして管理者権限を得るリスクがあります。実際の運用時には、新規ユーザー登録を無効にするか、より制限された権限のグループを選択することをお勧めします。
:::

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/4c0c5f94cfd82ffb420311a7e5ef5ca7.jpg)

**2. ログインURLをコピーする**  
設定の追加後、追加したサービスプロバイダー名をクリックして、SSO OAuth SP編集画面を開き、ログインURLをコピーします。このURLはMicrosoftポータルでの設定に利用します。  

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

## Microsoftポータル設定
次に、[Microsoft Azureポータル](https://portal.azure.com/)または[Microsoft Entraポータル](https://entra.microsoft.com/)でOAuthアプリ登録と設定を行います。  
- 画面はMicrosoftの仕様によって変更される場合があります。

**1. OAuthアプリケーション設定ページにアクセスする**  

<Tabs>
<TabItem value="Azure" label="Azureポータル" default>

Azureポータルでは、クイックアクセスもしくは検索から[Azure AD B2C]をクリックします。
![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/bbaf68059cb6562b91a6ad188de39441.png)
![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/95975fba6824d3d443c3cceb25fa324a.png)

</TabItem>
<TabItem value="Entra" label="Entraポータル">

Entraポータルでは、サイドメニューもしくは検索から[アプリの登録]を選択します。
![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/a28d8dd047411130a9cb21f603a9735f.png)
![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/092b59604e082e3402cb4668b5e17c9e.png)

</TabItem>
</Tabs>

**2. 新しいアプリケーションを作成する**  

<Tabs>
<TabItem value="Azure" label="Azureポータル" default>

Azureポータルでは、アプリ登録をクリックしてから、新規登録をクリックします。  
![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/c9399def755f32134f1f05b3b6df8933.png)
![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/7e3504e8ae54330fae81c0520ff24f66.png)

</TabItem>
<TabItem value="Entra" label="Entraポータル">

Entraポータルでは、新規登録をクリックします。  
![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/b5310075ea0a522138d6a954d82a121c.png)

</TabItem>
</Tabs>

**3. アプリケーション設定を入力する**  
これ以降のステップは、Microsoft AzureポータルとMicrosoft Entraポータルで同じです。  
そのため、このチュートリアルでは、これ以降はMicrosoft Azureポータルのキャプチャで説明します。

設定に以下を入力して[登録]ボタンをクリックします。

| 項目 | 値 |
| :-- | :-- |
| 名前 | 任意の名前。これはMicrosoftポータル内での内部参照用であり、Kurocoと一致する必要はありません。 |
| サポートされるアカウントの種類  | このアプリケーションを使用するユーザーの種類に応じて選択します。このチュートリアルでは、すべてを許可します。 |
| リダイレクトURI (ドロップダウン) | Webを選択 |
| リダイレクトURI (テキストフィールド) | KurocoのSSO OAuth SP編集画面からコピーしたログインURLを貼り付け |

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

**3. アプリケーション（クライアント）IDをコピーする**  
登録が成功した後、ダッシュボードからアプリケーション (クライアント) IDをコピーします。これは、KurocoのOAuth SP編集画面に設定します。
![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/5c25b839faf9ecce12fd1b629a868e0f.png)

**4. クライアントシークレットを作成する**  
[証明書とシークレット]をクリックしてから、[新しいクライアントシークレット]をクリックします。
![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/951b9e951c6494ec456428a42c7f4ab1.png)

**5. シークレットの説明と有効期限を更新する**  
説明を入力し、有効期限を選択します。

:::caution
シークレットの有効期限が切れた後は、新しいシークレットを発行し、KurocoのOAuth SP編集画面に設定する必要があります。
:::

データを入力した後、[追加]をクリックします。  

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

**6. シークレット値をコピーする**  
クライアントシークレットの登録に成功した後、ダッシュボードからシークレット値をコピーします。これは、KurocoのOAuth SP編集画面に設定します。

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

以上で、Microsoftダッシュボードでのステップは完了です。

## Kuroco OAuth SP編集の設定
Microsoft OAuthアプリからコピーしたクライアントIDとクライアントシークレットをKuroco管理画面のOAuth SP編集画面に入力し、[更新]をクリックします。

| 項目 | 値 |
| :-- | :-- |
|有効|チェックを入れる|
| クライアントID (Client ID)   | ステップ4でコピーした[アプリケーション（クライアント）ID]の値 |
| クライアントの秘密鍵 (Client Secret) | ステップ6でコピーした[シークレット]の値 |

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

## 使用方法
作成されたOAuth SP画面を確認します。
SSO OAuth SPリスト画面で作成したSP設定の[ログインOAuth SP名]をクリックします。  
![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/e2b09e7c779b70a117e50eb901e73317.png)

[ログインURL]が表示されるので、 シークレットモードでURLを開きます。  
![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/f8cad4364277c24880ff46848f3e8e93.png)


または、タイプが管理パネルに設定されているので、管理パネルのログイン画面に移動し、外部ログインSSOの[外部アカウントでログイン]リストからSPを選択します。  
![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/d89e4b42b497ab0c4b970e5d9d031dda.png)

Microsoftログイン画面に遷移し、SSOが使用できます。  
![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/0d4b4b2c9e8ec77c12d09b2b8aac3910.png)

アプリを通じて初めてログインする新規アカウントの場合、権限を求められます。  
追加情報の登録が必要な場合は、カスタムのタイプを使用し、希望のスコープを追加することも可能です。  

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