Java 如何将GoogleOAuth约束到特定的GoogleApps域
我有一个Java web应用程序,它使用GoogleOAuth进行身份验证(使用此API:),并且运行良好。然而,我需要一种方法,只允许来自某个教育领域的谷歌应用程序的用户,例如mike@wdu.edu.ng能够使用谷歌的OAuth访问该应用程序。如何执行此操作???在授权请求中使用参数Java 如何将GoogleOAuth约束到特定的GoogleApps域,java,google-oauth,google-apps-for-education,Java,Google Oauth,Google Apps For Education,我有一个Java web应用程序,它使用GoogleOAuth进行身份验证(使用此API:),并且运行良好。然而,我需要一种方法,只允许来自某个教育领域的谷歌应用程序的用户,例如mike@wdu.edu.ng能够使用谷歌的OAuth访问该应用程序。如何执行此操作???在授权请求中使用参数hd=将用户发送到Google(通过修改buildLoginUrl),以跳过帐户选择器屏幕,并在返回时,检查从Google返回的声明是否包含在getUserInfoJson中具有值的hd声明,以强制执行访问要求,
hd=
将用户发送到Google(通过修改buildLoginUrl),以跳过帐户选择器屏幕,并在返回时,检查从Google返回的声明是否包含在getUserInfoJson中具有值的hd
声明,以强制执行访问要求,感谢您的提示。它导致了我实现的解决方案:公共字符串buildLoginUrl(){final GoogleAuthorizationCodeRequestUrl url=flow.newAuthorizationUrl();return url.setRedirectUri(CALLBACK_URI).setState(getStateToken()).set(“hd”,“domain.com”).build();}是否可以将其约束到多个域?一个由coma分隔的域列表(字符串)可以工作吗?据我所知,这是不可行的,否则你只能从授权请求中省略hd参数,并依赖于为域选择部分弹出的帐户选择器屏幕;请注意,您将不得不对getUserInfoJson强制执行实际限制。无论如何,任何请求参数的添加都只是一个UX操作,不具有任何安全目的。抱歉,但我无法理解传递hd的意义=当Google返回响应时是否必须再次检查它?不管你们是否传递了hd参数,Google都会返回hd值。