Google客户端API - 限制对我的域的oauth身份验证

时间:2013-01-15 11:17:05

标签: oauth-2.0 google-api-client

是否有任何人使用Google Client API通过限制用户可以登录的域来授权其域名的经验?

所需的titbit似乎是qs参数:hd='[Domain name]'

OAuth2Parameters参数对象

中没有任何相似之处
var oap = new OAuth2Parameters
{
        AccessToken = Current == null ? null : Current.AccessToken,
        RefreshToken = Current == null ? null : Current.RefreshToken,
        ClientId = GoogleClientId,
        ClientSecret = GoogleClientSecret,
        Scope = "https://spreadsheets.google.com/feeds https://docs.google.com/feeds https://www.googleapis.com/auth/userinfo.email",
        RedirectUri = HttpContext.Current.Request.Url.Scheme.Concatenate("://", HttpContext.Current.Request.Url.Authority,                                                                             "/Builder/Authentication/Receive"),
        AccessType = "offline" //ensures a refresh token (tho not currently working),
        *HD = //Hmm if only... :(((*

    };
var authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(oap);

return Redirect(authorizationUrl);

2 个答案:

答案 0 :(得分:3)

事实上,我们所需要的只是调整网址:

var authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(oap);
authorizationUrl += "&hd=" + "mydomain.com".UrlEncode();
return Redirect(authorizationUrl);

希望有助于某人下线。

答案 1 :(得分:0)

使用 hd 参数。

Google documentation

警告:此标记记录在 OAuth 1.0 API参考中。在版本2中没有记录但是有效。

  

重要提示:截至4月20日,OAuth 1.0已被正式弃用,   2012.它将继续按照我们的弃用政策运作,但我们建议您尽快迁移到OAuth 2.0。