Gluegent Gateを使ってOpenID Connect 連携してみよう
~OAuth Tools 編~

こんにちは。 Gluegent Gate開発チームです。
Gluegent Gateでは、様々な連携手法により、シングルサインオン(SSO)を実現することができます。その連携手法の一つに、OpenID Connect(OIDC)があります。今回は、OIDC連携の設定方法について、OAuth Toolsとの連携を例にして紹介します。
OAuth Toolsと連携をすることにより、OIDCの設定方法や動作について確認を行うことができます。
シンプルな手順で設定が可能ですので、今後連携したいサービスを見据えたファーストステップとしてもおすすめです。
OpenID Connectについて
OpenID Connectは、OAuth 2.0プロトコルをベースにしたID連携プロトコルです。
OpenIDファウンデーション・ジャパン 公開資料
ベースとなったOAuthは、認可(アクセス許可)を行うためのプロトコルです。これに対して、OpenID Connectは、IDトークンの発行を行うことで、認証に利用することができます。
連携手法
以下の手順で、Gluegent GateをOAuth Toolsと連携させることができます。
1. OAuthToolsの管理画面にアクセス
OAuthToolsの管理画面 (注:外部ページへ遷移します)にアクセスします。
2. ワークスペースの作成
左端に表示されている「New Workspace」をクリックします。
ワークスペースの名前を入力します。
「Create Workspace」をクリックします。

3. ワークスペースの設定
ワークスペース名の横の下向き矢印をクリックします。
「Settings」をクリックします。
Endpoint -> Metadata URLに以下のURLを入力します。
https://auth.gluegent.net/oidc/.well-known/openid-configuration
「Discover」をクリックします。設定画面を閉じます。

4. Gluegent Gateでクライアントの作成
Gluegent Gateの管理画面にログインし、メニューのシングルサインオン>OpenID Connectから登録タブを選択します。
以下の通りに入力します。
- サービスID:任意
- サービス名:任意(英字・簡体字も同様)
- IDトークンタイプ:JWS
- クライアントシークレット:任意
- リダイレクトURI:https://oauth.tools/callback/code
入力が完了したら、「保存」ボタンをクリックします。
保存後、クライアントIDが自動生成されるので、クライアントIDとクライアントシークレットを控えてください。
※Gluegent Gate のシングルサインオン設定(OpenID Connect について詳細はマニュアルを参照ください。)

5. Gluegent Gate ユーザーとOIDCの紐づけ
Gluegent Gate管理画面のメニューからユーザー>一覧を選択します。
任意のユーザーの編集画面に移動します。
許可するサービスの中から、4. で登録したサービス名にチェックを入れます。
チェックを入れたら、「更新」ボタンをクリックします。
6. Gluegent Gate アクセス権限ルールの作成
Gluegent Gate管理画面のメニューからアクセス権限>新規登録を選択します。
以下の通りに入力します。
- ID:任意
- アクセス先のサービス:4.で登録したサービス名を選択
- 要求される認証方式:今回は「ID/パスワード認証」を選択
- クライアント:PC、スマートフォン、タブレットから利用するものを選択
- 権限の状態:有効
入力が完了したら、「保存」ボタンをクリックします。
7. OAuth Code Flowの設定
OAuthToolsの管理画面にアクセスします。
左サイドメニューから「Start Flow」(+アイコン)をクリックします。
Web and Mobile Flowsから「Code Flow」を選択します。
Settingsに以下の通り設定します。
- Client ID:4で控えたクライアントID
- Client Secret:4で入力したクライアントシークレット
- scope:openid, profile, email
- OpenID Settings>Nonce:Generateをクリック
8. OAuth Code Flowの実施
Start Flowの「Run」をクリックします。
Gluegent Gateのログイン画面が開くので、ログイン情報を入力します。
ログイン後、OauthToolsの画面にリダイレクトされます。
Redeem authorization codeの「Redeem code」をクリックします。
client_authentication_methodは任意です。
Server Responseの表示を確認します。
ステータスコードが200であれば連携は成功です。

こんなときは?
連携に失敗してしまったり、思うように動作せずエラーになってしまう場合は、入力内容が間違っていたり、必要な設定が足りていない可能性があります。発生しやすい状況について以下にまとめます。ご参考までにどうぞ。
-
Gluegent Gateにログインした後、「アクセスが許可されていません」と表示される
ログインユーザーにOpenID Connectクライアントへのアクセスが許可されていません。作業手順 5. を参考に、ユーザーの許可するサービスを設定してください。
また、アクセス権限の設定内容によっては、この画面に遷移する場合があります。作業手順 6. を参考に、アクセス権限の設定を更新してください。 -
Gluegent Gateにログインした後、「アプリケーションで不具合が発生しています」と表示される または、OAuth Toolsへのレスポンスが500エラーになる
OAuth Toolsに入力したクライアントIDに誤りがある場合、これらの事象が発生します。Gluegent Gate管理画面>シングルサインオン>OpenID Connectから、連携対象のクライアントIDを確認したうえで、作業手順 7. を参考に設定を行ってください。また、コピーペーストを行う際、余計な空白が入ってしまっていないか確認ください。
-
OAuth Toolsで「RUN」をクリックすると、ポップアップが出現して、接続が拒否されたと表示される
「Open in iFrame」が有効になっているかもしれません。OAuth Toolsの管理画面の「Start Flow」の中にある、「Open in iFrame」をオフにしてください。
いかがでしょうか。OIDC連携を使いたいけれど設定方法がよく分からない、、、とお悩みの際にはぜひこちらの方法を試してみてください。