Пространство имён OpenstackManager.Identity
Пространство имён OpenstackManger.Identity предоставляет классы, реализующие общие средства аутентификации, необходимые для взаимодействия с платформой OpenStack. Классы, определенные в данном пространстве имён, позволяет управлять правами пользователей на обращение к остальным сервисам и действиями, которые разрешается выполнять таким пользователям, предоставлять токены для авторизации пользователей, создать политики, охватывающие всех пользователей и все сервисы, а также управлять каталогом оконечных точек сервисов.
Класс CreateUserQuery
Базовым объектом системы управления идентификацией OpenStack является т. н. "пользователь" — в данном случае это цифровое представление человека или системы, использующей какие-либо сервисы OpenStack.[12]
Метод API-интерфейса OpenStack, выполняющий операцию создания пользователя вызывается посредством HTTP POST запроса по URL-адресу, содержащему полностью прописанное доменное имя хоста в системе DNS или IP-адрес хоста и URL-пути ~/v3/users, уточняющего информацию о месте нахождения ресурса.
В таблице 2 перечислены необходимые параметры, которые должны быть переданы конструктору класса CreateUserQuery.
Таблица 2.Парметры конструктора класса CreateUserQuery
Параметр | Тип | Описание |
Url | String | Доменное имя или IP-адрес хоста. |
Name | String | Имя пользователя. Необходима уникальность в пределах одного домена. |
Password | String | Пароль пользователя |
DomainUUID | String | Идентификатор домена |
В листинге 3приложения А приведена реализация класса CreateUserQuery.
Метод GetHttpRequestParams класса CreateUserQuery переопределяет абстрактный метод базового класса и реализует алгоритм обработки данных приватных полей класса, инициализированных во время инстанцирования класса, и создания сущности класса HttpRequestParams, необходимой для выполнения корректного вызова метода APIOpenstack, отвечающего за создание нового пользователя.
Поля, определенные в классе данных CreateUserResponse, возвращаемом методом Execute, инициализируется средствами библиотеки Json.NET при десериализации ответа от OpenStackAPI. Описание всех полей класса перечислено в таблице 3.
Таблица 3.Поля класса CreateUserResponse
Параметр | Тип | Описание |
Id | String | Идентификатор пользователя |
Name | String | Имя пользователя. |
Enabled | Boolean | Состояние блокировки пользователя |
Domain_id | String | Идентификатор домена |
После выполнения метода Execute данной команды, можно воспользоваться классами GetUsersListQuery, GetUserDetailsQuery, UpdateUserCommand или DeleteUserCommand, также определенными в пространстве имён OpenstackManager.Identity. Данные классы выполняют задачи по получению списка существующих пользователей, получению детальной информации о пользователе, обновлению данных о пользователе и удалению пользователя из облака соответсвено.
Реализация классов CreateUserQuery и CreateUserResponse изображена в листинге 4 приложения А.
AuthorizeQuery
Аутентификация — это процесс подтверждения личности пользователя, необходимый системе OpenStack для подтверждения того, что каждый входящий функциональный вызов исходит именно от того пользователя, который был заявлен в качестве источника соответствующего запроса. OpenStack выполняет такую проверку посредством тестирования набора "заявлений", которые реализуются в форме учётных данных, доступных только тому пользователю, которому принадлежат эти данные.
После того, как компонент OpenStack Identity подтвердил идентичность пользователя, он предоставляют этому пользователю токен (token), который подтверждает эту идентичность и может использоваться при последующем обращении к ресурсам. Каждый токен имеет определенную область действия, в которой перечислены ресурсы, к которым применяется этот токен. Токен имеет конечный срок действия и может быть аннулирован при необходимости прекращения доступа соответствующего пользователя.[12]
Метод API-интерфейса OpenStack, выполняющий аутентификацию пользователя в облаке и возвращающий токен доступа к остальным сервисам OpenStack вызывается посредством HTTP POST запроса по URL-адресу, содержащему полностью прописанное доменное имя хоста в системе DNS или IP-адрес хоста и URL-пути ~/v3/auth/token, уточняющего информацию о месте нахождения ресурса.
В таблице 4 перечислены необходимые параметры, которые должны быть переданы конструктору класса AuthorizeQuery.
Поля, определенные в классе данных AthorizeResponse, возвращаемом методом Execute, инициализируется средствами библиотеки Json.NET при десериализации ответа от OpenStackAPI. Описание всех полей класса перечислено в таблице 5.
После выполнения метода Execute данной команды, можно воспользоваться классами GetTokenInfoQuery, CheckTokenQuery или DeleteTokenCommand, также определенными в пространстве имён OpenstackManager.Identity. Данные классы выполняют задачи по получению информации о токене, проверки валидности токена и принудительному удалению токена соответственно.
Таблица 4. Парметры конструктора класса AuthorizeQuery
Параметр | Тип | Описание |
Url | String | Доменное имя или IP-адрес хоста. |
Name | String | Имя пользователя. |
Password | String | Пароль пользователя. |
Таблица 5. Поля класса AthorizeResponse