正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLabをOpenID Connect Identity Providerとして使用する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

GitLabをOpenID Connect(OIDC)Identity Providerとして使用し、他のサービスにアクセスすることができます。OIDCは、OpenID 2.0と同様のタスクを数多く実行するアイデンティティレイヤーですが、APIフレンドリーで、ネイティブアプリケーションやモバイルアプリケーションでも使用できます。

クライアントはOIDCを使用して、次のことができます:

  • GitLabによって実行された認証に基づいて、エンドユーザーのアイデンティティを検証する。
  • 相互運用可能でRESTに近い方法により、エンドユーザーの基本的なプロファイル情報を取得する。

RailsアプリケーションにはOmniAuth::OpenIDConnectを使用できます。その他にも多くのクライアント実装を利用できます。

GitLabは、OIDCサービスを提供するためにdoorkeeper-openid_connect gemを使用しています。詳しくは、doorkeeper-openid_connectリポジトリを参照してください。

OAuthアプリケーションでOIDCを有効にする

OAuthアプリケーションでOIDCを有効にするには、アプリケーション設定でopenidスコープを選択する必要があります。詳細については、GitLabをOAuth 2.0認証用のIdentity Providerとして設定するを参照してください。

設定の検出

クライアントがディスカバリURLからOIDC設定をインポートできる場合、GitLabはその情報にアクセスするためのエンドポイントを提供します:

  • GitLab.comの場合は、https://gitlab.com/.well-known/openid-configurationを使用します。
  • GitLab Self-Managedの場合は、https://<your-gitlab-instance>/.well-known/openid-configurationを使用します。

共有情報

クライアントと共有するユーザー情報は、次のとおりです:

クレーム説明IDトークンに含まれるuserinfoエンドポイントに含まれる
substringユーザーのIDcheck-circle はいcheck-circle はい
auth_timeintegerユーザーの最終認証のタイムスタンプcheck-circle はいdotted-circle いいえ
namestringユーザーのフルネームcheck-circle はいcheck-circle はい
nicknamestringユーザーのGitLabユーザー名check-circle はいcheck-circle はい
preferred_usernamestringユーザーのGitLabユーザー名check-circle はいcheck-circle はい
emailstringユーザーのプライマリメールアドレスcheck-circle はいcheck-circle はい
email_verifiedbooleanユーザーのメールアドレスが検証済みかどうかcheck-circle はいcheck-circle はい
websitestringユーザーのWebサイトのURLcheck-circle はいcheck-circle はい
profilestringユーザーのGitLabプロファイルのURLcheck-circle はいcheck-circle はい
picturestringユーザーのGitLabアバターのURLcheck-circle はいcheck-circle はい
groupsarrayユーザーが直接、または祖先グループを通じて所属しているグループのパス。dotted-circle いいえcheck-circle はい
groups_directarrayユーザーが直接所属しているグループのパス。check-circle はいdotted-circle いいえ
https://gitlab.org/claims/groups/ownerarrayユーザーがオーナーロールを持ち、直接所属しているグループの名前dotted-circle いいえcheck-circle はい
https://gitlab.org/claims/groups/maintainerarrayユーザーがメンテナーロールを持ち、直接所属しているグループの名前dotted-circle いいえcheck-circle はい
https://gitlab.org/claims/groups/developerarrayユーザーがデベロッパーロールを持ち、直接所属しているグループの名前dotted-circle いいえcheck-circle はい

アプリケーションがemailスコープおよびユーザーの公開メールアドレスへのアクセス権を持っている場合にのみ、emailおよびemail_verifiedのクレームが含まれます。その他すべてのクレームは、OIDCクライアントが使用する/oauth/userinfoエンドポイントから取得できます。