GitLab を OpenID Connect のアイデンティティプロバイダーに
このドキュメントは、GitLabをOpenID ConnectのIDプロバイダとして使い、他のサービスにサインインすることについて書かれています。
OpenID Connectの紹介
OpenID Connect (OIDC) はOAuth 2.0プロトコルの上のシンプルなIDレイヤーです。クライアントがGitLabによって実行された認証に基づいてエンドユーザーのIDを確認したり、相互運用可能でRESTライクな方法でエンドユーザーの基本的なプロファイル情報を取得したりすることができます。 OIDCはOpenID 2.0と同じタスクの多くを実行しますが、APIに親しみやすく、ネイティブアプリケーションやモバイルアプリケーションで使用可能な方法で実行します。
クライアント側では、OmniAuth::OpenIDConnectfor Rails アプリケーションや、その他の利用可能なクライアント実装を使用できます。
GitLab の実装はdoorkeeper-openid_connectDoorkeeper gem を使用しています。仕様のどの部分がサポートされているかについての詳細は README を参照してください。
OAuthアプリケーションのOpenID Connectの有効化
GitLabでOAuthアプリケーションを設定する基本的な情報については、OAuthガイドを参照してください。 アプリケーションでOIDCを有効にするには、アプリケーションの設定でopenid
スコープを選択するだけです。
共有情報
現在、以下のユーザー情報がクライアントと共有されています:
請求 | タイプ | 説明 |
---|---|---|
sub
| string
| ユーザーのID |
sub_legacy
| string
| ユーザーを一意に識別する不透明なトークン 非推奨のお知らせ:このトークンはRailsの秘密鍵ベースと結びついているため安定していません。GitLab 11.1から利用できる新しい安定した sub 値への移行のためだけに提供されています。
|
auth_time
| integer
| ユーザの最終認証のタイムスタンプ |
name
| string
| ユーザーのフルネーム |
nickname
| string
| GitLab でのユーザー名。 |
email
| string
| ユーザーの電子メールアドレス アプリケーションが email 請求にアクセスできる場合はユーザーのプライマリ電子メールアドレス、そうでない場合はユーザーの公開電子メールアドレスです。
|
email_verified
| boolean
| ユーザーのメールアドレスが認証されたかどうか |
website
| string
| ユーザーのウェブサイトのURL |
profile
| string
| GitLab プロファイルの URL |
picture
| string
| ユーザーのGitLabアバターのURL |
groups
| array
| ユーザーが所属しているグループ名 |
クレームsub
、sub_legacy
、email
、email_verified
はIDトークンに含まれています。その他のクレームはOIDCクライアントが使用する/oauth/userinfo
エンドポイントから利用できます。