This commit is contained in:
Sophia Yakusheva 2025-06-03 14:53:29 +03:00
parent d674db37db
commit aab1fa160c
3 changed files with 16 additions and 9 deletions

View file

@ -12,5 +12,7 @@
- [Пайплайны MLDev](./pages/complex-pipeline.md) - [Пайплайны MLDev](./pages/complex-pipeline.md)
- [Подключение к суперкомпьютеру](./pages/charisma.md) - [Подключение к суперкомпьютеру](./pages/charisma.md)
- [Работа с модулем данных](./pages/datamodule-usage.md) - [Работа с модулем данных](./pages/datamodule-usage.md)
- [Настройка доступов к API](./pages/api-component.md)
- [Доступ к API через запросы на Python](./pages/python_access.md)
- [Терминология](./pages/terminology.md) - [Терминология](./pages/terminology.md)

View file

@ -1,4 +1,4 @@
# Настройка доступа к компонентам модуля через API # Настройка доступа к компонентам модуля через API (уточняется)
Чтобы внешние пользователи могли использовать компоненты приложения - запускать расчёты в ML-компонентах и пайплайнах, работать с файлами в DataBox - нужно добавить в приложение соответствующие API-компоненты. Чтобы внешние пользователи могли использовать компоненты приложения - запускать расчёты в ML-компонентах и пайплайнах, работать с файлами в DataBox - нужно добавить в приложение соответствующие API-компоненты.
@ -154,7 +154,7 @@ spec:
- `spec.secretRef.name` - имя секрета, которое может быть любым. - `spec.secretRef.name` - имя секрета, которое может быть любым.
Секрет может выглядеть вот так. В нём перечислены имена пользователей, которым будет предоставлен доступ к API, указанному в ComponentLink. Будут созданы специальные группы в KeyCloak, в которые будут добавлены указанные пользователи. В секрете перечислены имена пользователей, которым будет предоставлен доступ к API, указанному в ComponentLink. Будут созданы специальные группы в KeyCloak, в которые будут добавлены указанные пользователи. Пример секрете представлен ниже
```yaml ```yaml
apiVersion: v1 apiVersion: v1

View file

@ -1,8 +1,12 @@
# Доступ к API через запросы на Python # Доступ к API через запросы на Python
## Использование OIDC аутентификации API платформы позволяют использовать basic и OIDC авторизацию.
Чтобы воспользоваться этим видом аутентификации, сначала необходимо получить `токен` KeyCloak. Затем полученный токен можно использовать в запросах. ## Использование OIDC авторизации
OIDC - это механизм предоставления доступов к одному сервису при наличии учетной записи в другом сервисе.
Для OIDC авторизации на платформе необходимо наличие учетной записи в KeyCloak. Сначала необходимо получить `токен` от KeyCloak (см. ниже). Затем полученный токен можно использовать в запросах.
``` ```
from requests import post 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) 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 ```python
@ -42,7 +46,7 @@ curl -X POST https://platform-sso.stratpro.hse.ru/realms/platform.stratpro.hse.r
### Обновление токена ### Обновление токена
Если срок действия токена истёк, его можно обновить, используя полученный ранее `refresh_token`. Если срок действия токена истёк, его можно обновить, используя полученный ранее `refresh_token`, или получить новый токен. Для обновления воспользуйтесь следующим кодом
```python ```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` в параметры запроса. Для запроса достаточно передать логин `USER` и пароль `PASSWORD` в параметры запроса.
```python ```python