首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为不同国家的公司网站创建一个或多个OAuth 2.0项目?( URL和本地内容中的不同前缀)

为不同国家的公司网站创建一个或多个OAuth 2.0项目?( URL和本地内容中的不同前缀)
EN

Stack Overflow用户
提问于 2019-08-21 08:26:56
回答 2查看 940关注 0票数 1

我正在中开发一个结构来创建projectsnd,为我们公司的网站配置一个OAuth 2.0客户机ID。这些我们用来整合谷歌登录到网站。

我们现在有大约50个网站,其中一些是“公司网站”,然后我们有“产品网站”等。

例如,一组公司网站-这些网站的设计完全相同,目的相同,但特定于国家,因此:-国家前缀不同,例如countryA.companyxy.com、countryB.companyxy.com -内容不同(内容类型相同,但内容本身与国家相连,因此是本地的)--语言可能不同(虽然主要是英语)

我正在寻求一个建议,因为我无法决定什么更好: 1)每个网站创建一个项目,然后为环境创建不同的客户ID (prod、暂存、dev) --这将是50个项目,每个项目有3个客户ID 2) --每个组创建一个项目--例如,公司网站将有一个项目,我将为每个国家和每个环境创建新的客户ID。这样,我可能会有5-6个项目,每个项目都有10-20个客户ID。

这些公司的网站可以使用相同的应用程序,还是不应该使用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-21 13:01:45

如果我对您的理解是正确的,这是一个相当标准的多租户应用程序,其中一个应用程序(从谷歌的角度来看)生活在多个领域。您可以使用单个Project和单个客户端ID,因为在这两种情况下,ID都与应用程序有关,而不是应用程序所在的域。

因此,当您启动OAuth舞蹈时,您总是指定相同的重定向URL,它处理所有域的OAuth。诀窍是在舞蹈开始时包含一个state参数,该参数指示一旦舞蹈结束,您的OAuth代码应该重定向到哪个国家/站点。

所以,大概是这样:-

  1. 用户访问countryA.companyxy.com并请求Oauth (例如。点击一个登录按钮)
  2. 您重定向到accounts.google.com?redirect_uri=common.companyfoo.com/oauth&state=countryA.companyxy
  3. auth之后,谷歌将重定向到common.companyfoo.com/oauth?state=countryA.companyxy
  4. oauth处理程序执行它的操作,然后解析状态参数并将其重定向回countryA.companyxy.com。

当然,根据您对管理的热情以及您希望如何分割数据,您的公司可能会选择多个项目和/或客户ID。为了解释这最后一点,以驱动器为例,如果所有公司都有相同的项目,那么drive.file作用域将允许他们访问应用程序创建的所有文件。然而,如果你为每一家公司都有一个项目,那么谷歌会看到这些是由不同的应用程序创建的,所以使用drive.file范围是看不到的。

票数 0
EN

Stack Overflow用户

发布于 2019-08-21 10:03:38

我正在寻求一份推荐信,因为我无法决定什么更好:

我会使文件夹/项目与公司组织的结构一致,更倾向于更多的项目(分离),而不是合并。试着考虑指挥系统和资源的分配。因素是您希望安全隔离资源的方式。这可能有助于找出该去哪里。从生产资源中分离开发(单独的项目)。

这些公司的网站可以使用相同的应用程序,还是不应该使用?

答案是“视情况而定”。如果它们都共享一个共同的域名根,并且在根上进行身份验证,那么很容易实现。身份验证cookie可以跨域共享。否则,您需要使用多个redirect_urls,这样一个站点上的auth就可以在同一个站点上完成。我不知道每个客户端ID重定向URL的限制是什么。

关于你问题的第二部分,“否则他们不应该”。如果这些网站看起来像同一家公司,那么客户只需认证一次,并在所有网站上获得授权。这是个好主意吗?是的。这是正确的想法吗?这取决于您的安全需求、隔离需求等等。这里没有简单的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57587420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档