我正在尝试将我们自行管理的 GitLab 15.9.3-ee 实例与 Azure AD 集成。使用 Azure AD 作为 GitLab 中 SSO 的 IdP,我一直在使用此处的文档:
https://docs.gitlab.com/ee/administration/auth/oidc.html
https://docs.gitlab.com/ee/integration/omniauth.html
https://docs.gitlab.com/ee/integration/azure.html
设置 OmniAuth 以使用 OpenIdConnect 访问我们login.microsoftonline.com
开发 Azure Tennant 上的 V2 端点。所需的配置在omniauth_providers []
各个文档之间略有不同,这是我当前使用的:
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ["azure_activedirectory_v2"]
gitlab_rails['omniauth_auto_link_ldap_user'] = false
gitlab_rails['omniauth_block_auto_created_users'] = true
gitlab_rails['omniauth_auto_link_user'] = ["azure_activedirectory_v2"]
gitlab_rails['omniauth_providers'] = [
{
name: "azure_activedirectory_v2",
args: {
name: "azure_activedirectory_v2",
strategy_class: "OmniAuth::Strategies::OpenIDConnect",
scope: ["openid", "profile", "email"],
response_type: "code",
issuer: "https://login.microsoftonline.com/6b72c6a7-3624-4c78-82ea-8901960e56c3/v2.0",
client_auth_method: "query",
discovery: true,
uid_field: "preferred_username",
send_scope_to_token_endpoint: "false",
pkce: true,
client_options: {
identifier: "386481e3-7a0e-4ba3-b85c-d1baa1716276",
secret: "nev8Q~bGETvJNqdm58__xGG.mZjmcfIsS69hZanZ",
redirect_uri: "https://gitlab.dev.scalable.com/users/auth/azure_activedirectory_v2/callback"
}
}
}
]
我可以在登录页面上看到 Azure 登录按钮,在 Azure AD v2 按钮GitLab-> User Dropdown-> Edit Profile-> Account-> Service sign-in
中看到“连接到 Azure AD”按钮:。当我按下“连接”按钮时,Azure 日志会将身份验证记录为成功,但在 GitLab application.log 中,我收到错误Authentication failure! JSON::JWK::Set::KidNotFound
。
2023-05-24T14:40:28.421Z: (openid_connect) Request phase initiated.
2023-05-24T14:40:29.113Z: (openid_connect) Callback phase initiated.
2023-05-24T14:40:29.627Z: (openid_connect) Authentication failure! JSON::JWK::Set::KidNotFound: JSON::JWK::Set::KidNotFound, JSON::JWK::Set::KidNotFound
无论我使用的是azure_activedirectory_v2
还是openid_connect
回调,都会发生这种情况。我尝试了几个不同的uid_field
: 值,例如:oid, sub, name, email, mail, preferred_username, user.name
... 以及其他一些值。所以我想知道是否有任何更新的文档涵盖了从头开始的 Azure AD 设置,或者更好的调试信息来源?
或者我只是做错了什么事?