diff --git a/README.md b/README.md index 68b8696..5ae85ab 100644 --- a/README.md +++ b/README.md @@ -12,5 +12,7 @@ - [Пайплайны MLDev](./pages/complex-pipeline.md) - [Подключение к суперкомпьютеру](./pages/charisma.md) - [Работа с модулем данных](./pages/datamodule-usage.md) + - [Настройка доступов к API](./pages/api-component.md) + - [Доступ к API через запросы на Python](./pages/python_access.md) - [Терминология](./pages/terminology.md) diff --git a/pages/api-component.md b/pages/api-component.md index e46b55a..1782b3e 100644 --- a/pages/api-component.md +++ b/pages/api-component.md @@ -1,4 +1,4 @@ -# Настройка доступа к компонентам модуля через API +# Настройка доступа к компонентам модуля через API (уточняется) Чтобы внешние пользователи могли использовать компоненты приложения - запускать расчёты в ML-компонентах и пайплайнах, работать с файлами в DataBox - нужно добавить в приложение соответствующие API-компоненты. @@ -154,7 +154,7 @@ spec: - `spec.secretRef.name` - имя секрета, которое может быть любым. -Секрет может выглядеть вот так. В нём перечислены имена пользователей, которым будет предоставлен доступ к API, указанному в ComponentLink. Будут созданы специальные группы в KeyCloak, в которые будут добавлены указанные пользователи. +В секрете перечислены имена пользователей, которым будет предоставлен доступ к API, указанному в ComponentLink. Будут созданы специальные группы в KeyCloak, в которые будут добавлены указанные пользователи. Пример секрете представлен ниже ```yaml apiVersion: v1 diff --git a/pages/python_access.md b/pages/python_access.md index 76f5cff..5dddce7 100644 --- a/pages/python_access.md +++ b/pages/python_access.md @@ -1,8 +1,12 @@ # Доступ к API через запросы на Python -## Использование OIDC аутентификации +API платформы позволяют использовать basic и OIDC авторизацию. -Чтобы воспользоваться этим видом аутентификации, сначала необходимо получить `токен` KeyCloak. Затем полученный токен можно использовать в запросах. +## Использование OIDC авторизации + +OIDC - это механизм предоставления доступов к одному сервису при наличии учетной записи в другом сервисе. + +Для OIDC авторизации на платформе необходимо наличие учетной записи в KeyCloak. Сначала необходимо получить `токен` от KeyCloak (см. ниже). Затем полученный токен можно использовать в запросах. ``` from requests import post @@ -12,11 +16,11 @@ with open('input.json') as f: res = post(self.test_url, headers={"Authorization": f"Bearer {TOKEN}"}, json=data, allow_redirects=False) ``` -**Замечание**. Если не использовать флаг `allow_redirects=False`, при ошибке аутентификации будет возвращаться код 200 и страница авторизации KeyCloak. +**Замечание**. Если не использовать флаг `allow_redirects=False`, при ошибке авторизации будет возвращаться код 200 и страница авторизации KeyCloak. ### Получение токена -Для этого можно воспользоваться следующим кодом. Подставьте свои логин `USER` и пароль `PASSWORD`. Помимо токена, сохраните токен для обновления (`refrsh_token`). +Для этого можно воспользоваться следующим кодом. Подставьте свои логин `USER` и пароль `PASSWORD`. Помимо токена, сохраните токен для обновления (`refresh_token`). ```python @@ -42,7 +46,7 @@ curl -X POST https://platform-sso.stratpro.hse.ru/realms/platform.stratpro.hse.r ### Обновление токена -Если срок действия токена истёк, его можно обновить, используя полученный ранее `refresh_token`. +Если срок действия токена истёк, его можно обновить, используя полученный ранее `refresh_token`, или получить новый токен. Для обновления воспользуйтесь следующим кодом ```python @@ -64,10 +68,11 @@ curl -X POST https://platform-sso.stratpro.hse.ru/realms/platform.stratpro.hse.r ``` -## Использование basic аутентификации +## Использование basic авторизации -**Замечание**. Сервис, к которому обращаются, должен позволять использование basic-аутентификации. В противном случае используйте OIDC. +**Замечание**. Сервис, к которому обращаются, должен позволять использование basic-авторизации. В противном случае используйте OIDC. +Для basic авторизации необходимы логин и пароль, которые вам может предоставить только администратор. Для запроса достаточно передать логин `USER` и пароль `PASSWORD` в параметры запроса. ```python