メインコンテンツまでスキップ

GitHubを利用してOAuth認証によるSSOを実装する

概要

KurocoはOAuth SPの機能を持っており、SSOの実装が可能です。 また、プリセットとしていくつかの外部サービスをご用意しており、対応したサービスの場合は簡単に設定ができます。

本チュートリアルでは、OAuth認証によるSSOを実装する例として下記条件でのログインを実装します。

  • Kuroco管理画面に対してログインする
  • GitHubのOAuthを利用する
  • GitHubと同じEmailのメンバーでKurocoにログインする

学べること

以下の手順でOauth SPによるSSOの実装を学びます。

前提条件

備考

GitHub側の仕様の変更により、Client ID、Client secretsの取得方法は本チュートリアルと異なる場合がございます。詳細はGitHubで最新情報をご確認ください。

Kurocoの設定

OAuth SP設定を追加する

[外部システム連携] -> [OAuth SP]をクリックします。

fetched from Gyazo [追加]をクリックします。

Image from Gyazo

OAuth SP編集画面が表示されますので、下記を入力して[追加する]をクリックします。

項目設定内容
OAuth SPの名称お好きな名前
ターゲットドメイン管理画面
タイプGitHub
自動ユーザー登録チェックを入れない
Emailを利用せずメンバー拡張項目にIDを格納してリンクするチェックを入れない

Image from Gyazo

追加されたOAuth SPの編集画面から、ログインURLをメモしておきます。

Image from Gyazo

GitHubの設定

OAuth Appsを追加する

次にGitHub側の設定をします。
GitHubのOAuth Appsの設定ページにアクセスし、[New OAuth App]をクリックします。
fetched from Gyazo 下記の内容を入力して[Register application]をクリックします。

項目設定内容
Application nameお好きな名前
Homepage URLサイトのURL
Authorization callback URLOAuth SP設定を追加するでメモしたログインURL

fetched from Gyazo

秘密鍵を生成する

追加されたOAuth Appsのページから[Generate a new client secret]をクリックします。

fetched from Gyazo

Client IDと、生成されたClient secretsをメモしておきます。
ページを遷移すると、Client secretsは再度表示できません。

fetched from Gyazo

KurocoのOAuth SP設定を更新する

GitHubの設定が完了したら、再度Kurocoの設定に戻ります。
[外部システム連携] -> [OAuth SP]をクリックします。

fetched from Gyazo

OAuth SP設定を追加するで追加したOAuth SPの名称をクリックします。

fetched from Gyazo

秘密鍵を生成するで取得したクライアントの秘密鍵 (Client Secret)と、クライアントID (Client ID)を入力し、[有効]にチェックを入れて[更新する]をクリックします。

fetched from Gyazo

以上で、SSO OAuth SPの設定は完了です。

利用方法

ターゲットドメインを管理画面に設定していると、SP設定の追加後、自動でログインページに「外部アカウントでログイン」の項目が追加されます。
リンクをクリックすると、GitHubのログイン画面に遷移します。

fetched from Gyazo

また、SSO OAuth SP編集画面のログインURLを使って独自のログインページを作ることも可能です。

fetched from Gyazo

参考

クライアントIDと秘密鍵の入手先

タイプの設定で選択できる主要なアイデンティティプロバイダのクライアントIDと秘密鍵の入手先を下記に示します。
GitHub以外のIdPでSSOを実装する場合は参考にして下さい。

IdPURLクライアントID, 秘密鍵の名称
GitHubhttps://github.com/settings/developersClient ID, Client secrets
Googlehttps://console.cloud.google.com/apis/credentialsクライアント ID, クライアント シークレット
Facebookhttps://developers.facebook.com/appsアプリID, app secret
LINEhttps://developers.line.biz/console/チャネルID, チャネルシークレット

カスタムについて

タイプの選択肢にないサービスについても、カスタムのタイプを利用してOAuth認証によるSSOを実装可能です。
まず接続しようとしているアイデンティティプロバイダがOAuth 2.0の仕様をサポートしていることを確認してください。 もしサポートしている場合はアイデンティティプロバイダのドキュメントを確認し、SSO OAuth SPで設定をします。

また、SSO OAuth SP編集画面の[テスト]をクリックすると、設定が正しいかどうかをテストできます。これにより、アイデンティティプロバイダから返されるレスポンスを確認し、それに応じて構成パラメーターの設定が可能です。

Image from Gyazo
ヒント

保存されていないデータはテストできません。テストを実行する前に、まず設定データを更新する必要があります。


サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。