---
title: Auth0を利用してSAML認証によるSSOを実装する
description: Auth0を利用してSSOを実装する方法を説明します。Auth0をIdP, KurocoをSPとしたSAML認証によるシングルサインオンになります。
---

Auth0を利用して、SAML認証によるSSOを実装する手順を説明します。    
Auth0をIdP, KurocoをSPとしたSAML認証によるシングルサインオンになります。

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

## Auth0でアプリの作成
### Auth0にログインする
Auth0に[ログイン](https://auth0.com/api/auth/login?redirectTo=dashboard)し、[Applications]メニューから、画面右上の[Create Application]ボタンをクリックします。  

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

### アプリを作成する
任意の名前を入力し、「Regular Web Applications」を選択して[Create]をクリックします。    

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

### 設定情報を取得する
アプリの作成ができたら[Settingsタブ]に遷移します。  

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

画面下までスクロールし、[Advanced Ssettings]を開きます。

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

#### 証明書をダウンロードする
[Cartificates]タブを開き、[Download Certificate]をクリックして証明書をダウンロードします。  
ファイル形式はPEMを選択してください。

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

#### SAML Protocol URLを取得する

[Endpoints]タブを開き、SAML項目のSAML Protocol URLをコピーします。  

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

## Kurocoの設定
### SAML SPを追加する
Kuroco管理画面の左メニューから[外部システム連携] -> [SAML SP]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/b7fa87cc1c53847202ca468d27a08bfa.png)

[追加]ボタンをクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/2447f5b4ad701d6a91126ab47d5c0675.png)

SAML SP編集画面の各項目を下記の通り設定します。  
証明書の入力欄は[設定ファイルがありませんか？こちらをクリックしてください。]をクリックして表示してください。  

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

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

#### 項目説明

|項目   |説明  |
| :--- | :--- |
|ログインSAML SP Name|任意の名称を入力します。|
|ターゲットドメイン|[管理画面]を選択します。|
|エンティティID|任意の文字列を入力します。|
|証明書|[ファイルを選択]ボタンをクリックし、Auth0から取得した証明書(.pemファイル)をアップロードします。|
|IDP URL|Auth0から取得したSAML Protocol URLを入力します。|
|IDPエンティティID|Auth0から取得したSAML Protocol URLを入力します。IDP URLと同じになります。|
|有効期限|任意の日時を設定します。|
|ログインIDを使用|チェックをOFFにします。|
|自動ユーザー登録|チェックをONにし、任意のグループを選択します。|
|IDP起点フローを許可|チェックをONにします。|
|Binding Method|「POST」を選択します。|

### ログインSAML SP ACS URIを確認する
先ほど追加した[ログインSAML SP Name]をクリックします。  

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

[ログインSAML SP ACS URI]が表示されているのでコピーします。  

また、証明書ファイルが無くなっているので再度アップロードして更新します。   

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

## Auth0でSAML2 WEB APPを有効にする
Auth0のアプリ設定に戻り、[Addons]タブの[SAML2 WEB APP]をクリックします。

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

Addonの設定が開くので、Application Callback URLにKuroco管理画面で確認したログインSAML SP ACS URIを入力し、Settingsに以下のJSONを入力します。  

```json
{
	"mappings": {
		"name": "name1",
		"email": "email"
	}
}
```

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

設定ができたら画面下までスクロールし、[Enable]をクリックします。

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

[SAML2 WEB APP]が有効になったらAuth0の設定は完了です。  

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

## 動作の確認をする
設定が完了すると、Kurocoのログイン画面にSSOのリンクが表示されます。  

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

リンクをクリックすると、Auth0のログインページに遷移します。

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

こちらでSAMLログインができるようになります。