如何解决401尝试使用Google身份提供商登录Openshift 4.5时未授权
我最近部署了4.5版本的OKD集群,一切似乎都很好,但是我无法让Google身份提供商进行登录。 我遵循了here的指示,但没有成功。 当我尝试使用公司google身份登录时,收到一条非常普通的错误消息:
我最终得到了以下OAuth配置:
spec:
identityProviders:
- google:
clientID: <my-ID>.apps.googleusercontent.com
clientSecret:
name: google-secret
hostedDomain: <company domain>
mappingMethod: claim
name: googleidp
type: Google
我也按照说明设置了Google项目。刚创建的Oauth2.0凭据,回叫URL(这是正确的,因为我在同意屏幕后返回OKD),没有额外的同意范围;只是个人资料,电子邮件和openid,OKD不会请求任何其他范围。 该项目设置为内部项目,因此只有公司用户可以登录。
经过一些调查,我设法增加了oauth-openshift窗格上的详细信息,这是在日志中看到的失败尝试的内容:
1 handler.go:156] Got auth data
I0929 15:30:10.036799 1 round_trippers.go:423] curl -k -v -XPOST -H "Content-Type: application/x-www-form-urlencoded" -H "Accept: application/json" 'https://www.googleapis.com/oauth2/v3/token'
I0929 15:30:10.071829 1 round_trippers.go:443] POST https://www.googleapis.com/oauth2/v3/token 401 Unauthorized in 35 milliseconds
I0929 15:30:10.071871 1 round_trippers.go:449] Response Headers:
I0929 15:30:10.071879 1 round_trippers.go:452] Server: scaffolding on HTTPServer2
I0929 15:30:10.071885 1 round_trippers.go:452] Cache-Control: private
I0929 15:30:10.071891 1 round_trippers.go:452] X-Content-Type-Options: nosniff
I0929 15:30:10.071897 1 round_trippers.go:452] Vary: Origin
I0929 15:30:10.071902 1 round_trippers.go:452] Vary: X-Origin
I0929 15:30:10.071909 1 round_trippers.go:452] Vary: Referer
I0929 15:30:10.071915 1 round_trippers.go:452] Date: Tue,29 Sep 2020 15:30:10 GMT
I0929 15:30:10.071920 1 round_trippers.go:452] Alt-Svc: h3-Q050=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-27=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
I0929 15:30:10.071926 1 round_trippers.go:452] Content-Type: application/json; charset=utf-8
I0929 15:30:10.071934 1 round_trippers.go:452] X-Xss-Protection: 0
I0929 15:30:10.071939 1 round_trippers.go:452] X-Frame-Options: SAMEORIGIN
I0929 15:30:10.072004 1 handler.go:176] Error getting access token: Unauthorized
E0929 15:30:10.072031 1 errorpage.go:26] AuthenticationError: Unauthorized
I0929 15:30:10.072428 1 httplog.go:90] verb="GET" URI="/oauth2callback/googleidp?state=**token**&code=**token**&scope=email%20profile%20openid%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/userinfo.profile&authuser=0&hd=**companydomain**&prompt=consent" latency=35.835162ms resp=200 UserAgent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/85.0.4183.83 Safari/537.36" srcIP="10.129.2.28:49228":
我找不到导致未授权错误的原因,因此非常感谢您的帮助。
解决方法
在Google云控制台(而不是开发人员控制台)中进行完全相同的操作使此最终得以实现。因此,在OKD平台中没有问题。
https://console.developers.google.com
vs
https://console.cloud.google.com
在开发人员控制台中创建项目时,某些设置被忽略。我发现我必须在第一个项目中添加Google Cloud API,但这还不足以使其正常运行,所以我将使用新项目,因为我没有更多时间在此进行投资。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。