Google apps script GSuite管理SDK>;目录API:如何为用户的自定义模式添加值?

Google apps script GSuite管理SDK>;目录API:如何为用户的自定义模式添加值?,google-apps-script,google-admin-sdk,google-workspace,Google Apps Script,Google Admin Sdk,Google Workspace,我们正在将SSO自动化设置到AWS中,但我遇到了一个问题 有一个名为AWSLab的自定义用户属性,如果用户没有为此属性填充任何IAMRole值,则需要添加一个 IAMRole字段的Info type设置为Text,并且在GSuite端的值的数量设置为多值,因此我将其放入此API请求的数组中 另外,当我对用户执行GET并查看附加的其他模式时,我看到名为type的键设置为work,所以我也包括了它 以下是我在谷歌应用程序脚本中的功能: function check_user_access(){

我们正在将SSO自动化设置到AWS中,但我遇到了一个问题

有一个名为
AWSLab
的自定义用户属性,如果用户没有为此属性填充任何
IAMRole
值,则需要添加一个

IAMRole
字段的Info type设置为Text,并且在GSuite端的值的数量设置为多值,因此我将其放入此API请求的数组中

另外,当我对用户执行
GET
并查看附加的其他模式时,我看到名为
type
的键设置为
work
,所以我也包括了它

以下是我在谷歌应用程序脚本中的功能:

function check_user_access(){
  var email = 'user@domain.com';
  var role = [
    'arn:aws:iam::123456789012:role/User',
    'arn:aws:iam::123456789012:saml-provider/GoogleAppsProvider'
  ].join(',')

  optArgs = {
    projection: "full"
  }

  var user = AdminDirectory.Users.get(email, optArgs)
  var schema = user.customSchemas

  Logger.log("typeof(schema): %s", typeof(schema))

  if(schema["AWSLab"]) {
    Logger.log("schema[\"AWSLab\"] found on user '%s': %s", email, schema["AWSLab"])
  } else {
    Logger.log("schema[\"AWSLab\"] not found! Updating...")

    Logger.log("schema before:\n\n%s\n", JSON.stringify(schema))
    schema["AWSLab"] = { "IAMRole": [{ "type": "work", "value": role }] }
    Logger.log("schema after:\n\n%s\n", JSON.stringify(schema))

    AdminDirectory.Users.update(userFull, email) // line 35
  }
}
当此函数运行时,我看到以下错误:

Invalid Input: [AWSLab] (line 35, file "Labs")

我现在有一些额外的行,用于输出故障排除的一些详细信息,但这并不能帮助我看到问题。

事实证明,问题在于自定义架构的名称

在创建时,模式有一个不同的名称,然后在某个点进行编辑

解决这个问题的关键是用一些伪数据填充用户上有问题的模式字段,然后通过API使用
GET
将用户拉出并检查JSON

您检查了吗?我没有,但也会帮助排除故障。非常感谢。