概要
前回 AzureAD + SAML 認証を紹介しました
今回は AzureAD + OpenIDConnect の連携方法を紹介します
環境
- Gitlab 15.6.8-ee
- AzureAD (2023/03/02 時点)
アプリケーションの登録
まずは Azure AD にアプリケーションを登録します
そして左メニューから「アプリの登録」を選択し「新規登録」します
アプリの名称を入力します
そして重要なリダイレクトURIを入力します
リダイレクト URI「Web」を選択し Gitlab の URL + /users/auth/openid_connect/callback
を入力します
エンドポイントとクライアントIDの確認
アプリケーションが作成できたら「エンドポイント」を選択し OpenIDConnect 用のエンドポイントを確認します
またアプリケーションの詳細画面に「アプリケーション(クライアントID)」があるのでこれもメモしておきます
シークレットの作成
次にシークレット情報を作成します
左メニューの「証明書とシークレット」を選択し「新しいクライアントシークレット」を選択します
説明とシークレットの有効期限を設定しましょう
シークレットの有効期限は無限にはできないですが日付指定はできるのでそれを使って期間を延長しましょう
その他
- アプリケーションへのユーザの登録は必要に応じて行う
- トークン構成から email 情報を追加する必要はなさそう
gitlab.rb の編集
作成したアプリケーションの情報を展開します
編集する箇所は以下の通りです
- issuer・・・アプリケーションのエンドポイントで確認した OpenIDConnect 用の URL を記載
- client_options.identifier・・・アプリケーションのクライアントIDを記載
- client_options.secret・・・アプリケーションに作成したシークレットの値情報を記載
- client_options.redirect_uri・・・アプリケーション作成時に登録したリダイレクトURIを記載
gitlab_rails['omniauth_allow_single_sign_on'] = ['openid_connect']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_auto_link_saml_user'] = false
gitlab_rails['omniauth_providers'] = [
{
name: "openid_connect",
label: "Azure OIDC",
args: {
name: "openid_connect",
scope: ["openid", "profile", "email"],
response_type: "code",
issuer: "https://login.microsoftonline.com/xxxxxxxxxxxx/v2.0",
client_auth_method: "query",
discovery: true,
uid_field: "preferred_username",
pkce: true,
client_options: {
identifier: "xxxxxxxxxxxx",
secret: "xxxxxxxxxxx",
redirect_uri: "https://your.gitlab.com/users/auth/openid_connect/callback"
}
}
},
]
動作確認
あとは reconfigure してログインページから Azure OIDC でログインできるか確認しましょう
初回アクセス時にはアプリケーションからのアクセス許可が必要なので許可しましょう
最後に
Gitlab + AzureAD + OpenIDConnect の連携方法を紹介しました
Gitlab と AzureAD の認証連携をする場合には SAML or OpenIDConnect を選択できます
基本は SAML で OK ですが用途に合わせては OpenIDConnect を使うのもありかなと思います
この辺りの認証情報の取捨選択は環境に合わせて選択する必要があります
0 件のコメント:
コメントを投稿