Перейти к основному содержимому

Аутентификация и авторизация сервиса бизнес-логики

Для аутентификации и авторизации клиента, от имени которого будет работать сервис бизнес-логики, в сервисе аутентификации и авторизации Identity необходимо получить следующие данные:

Так же необходимо указать URL-адрес сервера Nginx и URL-адрес identity-issuer для доступа к сервису аутентификации и авторизации identity. Эти параметры настроены в файле application.yaml.

Следующий блок кода файла application.yaml демонстрирует настройку работы с сервисом аутентификации и авторизации identity и позволяет получать токены идентификации в этом сервисе.

platform:
core:
api-client:
nginx-url: https://pmd-bpms.plm.md.local
identity-issuer: https://pmd-bpms.plm.md.local/identity
client-id-0: mdcamundaproxy-client
client-secret-0: LwB7M6wx7xNp29v17neKCx8ihEg1lAdGw5N9YkGwjDfntO5sywVYW5NqdGmB10cC
identity:
current-client-id: mdcamundaproxy-client

Следующий блок кода файла application.yaml демонстрирует активацию Spring Boot Starter модуля управления авторизацией identity-admin-api.

platform:
identity-admin-api:
starter:
enabled: true

В результате в Spring-контексте становятся доступными следующие компоненты:

  • ru.platform.identityAdminApiClient.IdentityAdminApiClient;
  • ru.platform.identityAdminApiClient.IdentityAdminApiService.

Следующий блок кода файла application.yaml демонстрирует активацию Spring Boot Starter модуля управления безопасностью security.

platform:
security:
starter:
enabled: true

В результате в Spring-контексте становятся доступными следующие компоненты:

  • ru.platform.security.SubjectInfoProvider;
  • ru.platform.security.AccessRightsService;
  • ru.platform.security.SecurityObjectsService.

ru.platform.security.SubjectInfoProvider извлекает данные о текущем пользователе из контекста запроса. Если инициатором запроса является сам сервис, например, задача по расписанию, Spring-контекст не содержит данных о пользователе, и ru.platform.security.SubjectInfoProvider генерирует исключение.