具有Azure AD身份验证的Gitlab

时间:2018-10-09 18:26:47

标签: azure gitlab

因此,我尝试使用Azure AD身份验证对GitLab进行身份验证。

这是我的/etc/gitlab/gitlab.rb

`gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['azure_oauth2']
# gitlab_rails['omniauth_sync_email_from_provider'] = 'saml'
# gitlab_rails['omniauth_sync_profile_from_provider'] = ['saml']
# gitlab_rails['omniauth_sync_profile_attributes'] = ['email']
# gitlab_rails['omniauth_auto_sign_in_with_provider'] = 'saml'
# gitlab_rails['omniauth_block_auto_created_users'] = true
gitlab_rails['omniauth_auto_link_ldap_user'] = true
# gitlab_rails['omniauth_auto_link_saml_user'] = false
# gitlab_rails['omniauth_external_providers'] = ['twitter', 'google_oauth2']
gitlab_rails['sync_profile_from_provider'] = ['azure_oauth2']
gitlab_rails['sync_profile_attributes'] = ['name', 'email', 'location']
gitlab_rails['omniauth_providers'] = [
  {
    "name" => "azure_oauth2",
    "args" => {
      "client_id" => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "client_secret" => "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb=",
#    "args" => { "access_type" => "offline", "approval_prompt" => "" }
      "tenant_id" => "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
    },
#    "base_azure_url" => "https://login.microsoftonline.com"
  }
]

在我的azure门户中,我有以下配置:

Azure AD Free

Azure AD Free中的一个应用程序。

我有http://myaplicationdomain/auth/oauth2_generichttp://myappauth.com/users/auth/azure_oauth2/callback的回复URL

当我尝试使用Azure身份验证登录时,收到以下错误:

  

AADSTS50011:请求中指定的回复URL与为应用程序配置的回复URL不匹配:

所以我只想知道是否有人尝试过此方法并找到解决方法。

ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

没有捆绑程序,因为它是Azure安装。

1 个答案:

答案 0 :(得分:0)

您尚未包含应用注册信息,但是从您共享的错误消息中可以看出,为应用注册配置的回复网址与您随请求传递的回复网址不匹配。来自以前没有使用过Gitlab的人的一些想法。

观看此视频,该视频专门解决了Azure中的回复URL配置:https://www.youtube.com/watch?v=A9U1VGyztEM&t=9s

使用提琴手或其他一些代理来查看要发送给Azure终结点的redirect_uri参数值。它需要与应用程序中配置的回复网址匹配。

最后,refer to this article表示您需要按照https://mygitlab.mycorp.org/users/auth/azure_oauth2/callback的格式在应用程序注册中配置一个知名的重定向URL