Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google api 为不同国家/地区的公司网站创建一个或多个OAuth 2.0项目?(URL和本地内容中的前缀不同)_Google Api_Google Oauth_Google Developers Console - Fatal编程技术网

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

Google api 为不同国家/地区的公司网站创建一个或多个OAuth 2.0项目?(URL和本地内容中的前缀不同),google-api,google-oauth,google-developers-console,Google Api,Google Oauth,Google Developers Console,我正在Google开发者控制台中开发一个结构,用于创建项目并为我们公司的网站配置OAuth 2.0客户端ID。这些我们用来整合谷歌登录到网站 我们现在有大约50个网站,其中一些是“公司网站”,然后我们有“产品网站”,等等 例如,一组公司网站-这些网站具有完全相同的设计、相同的用途,但具有国家特定性,因此: -国家/地区前缀不同,例如countryA.companyxy.com、countryB.companyxy.com -内容不同(内容类型相同,但内容本身与国家有关,因此是本地的) -语言可能

我正在Google开发者控制台中开发一个结构,用于创建项目并为我们公司的网站配置OAuth 2.0客户端ID。这些我们用来整合谷歌登录到网站

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

例如,一组公司网站-这些网站具有完全相同的设计、相同的用途,但具有国家特定性,因此: -国家/地区前缀不同,例如countryA.companyxy.com、countryB.companyxy.com -内容不同(内容类型相同,但内容本身与国家有关,因此是本地的) -语言可能会有所不同(尽管主要是英语)

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

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

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

我会将文件夹/项目与公司组织在同一结构中对齐,优先选择更多项目(分离),而不是合并。试着想想指挥链和资源分配。考虑到您希望安全性如何分离资源。这可能有助于弄清楚什么应该去哪里。将开发与生产资源分开(单独的项目)

这些公司网站是否都使用相同的应用程序,或者 不应该

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

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

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

我会将文件夹/项目与公司组织在同一结构中对齐,优先选择更多项目(分离),而不是合并。试着想想指挥链和资源分配。考虑到您希望安全性如何分离资源。这可能有助于弄清楚什么应该去哪里。将开发与生产资源分开(单独的项目)

这些公司网站是否都使用相同的应用程序,或者 不应该

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


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

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

因此,当您开始OAuth舞蹈时,您总是指定相同的重定向URL,该URL处理所有域的OAuth。技巧是在舞蹈开始时包含一个
state
参数,该参数指示舞蹈结束后OAuth代码应该重定向到哪个国家/地区

大致上是这样的:-

  • 用户访问countryA.companyxy.com并请求Oauth(例如单击登录按钮)
  • 你重定向到accounts.google.com?重定向_uri=common.companyfoo.com/oauth&state=countryA.companyxy
  • 验证后,谷歌将重定向回common.companyfoo.com/oauth?state=countryA.companyxy
  • 您的oauth处理程序执行它的操作,然后解析state参数并重定向回countrysa.companyxy.com

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

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

    因此,当您开始OAuth舞蹈时,您总是指定相同的重定向URL,该URL处理