概要
Gitlab + Onelogin で SAML 認証連携する際のいくつかのポイントを紹介します
環境
- Gitlab-ee 15.6.7
- Onelogin 2023/03/01 時点
Onelogin 側の設定
Configuration
ここでは gitlab 側の設定を記載します
- Audience・・・Onelogin 側が払い出す Issuer の URL を記載します
- Recipient・・・Gitlab の URL + SAML 用のコールバック URL を記載します
- ACS URL Validator・・・Recipient で指定した Gitlab の URL の正規表現版を記載します
- ACS URL・・・Recipient で指定した Gitlab の URL を記載します
- Login URL・・・Gitlab のログイン URL を記載します
上記以外はすべてデフォルトのままで OK です
SSO
gitlab.rb に記載する情報を確認できます
使用する情報は
- X.509 Certificates の SHA1 フィンガープリント情報 (View Details から確認可能)
- Issuer URL
- SAML 2.0 Endpoint
になります
Parameters
SAML 認証時にメールアドレスの情報を送信するようにします
プラスボタンから追加しましょう
- name・・・email
- value・・・Email
その際に「Include in SAML assertion」には必ずチェックするようにしてください
これのチェックがないと「422 Email can't be blank, Notification email can't be blank
」のエラーになります
user の追加
作成した SAML アプリにログインを許可するユーザを追加しましょう
ロールを追加しても OK です
gitlab.rb
上記の情報を含めて gitlab.rb の内容を記載します
記載する情報は以下の通りです
- assertion_consumer_service_url・・・Gitlab の URL + コールバック URL
- idp_cert_fingerprint・・・SSO で確認した X.509 Certificates の SHA1 フィンガープリント情報
- idp_sso_target_url・・・SSO で確認した SAML 2.0 Endpoint
- issuer・・・SSO で確認した Issuer URL
gitlab_rails['omniauth_allow_single_sign_on'] = ['saml_3']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_auto_link_saml_user'] = false
gitlab_rails['omniauth_providers'] = [
{
name: 'saml_3',
label: 'Onelogin',
args: {
name: 'saml_3',
assertion_consumer_service_url: 'https://your.gitlab.com/users/auth/saml_3/callback',
idp_cert_fingerprint: 'xxxxxxxxxxxxxxx',
idp_sso_target_url: 'https://xxxxxxx.onelogin.com/trust/saml2/http-post/sso/xxxxxxxxxxx',
strategy_class: 'OmniAuth::Strategies::SAML',
issuer: 'https://app.onelogin.com/saml/metadata/xxxxxxxxxxxxx',
name_identifier_format: 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress'
}
},
]
動作確認
あとは reconfigure してログインページから onelogin のユーザでログインできるか確認すれば OK です
最後に
Gitlab + Onelogin の情報があまりネット上にはないのでこの記事が他の人の役に立てばいいかなと思います
0 件のコメント:
コメントを投稿