Okta SSOプロバイダ
OktaはGitLabの認証に使用できるシングルサインオンプロバイダーです。
以下のドキュメントでは、Okta を SAML プロバイダとして有効にしています。
Oktaアプリケーションの設定
- Oktaの管理セクションに移動し、アプリの追加を選択します。
- アプリの画面が表示されると、「アプリを作成」ボタンがもう 1 つ表示され、次の画面で SAML 2.0 を選択します。
- さて、とても重要なことですが、ロゴを追加してください(https://about.gitlab.com/press/から選択できます)。トリミングとリサイズが必要です。
-
次に、SAML 一般構成を入力する必要があります。 以下はその例です。
- 設定の最後の部分はフィードバックのセクションで、あなたが顧客であり、内部使用のためのアプリを作成していると言うことができます。
-
アプリを作成すると、アプリのプロファイルの上部にいくつかのタブが表示されます。 以下のように表示される SAML 2.0 構成の指示ボタンをクリックします:
-
表示された画面で、GitLab 設定ファイルの
idp_sso_target_url
に使うIdentity Provider Single Sign-On URLを控えておきましょう。 - Oktaを離れる前に、ユーザーとグループがあれば追加してください。
Okta アプリの設定が終わったので、次は GitLab で Okta アプリを使えるようにします。
GitLab の設定
-
初期設定についてはOmniAuth の初期設定を参照してください。
-
ユーザーが最初に手動でアカウントを作成することなく、Oktaを使用してサインアップできるようにするには、設定に次の値を追加することを忘れないでください:
Omnibus GitLab インストールの場合
/etc/gitlab/gitlab.rb
を編集します:gitlab_rails['omniauth_allow_single_sign_on'] = ['saml'] gitlab_rails['omniauth_block_auto_created_users'] = false
ソースからのインストールの場合
config/gitlab.yml
を編集します:
allow_single_sign_on: ["saml"]
block_auto_created_users: false
-
また、以下の設定を追加することで、メールアドレスが一致する場合、Oktaユーザーと既存のGitLabユーザーを自動的にリンクさせることができます:
Omnibus GitLab インストールの場合
/etc/gitlab/gitlab.rb
を編集します:gitlab_rails['omniauth_auto_link_saml_user'] = true
ソースからのインストールの場合
config/gitlab.yml
を編集します:
auto_link_saml_user: true
-
プロバイダの設定を追加します。
注:
-
assertion_consumer_service_url
の値を GitLab の HTTPS エンドポイントに合わせて変更してください(正しい値を生成するために、GitLab インストールの HTTPS URL にusers/auth/saml/callback
を追加してください)。 -
idp_cert_fingerprint
フィンガープリントを取得するには、まず登録した Okta アプリから証明書をダウンロードし、openssl x509 -in okta.cert -noout -fingerprint
を実行します。okta.cert
を証明書の場所に置き換えてください。 -
idp_sso_target_url
の値を、Okta アプリを構成したステップで使用したIdentity Provider Single Sign-On URLの値に変更します。 -
issuer
」の値を、Oktaアプリの設定にある「Audience Restriction」の値に変更します。 これにより、GitLabがIdPに識別されます。 -
name_identifier_format
そのままにしておいてください。
Omnibus GitLab インストールの場合
gitlab_rails['omniauth_providers'] = [ { name: 'saml', args: { assertion_consumer_service_url: 'https://gitlab.example.com/users/auth/saml/callback', idp_cert_fingerprint: '43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8', idp_sso_target_url: 'https://gitlab.oktapreview.com/app/gitlabdev773716_gitlabsaml_1/exk8odl81tBrjpD4B0h7/sso/saml', issuer: 'https://gitlab.example.com', name_identifier_format: 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient' }, label: 'Okta' # optional label for SAML login button, defaults to "Saml" } ]
ソースからのインストールの場合
- { name: 'saml', args: { assertion_consumer_service_url: 'https://gitlab.example.com/users/auth/saml/callback', idp_cert_fingerprint: '43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8', idp_sso_target_url: 'https://gitlab.oktapreview.com/app/gitlabdev773716_gitlabsaml_1/exk8odl81tBrjpD4B0h7/sso/saml', issuer: 'https://gitlab.example.com', name_identifier_format: 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient' }, label: 'Okta' # optional label for SAML login button, defaults to "Saml" }
-
-
変更を有効にするために、GitLab for Omnibusとソースからのインストールをそれぞれ再設定または再起動します。
シークレットブラウザでお試しください。
グループの設定
注:グループが存在し、Oktaアプリに割り当てられていることを確認してください。
グループの構成については、SAML のドキュメントを参照してください。