Мы настраиваем некоторую автоматизацию для 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")
У меня есть несколько дополнительных строк прямо сейчас, чтобы вывести некоторые детали для устранения неполадок, но это не помогает мне увидеть проблему.