【问题标题】:What is the equivalent of hd param authentication for AuthSub in OAuth2OAuth2 中 AuthSub 的 hd param 身份验证等效于什么
【发布时间】:2013-01-06 16:34:53
【问题描述】:

在 AuthSub 中,对于 Google Apps 托管的域,我可以使用 hd 参数将用户重定向到该域,让他们登录到该域并接收令牌。

OAuth2 中的等效功能是什么?

我发现了这个网址:https://developers.google.com/drive/delegation

这是唯一的方法吗?据我了解,服务帐户可以直接访问所有用户吗?工作流程将不同于以往用于 AuthSub 的工作流程,用户必须登录到他们的个人域帐户?这种理解正确吗?

【问题讨论】:

  • 您能否澄清一下您是在尝试访问域中的所有云端硬盘用户数据,还是只是尝试将您的应用范围缩小到来自给定 Google Apps 域的登录?跨度>
  • 仅限个人用户。非常类似于将用户浏览器重定向到 google 登录屏幕的 Web 应用程序,然后将令牌/代码发送回 redirect_uri。我需要托管域登录屏幕,而不是常规的谷歌登录屏幕。我尝试添加 hd=mydomain.com,但登录后,页面被重定向到 oauth2 页面,其中缺少 respone_type、client_id 等,因此出现错误。

标签: oauth-2.0 google-drive-api google-docs-api authsub


【解决方案1】:

我想我找到了解决方案,但不确定它是否正确。

为了测试,我刚刚将 &hd=mydomain.com 添加到 auth url,并且我被正确地重定向到域登录页面。登录后,我确实收到了 403,管理员已禁用第三方应用程序。所以我登录到谷歌应用程序管理员并启用了复选框。而且效果很好。

如果这是一个正确的解决方案或目前仅因为 AuthSub/OAuth1 尚未被禁用而有效,我只需要 Google 驱动器开发人员的确认?

更新:hd=default 不起作用。您可以将其设置为空字符串。

【讨论】:

  • 如果它有效,那就太好了。我可以找到它没有记录的功能。
  • 它记录在@AliAfshar。在 Google 的 OpenID Connect docs 上搜索 hd。如果您想限制对您的域的访问,请务必验证生成的 ID 令牌中的 hd 声明,因为客户端可能会操纵身份验证 URL 以删除 hd
【解决方案2】:

这不是一个很好的解决方案,但是您可以将user_id 参数传递给OAuth2.0 的授权URI 以传递域用户的电子邮件地址。也就是说,如果您知道电子邮件地址。

如果没有,您应该相信用户在多次登录时会选择正确的帐户。

正如我所说:抱歉,这里不是一个很好的解决方案。

【讨论】:

  • 嗨阿里,我想做的是将用户域登录(包括用户名)保留给自己。我不想记录他们的用户名。使用初始 AuthSub,我可以使用 hd=mydomain.com 将用户重定向到应用程序登录屏幕。他们登录并授予对我的 Web 应用程序的访问权限。
猜你喜欢
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-22
  • 2015-05-12
  • 2020-03-03
  • 1970-01-01
相关资源
最近更新 更多