Auth0でNew RelicにSSOログインしてみた

# はじめに
Dropbox、Slack、Zendesk、Office365など業務で使用するSaaSが増えると、アカウント管理も大変です、個人であればLastPassや1Passで管理する手もありますが、仕事で組織やグループ毎に管理となると
AD/LDAPやCognitoなど認証基盤を用意してSSOの仕組みを準備するまで気が遠くなります。

それなら認証基盤もクラウドサービスを利用すれば楽ができると思い、今回 IdMaaSで有名なAuth0を使用したNew Relic SSOを試してみたのでご紹介します。

## 使用するサービス

### New Relic (SSO Client)
- パフォーマンス監視サービス
- プラン：PRO (SSO機能はProプランが必要)

### Auth0 (SSO Authorization Server)
- 認証サービス
- プラン：Free
    
    
# Auth0 設定

気になるAuth0の料金ですが、月額0円のFreeプランでも”7,000アクティブユーザ＆無制限ログイン”
可能です。社内利用やテスト環境で使用するには十分だと思いますので、まずはアカウント作成して
ログインしてください。詳細については、[Auth0 Pricing](https://auth0.com/pricing)をご参考ください

## １．ユーザDatabaseの作成
Google、Facebook、Microsoftなどの各種ソーシャル認証も簡単に追加することができますが、今回はAuth0にユーザ情報のDBを作成して管理します。
### Database 作成
> ①[Connections] --> [Database]を選択
> ②[CREATE DB CONNECTION]ボタンでユーザDatabaseを作成します

> ------------
>![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/52a0f250-9a4c-a2fb-1168-f709fb6a7a74.png)

### 各種設定
> ① DBの名前を入力
> ② アカウント情報にメールアドレス以外にユーザネームを追加したい場合はONにします
> ③ 認証画面で新規ユーザ追加をDisableにしたい場合はONにします

> ------------
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/cabfb9f5-cc7d-0d7f-f132-8ad82c780ed4.png)

## ２．New Relic SSO 設定

### INTEGRATION 作成
> ①[SSO Integrations]を選択
> ②[CREATE SSO INTEGRATION]ボタンを押すと、統合できるサービス一覧が表示されます

> ------------
>![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/77dd397b-7b74-faef-9c1f-f7a6dff0ac3e.png)

### INTEGRATIONでNew Relicを選択
> INTEGRATIONにあるサービスであれば簡単に設定できます。ないサービスはマニュアルでSSO設定も可能です。

> ------------
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/9851d382-7274-ee2a-0037-ade7f6092c55.png)

### SSO INTEGRATION 名を入力
> わかりやすいユニークな名前を入力
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/7d80e9bf-20f7-5e61-77c4-3860409e254c.png)

### 各種設定
> ① SSOしたいNew Relic アカウントIDを入力
> ② Auth0の証明書をダウンロード（後でNew Relic側の設定で必要です）
> ③ Remoto Login URLをコピー＆メモ（後でNew Relic側の設定で必要です）
> ④ Logout URLをコピー＆メモ（後でNew Relic側の設定で必要です）

> ------------
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/54a5da48-1b61-331c-e7d1-137467f294c8.png)

### ユーザDatabaseの選択
このNew Relic IntegrationのSSO認証で使用するユーザデータを選択します
> ① [Connections]を選択
> ② 「１．ユーザDatabaseの作成」で作成したユーザDatabaseが表示されるので、有効(ON)にします。

> ------------
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/c962d452-b195-716b-3bb1-6bc62d222ea9.png)

## ３．ユーザの追加
### ユーザ作成
> ①[Users]を選択
> ②[CREATE USER]ボタンを押すと、User登録画面がポップアップ表示されます

> ------------
>![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/6f717d8b-5cd1-da74-218f-a25af40fb43b.png)

### ユーザDatabaseの選択
SSOを使用するユーザを追加していきます

> ① Emailアドレスを入力（Verifyの為、作成後にこのEmailアドレス宛てメールが送信されます）
> ② パスワードを入力
> ③ 「１．ユーザDatabaseの作成」で[Requires Username]を有効にした場合は、ユーザ名を設定できます
> ④ 「１．ユーザDatabaseの作成」で作成したDatabaseを選択します

> ------------
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/50b55a1f-4610-cb94-07f9-4eb99589023d.png)

# New Relic 設定
## １．SSO 設定
### SAML設定画面の表示
> 右上メニューから[Account settings]を選択

> ------------
>![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/aac0fe0c-22b1-9444-fb77-609808582687.png)


> 左メニューから[Single sign-on]を選択

> ------------
>![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/5f618196-5e83-a3b5-fda3-fafdbf3f91e7.png)

### SAML設定
> ① Auth0の「２．New Relic SSO 設定」でダウンロードした証明書をアップロード
> ② Auth0の「２．New Relic SSO 設定」でコピー＆メモした Remote login URLを入力
> ③ Auth0の「２．New Relic SSO 設定」でコピー＆メモした logout URLを入力
> ④ [Save my changes]ボタンで設定を反映

> ------------
>![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/bc8b4fb6-f444-a8e3-d408-d6e768ed3742.png)

## 2．SAML認証確認
### SAMLログイン 確認
SAML設定内容が正しく動作するか確認します
>![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/32ece54d-4cdc-7c8a-83fb-2b54977233e0.png)

### 認証画面
SAML設定内容が正しければ、Auth0のデフォルト認証画面が表示されます。
auth0設定の「３．ユーザの追加」で追加したユーザ情報でログインしてみます

> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/b9a852de-7352-6cf9-ef00-79824af5fc00.png)

### SAML有効化
Auth0を使用した認証に問題なければ、[Enable SAML Login]ボタンを押してSAML認証を有効にします
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/2b856691-2ce1-89d3-0395-e9684e7fa702.png)

### SAML認証状況など
> ① 現在の設定と状態について確認できます
> ② SAML認証をやめたい場合は[Disable SAML login]ボタンを押します
> ③ 現在の設定を変更したい場合は[CONFIGURE]を押します

> ------------
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/d601f2d0-6f7d-9dc8-ffdc-3d27b4270527.png)

## 3．SSO認証
### New Relic 再ログイン
一旦ログアウトして、下記アカウントIDを指定して再ログインすると、auth0の認証画面にリダイレクトされます。
https://rpm.newrelic.com/accounts/"NewRelicアカウントID"/

> これでAuth0で設定したアカウント（Username又はEmail）でログインすることができます。
> また[Gravatar](https://ja.gravatar.com/)を使用しているEmailであればユーザアイコンも表示されました！！

> ------------
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/b997e1d7-dd58-4bcf-cc83-f465cf39e076.png)

## さいごに
Auth0を使用すれば無料のFreeプランでもで簡単にSAML認証やソーシャル認証を組み込むことができました。今回のNew Relicの様に、INTEGRATIONにあるサービスであれば１０分もあれば、Auth0と統合することが可能です。INTEGRATIONになくても、WebアプリケーションやIOS用の専用テンプレートが用意されているので、マニュアルで設定＆調整して認証基盤として使用する事も可能です。

メニューを見るとRulesやHooksなど、便利そうな機能が結構ある様です。もう少し触ってみて役立つ内容であれば、またご紹介したいと思います。