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]をクリックします。
[追加]をクリックします。
OAuth SP編集画面が表示されますので、下記を入力して[追加する]をクリックします。
項目 | 設定内容 |
---|---|
OAuth SPの名称 | お好きな名前 |
ターゲットドメイン | 管理画面 |
タイプ | GitHub |
自動ユーザー登録 | チェックを入れない |
Emailを利用せずメンバー拡張項目にIDを格納してリンクする | チェックを入れない |
追加されたOAuth SPの編集画面から、ログインURLをメモしておきます。
GitHubの設定
OAuth Appsを追加する
次にGitHub側の設定をします。
GitHubのOAuth Appsの設定ページにアクセスし、[New OAuth App]をクリックします。
下記の内容を入力して[Register application]をクリックします。
項目 | 設定内容 |
---|---|
Application name | お好きな名前 |
Homepage URL | サイトのURL |
Authorization callback URL | OAuth SP設定を追加するでメモしたログインURL |
秘密鍵を生成する
追加されたOAuth Appsのページから[Generate a new client secret]をクリックします。
Client IDと、生成されたClient secretsをメモしておきます。
ページを遷移すると、Client secretsは再度表示できません。
KurocoのOAuth SP設定を更新する
GitHubの設定が完了したら、再度Kurocoの設定に戻ります。
[外部システム連携] -> [OAuth SP]をクリックします。
OAuth SP設定を追加するで追加したOAuth SPの名称をクリックします。
秘密鍵を生成するで取得したクライアントの秘密鍵 (Client Secret)と、クライアントID (Client ID)を入力し、[有効]にチェックを入れて[更新する]をクリックします。
以上で、SSO OAuth SPの設定は完了です。
利用方法
ターゲットドメインを管理画面に設定していると、SP設定の追加後、自動でログインページに「外部アカウントでログイン」の項目が追加されます。
リンクをクリックすると、GitHubのログイン画面に遷移します。
また、SSO OAuth SP編集画面のログインURLを使って独自のログインページを作ることも可能です。
参考
クライアントIDと秘密鍵の入手先
タイプの設定で選択できる主要なアイデンティティプロバイダのクライアントIDと秘密鍵の入手先を下記に示します。
GitHub以外のIdPでSSOを実装する場合は参考にして下さい。
IdP | URL | クライアントID, 秘密鍵の名称 |
---|---|---|
GitHub | https://github.com/settings/developers | Client ID, Client secrets |
https://console.cloud.google.com/apis/credentials | クライアント ID, クライアント シークレット | |
https://developers.facebook.com/apps | アプリID, app secret | |
LINE | https://developers.line.biz/console/ | チャネルID, チャネルシークレット |
カスタムについて
タイプの選択肢にないサービスについても、カスタムのタイプを利用してOAuth認証によるSSOを実装可能です。
まず接続しようとしているアイデンティティプロバイダがOAuth 2.0の仕様をサポートしていることを確認してください。
もしサポートしている場合はアイデンティティプロバイダのドキュメントを確認し、SSO OAuth SPで設定をします。
また、SSO OAuth SP編集画面の[テスト]をクリックすると、設定が正しいかどうかをテストできます。これにより、アイデンティティプロバイダから返されるレスポンスを確認し、それに応じて構成パラメーターの設定が可能です。
保存されていないデータはテストできません。テストを実行する前に、まず設定データを更新する必要があります。
サポート
お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。