gpt4 book ai didi

firebase - 用于基于 AWS 驱动的浏览器的应用程序的 G Suite 身份提供商

转载 作者:行者123 更新时间:2023-12-02 20:16:44 25 4
gpt4 key购买 nike

我知道如何通过 google-signin-client_id 3089273xx-xxxxxxxxxxxx.apps.googleusercontent.com & <script src="https://apis.google.com/js/platform.js" async defer></script> 创建经过 Google 身份验证的应用,但这里的问题是,我无法将登录限制为仅限我公司的 G Suite 实例

我的应用程序是托管在 S3 上的“无服务器”JS 包。登录的 Google token 与访问敏感资源的 AWS 角色绑定(bind)。

查看 googleUser.getBasicProfile() 的电子邮件的典型解决方案或pass a hd parameter没有任何安全意义,因为它们可以使用浏览器开发工具 IIUC 进行操作。

还有其他我可以使用的 Google API 或我可以应用的策略吗?我想该解决方案将以特殊的 google-signin-client_id 形式出现,适用于我公司的域(由 G Suite 托管)。这就是它与 AWS 角色的联系:

AWS IAM Google auth

我知道我可以在 AWS“用户池”中设置重复的用户并使用 Cognito,但我试图为公司员工提供“单一事实来源”并减轻管理负担。

最佳答案

更新:这个答案是不安全的,就像您只需删除 hosted_domain 一样,您可以使用任何 Google 登录信息进行身份验证。

误入https://developers.google.com/identity/work/it-apps后& 直接使用 GAPI 我发现我可以做

    GAPI.auth2.init({
client_id: CLIENT_ID,
hosted_domain: 'example.com'
})

然后作为 documentation advises ,您设置管理 API 客户端访问

Authorized API clients

所以现在只有 Gsuite 上的 @example.com 用户可以访问这个 JS 应用!这花了几周时间才弄清楚。总结一下,如何在 AWS 支持的无服务器应用程序上使用 Google 进行身份验证:

  1. 通过 OAuth 客户端 ID 使用 https://console.developers.google.com/apis/credentials 中列入白名单的源网址设置客户端 ID
  2. AWS IAM使用客户端 ID 设置 Google 作为(网络)身份提供商的角色
  3. 添加您的客户 ID https://admin.google.com/AdminHome?chromeless=1#OGX:ManageOauthClients如此处记录的 https://developers.google.com/identity/work/it-apps将您的应用程序严格限制在您公司的域内。

因此,现在我们有一个静态托管应用程序,仅限公司员工访问敏感的付费 AWS API。

关于firebase - 用于基于 AWS 驱动的浏览器的应用程序的 G Suite 身份提供商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40098541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com