为GCP构建OAuth令牌的最佳方法是什么

时间:2019-02-13 16:44:48

标签: google-oauth

我们有一个多租户设置,可以为每个客户(K-12学区)提供服务。我们在网站上为每个客户提供一个子域。我们为所有客户端使用一个API / OAuth令牌,但会将其各自的登录回调分别添加到我们的令牌中。我们收到了来自Google的警告,内容如下

  

您的项目abre平台在重定向URI和原始URL中具有多个唯一域,其中许多域具有不相关的应用程序。这直接违反了Google API服务:用户数据政策,该政策要求项目在请求访问Google用户数据时,必须准确地向Google和我们的用户反映其身份和意图。

我们正在寻找有关在Google内部进行设置的最佳方法的指南。谢谢。

我们的客户代表告诉我们要打开支持通知单。我们做到了,他们将其路由到随机团队(例如GSuite)。最终,其中一位告诉我们获得帮助的最佳方法是在此处询问SO。我觉得很奇怪,但是什么也没做。

1 个答案:

答案 0 :(得分:0)

让我检查一下,我了解您的情况。

  1. 您只有一台服务器
  2. 该服务器正在服务多个域(#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct node { int data; struct node *right; struct node *left; } NODE; void *insert(int ins, NODE **start) { if (*start == NULL) { NODE *newNode = malloc(sizeof(NODE)); newNode->data = ins; newNode->left = NULL; newNode->right = NULL; (*start) = newNode; } else if (ins < (*start)->data) { insert(ins, &((*start)->left)); } else if (ins > (*start)->data) { insert(ins, &((*start)->right)); } // if we already have this value in the tree then we will do nothing // and ignore it. return *start; } void printTree(NODE *start) { // print tree if (start->left) printTree(start->left); printf("Element value %d\n", start->data); if (start->right) printTree(start->right); } int main () { int number; NODE *phead = NULL; number = 15; insert(number, &phead); // printf("prints the first element (head): %d", head.data); number = 12; insert(number, &phead); // printf("should print the left branch : %d", head.left->data); // <- THIS DOES NOT SHOW UP number = 22; insert(number, &phead); number = 48; insert(number, &phead); number = 33; insert(number, &phead); // try a duplicate node data. number = 48; insert(number, &phead); printTree(phead); return 0; } Element value 12 Element value 15 Element value 22 Element value 33 Element value 48 等)
  3. 您正在为每个租户(school1.eduschool2.edu)使用唯一的重定向URL
  4. Google不喜欢

您应该做的是对所有租户(school1.edu/oauth)的应用程序使用单个重定向。构造初始身份验证URL时,可以设置一个名为school2.edu/oauth的参数,该参数将保留在流程中。因此,当Google重定向回您时,它将重定向到myapp.com/oauth。然后,您位于state的服务器代码可以重定向到myapp.com/oauth?state=school1