GSuite Admin SDK › Directory API: как добавить значения в настраиваемую схему для пользователя?

Мы настраиваем некоторую автоматизацию для SSO в AWS, но я столкнулся с проблемой.

Существует настраиваемый атрибут пользователя с именем AWSLab, и если у пользователя нет значений IAMRole для этого атрибута, мне нужно добавить его.

В поле IAMRole для Тип информации задано значение Текст и Нет. значений установлено значение Multi-value на стороне GSuite, поэтому я помещаю его в массив для этого запроса API.

Кроме того, когда я делаю GET для пользователя и просматриваю другие подключенные схемы, я вижу, что этот ключ с именем type установлен на work, поэтому я также включаю его.

Ниже моя функция в скрипте Google Apps:

function check_user_access(){
  var email = '[email protected]';
  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")

У меня есть несколько дополнительных строк прямо сейчас, чтобы вывести некоторые детали для устранения неполадок, но это не помогает мне увидеть проблему.


person jlucktay    schedule 19.07.2018    source источник
comment
Проверяли ли вы Directory API: пользовательские поля? ?   -  person noogui    schedule 20.07.2018
comment
Я этого не делал, но этот метод списка схем GET также помог бы устранить неполадки. Благодарю вас!   -  person jlucktay    schedule 22.07.2018


Ответы (1)


Как оказалось, проблема была в названии пользовательской схемы.

При создании схема имела другое имя, которое затем было отредактировано в какой-то момент.

Ключом к выяснению этого было заполнение рассматриваемых полей схемы для пользователя некоторыми фиктивными данными, затем извлечение пользователя через API с помощью GET и изучение JSON.

person jlucktay    schedule 20.07.2018