【问题标题】:Google Oauth2.0 with Python: How do I limit access to a specific domain?带有 Python 的 Google Oauth2.0:如何限制对特定域的访问?
【发布时间】:2013-12-27 06:19:28
【问题描述】:

我正在尝试了解在使用此 Python Oauth2.0 示例时如何限制对我的应用程序的访问。我见过可以将 hd=domain.com 添加到 authorize_url 末尾的地方,但这对我不起作用。

任何人都可以根据此示例说明如何限制对我的烧瓶应用程序的访问吗? https://github.com/mitsuhiko/flask-oauth/blob/master/example/google.py

【问题讨论】:

    标签: python google-api oauth-2.0 flask


    【解决方案1】:

    所以我可以自己回答这个问题。在构建 google 对象时,应该添加“hd”参数。

    google = oauth.remote_app('google',
                          base_url='https://www.google.com/accounts/',
                          authorize_url='https://accounts.google.com/o/oauth2/auth',
                          request_token_url=None,
                          request_token_params={'scope': 'https://www.googleapis.com/auth/userinfo.email',
                                                'response_type': 'code',
                                                'hd':'domain.com'},
                          access_token_url='https://accounts.google.com/o/oauth2/token',
                          access_token_method='POST',
                          access_token_params={'grant_type': 'authorization_code'},
                          consumer_key=GOOGLE_CLIENT_ID,
                          consumer_secret=GOOGLE_CLIENT_SECRET)               
    

    【讨论】:

    • 似乎不鼓励这种使用 hd 参数的方式:developers.google.com/identity/protocols/oauth2/… hd(托管域)参数简化了 G Suite 托管帐户的登录过程。 ... 不要依赖这种 UI 优化来控制谁可以访问您的应用程序,因为可以修改客户端请求。请务必验证返回的 ID 令牌是否具有与您期望匹配的 hd 声明值(例如 mycolledge.edu)。与请求参数不同,ID 令牌 hd 声明包含在来自 Google 的安全令牌中,因此该值是可信的。
    猜你喜欢
    • 2014-08-13
    • 2019-01-25
    • 1970-01-01
    • 2012-06-07
    • 2015-01-15
    • 2012-05-31
    • 2021-11-12
    • 2019-06-25
    • 1970-01-01
    相关资源
    最近更新 更多