Платформа 3V/Планировщик/Настройки аутентификации: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
(не показано 30 промежуточных версий 5 участников)
Строка 1: Строка 1:
 
{{DISPLAYTITLE:Настройки аутентификации}}
 
{{DISPLAYTITLE:Настройки аутентификации}}
Планировщик позволяет выполнять задачи, требующие авторизации через [https://ru.wikipedia.org/wiki/OAuth OAuth2]
+
Планировщик позволяет выполнять задачи, требующие авторизации через [https://ru.wikipedia.org/wiki/OAuth OAuth2]<br>
 
+
Перейти в Планировщик можно по ссылке https://*******/scheduler/swagger/index.html#/ например, для cloud это https://api.3v-cloud.com/scheduler/swagger/index.html#/.
Для настроек аутентификации в сервисе планировщика имеется отдельный контроллер '''Authentication'''
+
Настройка аутентификации производится в разделе '''Authentication'''.
 
 
 
== Метод Add ==
 
== Метод Add ==
Добавляет новые настройки аутентификации, возвращает идентификатор добавленных настроек.<br>
+
Данный метод добавляет новые настройки аутентификации в планировщик и возвращает идентификатор добавленных настроек.<br>
 +
Для добавления новой настройки аутентификации следует открыть вкладку '''"Добавить настройки аутентификации."(/api/Authentication/Add)''' в разделе планировщика '''Authentication''' и нажать кнопку '''"Try it out"'''. Далее следует заполнить поле '''"Имя добавляемых настроек"''' и добавить описание новой аутентификации в поле '''"Дто настроек аутентификации"'''. После заполнения всех необходимых полей следует нажать на кнопку '''"Execute"''' для добавления новой настройки аутентификации.<br>
 
Параметры:
 
Параметры:
*'''name''' - имя добавляемых настроек
+
*'''name''' - имя добавляемых настроек.
*'''settings''' - настройки аутентификации.
+
*'''settings''' - настройки аутентификации.  
 
+
Настройки аутентификации задаются в формате JSON по шаблону, который содержит следующие поля:
Настройки аутентификации - JSON вида:
+
*'''tokenRequestUrl''' - адрес по которому можно запросить токен.
 +
*'''clientId''' - идентификатор клиента для которого запрашиваем токен.
 +
*'''clientSecret''' - секрет клиента для которого запрашиваем токен.<br>
 +
'''clientId''' и '''clientSecret''' соответствуют полям '''Secret''' и '''Client ID''' конфиденциального клиента в Keycloak. Узнать подробнее о настройке конфиденциального клиента можно [[Платформа_3V/Планировщик/Настройки_аутентификации/Как_настроить_конфиденциального_клиента_на_примере_Keycloak|здесь.]] <br>
 +
''Обратите внимание на то, что значение "clientId" пишется с маленькой буквы, как в Keycloak в разделе Clients, в поле Client ID.''
 +
<br><br>
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;">
 +
<div style="font-weight:bold;line-height:1.6;"> Шаблон описания аутентификации JSON </div>
 +
<div class="mw-collapsible-content mw-collapsed-content">
 +
<syntaxhighlight lang="JSON" line>
 +
{
 +
  "discriminator": "string",
 +
  "tokenRequestUrl": "string",
 +
  "clientId": "string",
 +
  "clientSecret": "string"
 +
}
 +
</syntaxhighlight>
 +
</div></div>
 +
<br>
 +
[[Файл:добавить аутентификацию.png|700px|слева]]<br clear="both" /><br>
 +
'''Пример настройки аутентификации:'''
 
<syntaxhighlight lang="JSON">
 
<syntaxhighlight lang="JSON">
 
{
 
{
 
"tokenRequestUrl": "https://3v.3v-group.net/auth/realms/trivium/protocol/openid-connect/token",
 
"tokenRequestUrl": "https://3v.3v-group.net/auth/realms/trivium/protocol/openid-connect/token",
 
"clientId": "test-client",
 
"clientId": "test-client",
"clientSecret": "some-client-UUID"
+
"clientSecret": "some-client-UUID",
 +
"discriminator": "ConfidentialClientAuthenticationSettingsDto"
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
*'''tokenRequestUrl''' - урл по которому можно запросить токен.
+
Если задача была успешно добавлена, ее идентификатор отобразиться в '''"Response headers"''', в ином случае будет отображено сообщение об ошибки.  
*'''clientId''' - идентификатор клиента для которого запрашиваем токен.
+
[[Файл:ответ(1 аутентификация).png|700px|слева]]<br clear="both" /><br>
*'''clientSecret''' - секрет клиента для которого запрашиваем токен.
 
  
 
== Метод GetById ==
 
== Метод GetById ==
 
Возвращает настройки аутентификации по их идентификатору, или null, если нет настроек с таким идентификатором.<br>
 
Возвращает настройки аутентификации по их идентификатору, или null, если нет настроек с таким идентификатором.<br>
 +
Для получения настройки аутентификации следует открыть вкладку '''"Получить настройки аутентификации по их идентификатору."(/api/Authentication/GetById)''' в разделе планировщика '''Authentication''' и нажать кнопку '''"Try it out"'''. Далее поставить идентификатор аутентификации в поле '''"Идентификатор настроек"''' и нажмите на кнопку '''"Execute"''' для получения описания. Описание аутентификации отобразиться в '''"Response body"'''.<br>
 +
 
Параметры:
 
Параметры:
 
*'''authenticationSettingsId''' - идентификатор настроек.
 
*'''authenticationSettingsId''' - идентификатор настроек.
 +
[[Файл:аутентификация по идентификатору.png|700px|слева]]<br clear="both" /><br>
  
 
== Метод GetByName==
 
== Метод GetByName==
 
Возвращает список настроек аутентификации с указанным именем.<br>
 
Возвращает список настроек аутентификации с указанным именем.<br>
 +
Для получения настройки аутентификации следует открыть вкладку '''"Получить список настроек аутентификации с указанным именем."(/api/Authentication/GetByName)''' в разделе планировщика '''Authentication''' и нажать кнопку '''"Try it out"'''. Далее вписать имя настройки аутентификации в поле '''"Имя настроек"''' и нажмите на кнопку '''"Execute"''' для получения описания. Описание аутентификации отобразиться в '''"Response body"'''.<br>
 
Параметры:
 
Параметры:
 
*'''authenticationSettingsName''' - имя настроек.
 
*'''authenticationSettingsName''' - имя настроек.
 
+
[[Файл:Получить список настроек аутентификации с указанным именем..png|700px|слева]]<br clear="both" /><br>
 
== Метод GetAll==
 
== Метод GetAll==
 
Возвращает все настройки аутентификации для всех задач планировщика.<br>
 
Возвращает все настройки аутентификации для всех задач планировщика.<br>
 +
Для получения настройки аутентификации следует открыть вкладку '''"Получить все настройки аутентификации для всех задач шедулера."(/api/Authentication/GetAll)''' в разделе планировщика '''Authentication''' и нажать кнопку '''"Try it out"'''. Далее нажмите на кнопку '''"Execute"''' для получения описания всех настроек. Описание аутентификации отобразиться в '''"Response body"'''.
 +
[[Файл:Получение всех задач.png|700px|слева]]<br clear="both" /><br>
  
 
== Метод Edit ==
 
== Метод Edit ==
 +
Обновляет существующие настройки аутентификации.<br>
 +
Для редактирования настройки аутентификации следует открыть вкладку '''"Обновить существующие настройки аутентификации."(/api/Authentication/Edit)''' в разделе планировщика '''Authentication''' и нажать кнопку '''"Try it out"'''. Далее вставьте описание настроек аутентификации в окно '''"Новые значения настроек"''' нажмите на кнопку '''"Execute"''' для изменения описания настроек. Если настройки были успешно обновлены в окне "Response body" отобразится значение "true".
 +
Параметры:
 +
*'''newSettings''' - новые значения настроек.
 +
Настройки аутентификации задаются в формате JSON по шаблону, который содержит следующие поля:<br>
 +
*'''tokenRequestUrl''' - адрес по которому можно запросить токен.
 +
*'''clientId''' - идентификатор клиента для которого запрашиваем токен.
 +
*'''clientSecret''' - секрет клиента для которого запрашиваем токен.
 +
*'''id''' - идентификатор настроек.
 +
*'''name''' - наименование настроек.
 +
'''clientId''' и '''clientSecret''' соответствуют полям '''Secret''' и '''Client ID''' конфиденциального клиента в Keycloak. Узнать подробнее о настройке конфиденциального клиента можно [[Платформа_3V/Планировщик/Настройки_аутентификации/Как_настроить_конфиденциального_клиента_на_примере_Keycloak|здесь.]] <br>
 +
''Обратите внимание на то, что значение "clientId" пишется с маленькой буквы, как в Keycloak в разделе Clients, в поле Client ID.''
 +
<br><br>
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;">
 +
<div style="font-weight:bold;line-height:1.6;"> Шаблон описания аутентификации JSON </div>
 +
<div class="mw-collapsible-content mw-collapsed-content">
 +
<syntaxhighlight lang="JSON" line>
 +
{
 +
  "discriminator": "string",
 +
  "tokenRequestUrl": "string",
 +
  "clientId": "string",
 +
  "clientSecret": "string"
 +
}
 +
</syntaxhighlight>
 +
</div></div>
 +
<br>
 +
[[Файл:редактирование настроек аутентификации.png|700px|слева]]<br clear="both" /><br>
 +
'''Пример настройки аутентификации:'''
 +
<syntaxhighlight lang="JSON">
 +
{
 +
"settings": {
 +
"tokenRequestUrl": "https://.../auth/realms/trivium/protocol/openid-connect/token",
 +
"clientId": "test-client",
 +
"clientSecret": "some-client-UUID"
 +
},
 +
"id": 6,
 +
"name": "test"
 +
}
 +
</syntaxhighlight>
  
 
== Метод Delete==
 
== Метод Delete==
 +
Удаляет настройки аутентификации по их идентификатору.<br>
 +
Для удаления настройки аутентификации следует открыть вкладку '''"Удалить настройки аутентификации"(/api/Authentication/Delete)''' в разделе планировщика '''Authentication''' и нажать кнопку '''"Try it out"'''. Далее поставить идентификатор аутентификации в поле '''"Идентификатор настроек аутентификации"''' и нажмите на кнопку '''"Execute"''' для удаления настроек аутентификации. Описание аутентификации отобразиться в "Response headers".
 +
Параметры:
 +
*'''authenticationSettingsId''' - идентификатор настроек.
 +
[[Файл:удаление настроек аутентификации.png|700px|слева]] <br clear="both" /><br>

Текущая версия на 08:27, 27 декабря 2021

Планировщик позволяет выполнять задачи, требующие авторизации через OAuth2
Перейти в Планировщик можно по ссылке https://*******/scheduler/swagger/index.html#/ например, для cloud это https://api.3v-cloud.com/scheduler/swagger/index.html#/. Настройка аутентификации производится в разделе Authentication.

Метод Add

Данный метод добавляет новые настройки аутентификации в планировщик и возвращает идентификатор добавленных настроек.
Для добавления новой настройки аутентификации следует открыть вкладку "Добавить настройки аутентификации."(/api/Authentication/Add) в разделе планировщика Authentication и нажать кнопку "Try it out". Далее следует заполнить поле "Имя добавляемых настроек" и добавить описание новой аутентификации в поле "Дто настроек аутентификации". После заполнения всех необходимых полей следует нажать на кнопку "Execute" для добавления новой настройки аутентификации.
Параметры:

  • name - имя добавляемых настроек.
  • settings - настройки аутентификации.

Настройки аутентификации задаются в формате JSON по шаблону, который содержит следующие поля:

  • tokenRequestUrl - адрес по которому можно запросить токен.
  • clientId - идентификатор клиента для которого запрашиваем токен.
  • clientSecret - секрет клиента для которого запрашиваем токен.

clientId и clientSecret соответствуют полям Secret и Client ID конфиденциального клиента в Keycloak. Узнать подробнее о настройке конфиденциального клиента можно здесь.
Обратите внимание на то, что значение "clientId" пишется с маленькой буквы, как в Keycloak в разделе Clients, в поле Client ID.

Шаблон описания аутентификации JSON
1 {
2   "discriminator": "string",
3   "tokenRequestUrl": "string",
4   "clientId": "string",
5   "clientSecret": "string"
6 }


добавить аутентификацию.png



Пример настройки аутентификации:

{
	"tokenRequestUrl": "https://3v.3v-group.net/auth/realms/trivium/protocol/openid-connect/token",
	"clientId": "test-client",
	"clientSecret": "some-client-UUID",
	"discriminator": "ConfidentialClientAuthenticationSettingsDto"
}

Если задача была успешно добавлена, ее идентификатор отобразиться в "Response headers", в ином случае будет отображено сообщение об ошибки.

ответ(1 аутентификация).png



Метод GetById

Возвращает настройки аутентификации по их идентификатору, или null, если нет настроек с таким идентификатором.
Для получения настройки аутентификации следует открыть вкладку "Получить настройки аутентификации по их идентификатору."(/api/Authentication/GetById) в разделе планировщика Authentication и нажать кнопку "Try it out". Далее поставить идентификатор аутентификации в поле "Идентификатор настроек" и нажмите на кнопку "Execute" для получения описания. Описание аутентификации отобразиться в "Response body".

Параметры:

  • authenticationSettingsId - идентификатор настроек.
аутентификация по идентификатору.png



Метод GetByName

Возвращает список настроек аутентификации с указанным именем.
Для получения настройки аутентификации следует открыть вкладку "Получить список настроек аутентификации с указанным именем."(/api/Authentication/GetByName) в разделе планировщика Authentication и нажать кнопку "Try it out". Далее вписать имя настройки аутентификации в поле "Имя настроек" и нажмите на кнопку "Execute" для получения описания. Описание аутентификации отобразиться в "Response body".
Параметры:

  • authenticationSettingsName - имя настроек.
Получить список настроек аутентификации с указанным именем..png



Метод GetAll

Возвращает все настройки аутентификации для всех задач планировщика.
Для получения настройки аутентификации следует открыть вкладку "Получить все настройки аутентификации для всех задач шедулера."(/api/Authentication/GetAll) в разделе планировщика Authentication и нажать кнопку "Try it out". Далее нажмите на кнопку "Execute" для получения описания всех настроек. Описание аутентификации отобразиться в "Response body".

Получение всех задач.png



Метод Edit

Обновляет существующие настройки аутентификации.
Для редактирования настройки аутентификации следует открыть вкладку "Обновить существующие настройки аутентификации."(/api/Authentication/Edit) в разделе планировщика Authentication и нажать кнопку "Try it out". Далее вставьте описание настроек аутентификации в окно "Новые значения настроек" нажмите на кнопку "Execute" для изменения описания настроек. Если настройки были успешно обновлены в окне "Response body" отобразится значение "true". Параметры:

  • newSettings - новые значения настроек.

Настройки аутентификации задаются в формате JSON по шаблону, который содержит следующие поля:

  • tokenRequestUrl - адрес по которому можно запросить токен.
  • clientId - идентификатор клиента для которого запрашиваем токен.
  • clientSecret - секрет клиента для которого запрашиваем токен.
  • id - идентификатор настроек.
  • name - наименование настроек.

clientId и clientSecret соответствуют полям Secret и Client ID конфиденциального клиента в Keycloak. Узнать подробнее о настройке конфиденциального клиента можно здесь.
Обратите внимание на то, что значение "clientId" пишется с маленькой буквы, как в Keycloak в разделе Clients, в поле Client ID.

Шаблон описания аутентификации JSON
1 {
2   "discriminator": "string",
3   "tokenRequestUrl": "string",
4   "clientId": "string",
5   "clientSecret": "string"
6 }


редактирование настроек аутентификации.png



Пример настройки аутентификации:

{
	"settings": {
		"tokenRequestUrl": "https://.../auth/realms/trivium/protocol/openid-connect/token",
		"clientId": "test-client",
		"clientSecret": "some-client-UUID"
	},
	"id": 6,
	"name": "test"
}

Метод Delete

Удаляет настройки аутентификации по их идентификатору.
Для удаления настройки аутентификации следует открыть вкладку "Удалить настройки аутентификации"(/api/Authentication/Delete) в разделе планировщика Authentication и нажать кнопку "Try it out". Далее поставить идентификатор аутентификации в поле "Идентификатор настроек аутентификации" и нажмите на кнопку "Execute" для удаления настроек аутентификации. Описание аутентификации отобразиться в "Response headers". Параметры:

  • authenticationSettingsId - идентификатор настроек.
удаление настроек аутентификации.png