【问题标题】:How To Constrains Google OAuth To A Specific Google Apps Domain如何将 Google OAuth 限制到特定的 Google Apps 域
【发布时间】:2015-01-15 20:14:27
【问题描述】:

我有一个使用 Google OAuth 进行身份验证的 Java Web 应用程序(使用此 API:http://goo.gl/6wWyT3),它工作正常。但是,我需要一种方法来仅允许来自特定 Google Apps for Education 域的用户,例如 mike@wdu.edu.ng 能够使用 Google 的 OAuth 访问该应用程序。我该怎么办??

【问题讨论】:

    标签: java google-oauth google-apps-for-education


    【解决方案1】:

    在授权请求中使用参数 hd=<domain.com> 将用户发送到 Google(通过修改 buildLoginUrl)以跳过帐户选择器屏幕,并在返回时检查从 Google 返回的声明是否包含带有值 @ 的 hd 声明987654323@ 在 getUserInfoJson 中强制执行访问要求

    【讨论】:

    • 感谢您的提示。它导致了我这样实现的解决方案: public String buildLoginUrl() { final GoogleAuthorizationCodeRequestUrl url = flow.newAuthorizationUrl(); return url.setRedirectUri(CALLBACK_URI).setState(getStateToken()).set("hd", "domain.com").build(); }
    • 是否可以将其限制为多个域?逗号分隔的域列表(字符串)是否有效?
    • 我不知道,否则您将不得不从授权请求中省略 hd 参数,并依赖为域选择部分弹出的帐户选择器屏幕;请注意,无论如何您都必须对 getUserInfoJson 实施实际限制,任何请求参数添加都只是 UX 的事情,没有任何安全目的
    • 抱歉,如果 Google 返回响应时必须再次检查,我无法理解传递 hd= 的意义?如果您传递 hd 参数,Google 无论如何都会返回 hd 值。
    猜你喜欢
    • 2015-10-28
    • 2019-01-25
    • 1970-01-01
    • 2016-03-18
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 2015-04-09
    相关资源
    最近更新 更多