代码之家  ›  专栏  ›  技术社区  ›  eddies

用支持云身份的代理替换Google网站登录

  •  0
  • eddies  · 技术社区  · 8 年前

    有一个空位 feature request 以支持IAP。我尝试了一下,并对中详述的步骤进行了clojure实现。 Securing your app with signed headers (即验证令牌头、验证令牌负载、检索用户标识)。

    但这个问题不一定是特定于代谢酶的。一般的想法是替换Google登录,并且只在Google应用引擎(特别是gae-flex环境)上的应用程序中使用IAP签名的头文件进行身份验证和用户创建。

    “问题”是来自IAP令牌的用户标识信息看起来像: {"email":"alice@example.com","sub":"accounts.google.com:118133858486581853996"} .我也遇到过 Using special URLs ,但这会返回如下内容: {"email":"accounts.google.com:USER_EMAIL","sub":"accounts.google.com:118133858486581853996"} .

    使用Google登录令牌,我可以获取 given_name family_name 随着 email ,这意味着我可以获取或创建有效的元数据库用户。有没有办法通过JWT查到名字和姓氏 sub ,(即 accounts.google.com:118133858486581853996 )是吗?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Matthew Sachs    8 年前

    嗯,如果他们有公开的个人资料,你可以在“accounts.google.com:”之后输入数字。 https://developers.google.com/+/web/api/rest/latest/people/get .不幸的是,您将无法作为用户对该API进行身份验证,因为IAP目前没有提供调用“允许用户委托访问权”来调用Google API的方法。(您必须使用服务帐户来调用该API。)

    另一种解决方案是,如果IAP提供了一种方法,a)在其对Google的OAuth请求中指定额外的作用域,然后b)将来自OIDC令牌的额外声明传递给IAP JWT,则可以配置IAP以请求“配置文件”作用域。但是,IAP目前只请求“email”和“openid”作用域,并且没有指定其他作用域的机制。

    --Matthew,谷歌云IAP工程

    推荐文章