> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yahont.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# OIDC

> Настройка аутентификации OpenID Connect

Настройте в Yahont аутентификацию OpenID Connect (OIDC). Доступна с распространёнными поставщиками удостоверений,
такими как Okta и Microsoft Entra ID (Azure AD).

Поставщики OIDC настраиваются в **Панель администратора** → **Организация** → [Поставщики
SSO](/deployment/authentication/sso_providers). Переменные окружения и перезапуски не нужны,
и можно настроить несколько поставщиков и включить их одновременно (см.
[Доступность в Yahont CE и Enterprise Edition](/deployment/authentication/sso_providers#plan-availability)).

В этом руководстве описана настройка для Okta. Другие поставщики удостоверений настраиваются похожим образом.
Свяжитесь с нами, если нужна помощь с другим поставщиком удостоверений.

## Руководство

**1. Создайте приложение Okta**

Откройте Okta **Admin Console** → **Applications** → **Create App Integration**.

![Страница создания интеграции в Okta](https://mintcdn.com/yahont-ai/UKtfkv0aQHzrYqTA/assets/deployment/oidc_create_integration.png?fit=max\&auto=format\&n=UKtfkv0aQHzrYqTA\&q=85\&s=6f6f9de7ec381bc943ebac8b2bb7207a)

**2. Настройте приложение Okta**

Выберите **OIDC** и **Web Application**.

Назовите приложение `Yahont`.

> [!TIP]
>
> Если вы используете white labeling Yahont, приложение можно назвать как угодно.

Добавьте **Sign-in redirect URI** с именем, которое вы дадите поставщику в Yahont (slug в нижнем регистре,
например `okta`):

```
https://YOUR_YAHONT_DOMAIN.com/api/auth/oidc/YOUR_PROVIDER_NAME/callback
```

Определите, должны ли все пользователи или выбранные группы иметь доступ к Yahont,
либо пропустите этот шаг и назначьте пользователей позже.

![Страница настройки приложения OIDC в Okta](https://mintcdn.com/yahont-ai/UKtfkv0aQHzrYqTA/assets/deployment/oidc_config.png?fit=max\&auto=format\&n=UKtfkv0aQHzrYqTA\&q=85\&s=c8750f37ed58b1aac6af04343feebc3c)

**3. Сохраните учётные данные OIDC**

Создайте новое приложение и сохраните **Client ID** и **Client Secret**.

Также запишите **Okta Base URL** в формате `https://<YOUR_ORG_NAME>.okta.com`.

![Страница учётных данных OIDC в Okta](https://mintcdn.com/yahont-ai/UKtfkv0aQHzrYqTA/assets/deployment/oidc_secrets.png?fit=max\&auto=format\&n=UKtfkv0aQHzrYqTA\&q=85\&s=fb0b66f97fcc10c9f71ca4fe0637e0f3)

> [!NOTE]
>
> После сохранения приложения можно загрузить логотип Yahont или свой логотип для white labeling,
> нажав значок шестерёнки рядом с названием приложения `Yahont`

**4. Добавьте поставщика в Yahont**

Откройте **Панель администратора** → **Организация** → [Провайдеры SSO](/deployment/authentication/sso_providers)
и нажмите **Add Provider**.

Выберите тип поставщика **OIDC**, введите **Name**, использованное в redirect URI, и вставьте **Client ID**,
**Client Secret** и URL конфигурации OpenID:

```
https://<YOUR_OKTA_BASE_URL>/.well-known/openid-configuration
```

После создания поставщика в его строке показывается точный **Redirect URI**. Убедитесь,
что он совпадает с зарегистрированным в Okta, затем войдите через новый вариант на странице входа.

## Настройка запрашиваемых областей

По умолчанию Yahont использует базовые области OIDC по стандарту при перенаправлении пользователей к поставщику
удостоверений. Переопределять список имеет смысл в первую очередь тогда, когда токен доступа, выданный при входе,
должен передаваться в вызовы инструментов, которым нужны дополнительные области поставщика удостоверений.

Задайте **Scopes** в записи поставщика (**Панель администратора** → **Организация** → **Провайдеры SSO**),
чтобы переопределить список для каждого поставщика. **Scopes** поставщика имеют приоритет. Если поле пусто,
применяется переменная окружения всего развёртывания, затем встроенные значения по умолчанию.

Переменная окружения всего развёртывания `OIDC_SCOPE_OVERRIDE` задаёт список через запятую,
который применяется ко всем поставщикам OIDC:

```bash .env theme={null}
OIDC_SCOPE_OVERRIDE=openid,email,profile,groups
```

Yahont всегда дополнительно запрашивает `offline_access`, чтобы выдавались токены обновления,
даже если его нет в списке переопределения.

> [!WARNING]
>
> Переопределение **заменяет** области по умолчанию — убедитесь, что `openid`, `email` и `profile` по-прежнему включены,
> если хотите, чтобы стандартный вход продолжал работать.

> [!NOTE]
>
> Все добавляемые здесь области также должны быть включены для приложения у вашего поставщика удостоверений.
> Yahont меняет только то, что отправляется в запросе авторизации;
> поставщик удостоверений по-прежнему отклоняет области, не настроенные для клиента.

## Включение PKCE

PKCE по умолчанию отключён для обратной совместимости с существующими развёртываниями OIDC.

Включите **Enable PKCE** в записи поставщика (**Панель администратора** → **Организация** → **Провайдеры SSO**).

Переменная окружения всего развёртывания `OIDC_PKCE_ENABLED` включает его для всех поставщиков:

```bash .env theme={null}
OIDC_PKCE_ENABLED=true
```

> [!WARNING]
>
> `OIDC_PKCE_ENABLED=true` принудительно включает PKCE для каждого поставщика, в том числе для тех,
> у кого переключатель **Enable PKCE** выключен. Отмените её, если хотите,
> чтобы источником истины были переключатели отдельных поставщиков.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.