Обновление пароля в RackSpace с использованием C#

Я просто пытаюсь изменить пароль основной учетной записи и дополнительного пользователя в RackSpaceCloud с помощью C#, но продолжаю сталкиваться с исключением UserNotAuthorized. Это странно, потому что я могу сделать что-нибудь еще без этой ошибки, сбросить ключи Api, список пользователей и идентификаторы пользователей (и т. Д.). Образец кода

 net.openstack.Core.Domain.CloudIdentity cloudIdentity = new CloudIdentity()//Admin Credits
 {
     Username = "me",
     APIKey = "blahblahblah",
 };
 CloudIdentityProvider cloudIdentityProvider = new CloudIdentityProvider(cloudIdentity);
 cloudIdentityProvider.SetUserPassword("correctUserID", "newP@ssw0rd", cloudIdentity);

А потом я ошибаюсь, что сбивает с толку, потому что

cloudIdentityProvider.ListUsers(cloudIdentity)
cloudIdentityProvider.ResetApiKey("UserID", cloudIdentity);

Работай отлично. Любая помощь или идеи будут оценены. Да, и кстати, информация о добавлении для исключения всегда одинакова. "Невозможно аутентифицировать пользователя и получить авторизованные конечные точки службы"

1 ответ

Решение

Это ошибка. Я открыл номер 528, но пока что есть обходной путь.

var cloudIdentity = new CloudIdentity
{
    Username = "{username}",
    APIKey = "{api-key}"
};

var cloudIdentityProvider = new CloudIdentityProvider(cloudIdentity);
var userAccess = cloudIdentityProvider.Authenticate(cloudIdentity);

var request = new HttpRequestMessage(HttpMethod.Post, string.Format("https://identity.api.rackspacecloud.com/v2.0/users/{0}", userAccess.User.Id));
request.Headers.Add("X-Auth-Token", userAccess.Token.Id);

var requestBody = JObject.FromObject(new { user = new { username = userAccess.User.Name } });
((JObject)requestBody["user"]).Add("OS-KSADM:password", "{new-password}");
request.Content = new StringContent(requestBody.ToString(), Encoding.UTF8, "application/json");

using (var client = new HttpClient())
{
    var response = client.SendAsync(request).Result;
}

Используемая идентификация в облаке должна быть администратором, если вам нужно изменить пароль другого пользователя, в противном случае не администраторы могут изменять только свой собственный пароль.

Другие вопросы по тегам