Gluegent Blog

Gluegent Blog

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

  • Gluegent Gate
  • 技術
Gluegent Gateを使ってOpenID Connect 連携してみよう

こんにちは。 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トークンの発行を行うことで、認証に利用することができます。

詳しくは、こちらのコラムをご参照ください。

OAuth、OpenID Connectとは? 仕組みや違いについて解説

連携手法

 以下の手順で、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連携を使いたいけれど設定方法がよく分からない、、、とお悩みの際にはぜひこちらの方法を試してみてください。