При программном создании пула пользователей Cognito и клиента приложения, если клиент приложения должен иметь доступ на чтение / запись к атрибутам пула пользователей, этот доступ должен быть явно предоставлен.Я смог сделать это успешно для пользовательских атрибутов, но встроенные атрибуты всегда возвращают ошибку «Недопустимые атрибуты записи, указанные при создании клиента» или «Недопустимые атрибуты чтения, указанные при создании клиента».
Документацияэто ... объемное и трудно найти.Я еще не видел пример этого или фактическую полезную документацию по типу CreateUserPoolClientRequest, в которой говорится что-либо об этом, кроме таких вещей, как «ReadAttributes - это список строк, которые являются атрибутами, которые могут быть прочитаны».
Вот код, который я использую, который всегда заканчивается сообщением об ошибке и неудачей при создании клиента приложения._client - это AmazonCognitoIdentityProviderClient, надлежащим образом созданный, проверенный и работающий в лямбда-функции.
var request = new CreateUserPoolClientRequest { UserPoolId = userPoolId, ClientName = $"{name}AppClient" };
var builtInAttributes = new List<string>()
{
"address","birthdate","email","family name","gender","given name","locale","middle name","name","nickname","phone number", "picture","preferred username","profile","zoneinfo","updated at","website"
};
var readAttributes = new List<string>();
var writeAttributes = new List<string>();
readAttributes.InsertRange(0,builtInAttributes);
writeAttributes.InsertRange(0, builtInAttributes);
var attributeConfig = ConfigurationHelper.GetListFromSection("UserPoolCustomAttributes");
foreach (var attribute in attributeConfig)
{
readAttributes.Add($"custom:{attribute.Key}");
writeAttributes.Add($"custom:{attribute.Key}");
}
request.ReadAttributes = readAttributes;
request.WriteAttributes = writeAttributes;
var result = await _client.CreateUserPoolClientAsync(request, CancellationToken.None);
Любая помощь очень ценится.