Files
iiEsaywebUI/AUTHENTIK_SETUP.md
2026-02-19 18:12:09 +00:00

140 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Настройка Authentik для Open WebUI
## Проблема: Internal Server Error при входе через Authentik
### Диагностика
1. **Проверьте доступность Authentik:**
```bash
curl -I https://auth.iieasy.ru
```
2. **Проверьте OpenID endpoint:**
```bash
# Правильный путь для Authentik:
curl https://auth.iieasy.ru/application/o/open-webui/.well-known/openid-configuration
```
3. **Проверьте логи Open WebUI:**
```bash
sudo docker compose logs open-webui | grep -i "auth\|oidc\|oauth\|error"
```
## Правильная настройка Authentik
### Шаг 1: Создание OIDC Provider в Authentik
1. Войдите в Authentik: `https://auth.iieasy.ru`
2. Перейдите в **Providers** → **Add Provider**
3. Выберите **OpenID Connect / OAuth2 / OAuth2 with OpenID Connect**
4. Заполните:
- **Name**: `Open WebUI` (или любое имя)
- **Authorization flow**: Выберите существующий flow
- **Redirect URIs**: `https://odo.iieasy.ru/oauth/oidc/callback`
- **Client type**: `Confidential`
- **Client ID**: Запомните этот ID
- **Client Secret**: Запомните этот секрет
5. Сохраните Provider
### Шаг 2: Создание Application в Authentik
1. Перейдите в **Applications** → **Add Application**
2. Заполните:
- **Name**: `Open WebUI`
- **Slug**: `open-webui` (это важно для URL!)
- **Provider**: Выберите созданный Provider
3. Сохраните Application
### Шаг 3: Проверка правильного URL
После создания Application, правильный URL будет:
```
https://auth.iieasy.ru/application/o/open-webui/.well-known/openid-configuration
```
Где `open-webui` - это slug из Application.
### Шаг 4: Обновление .env
В файле `.env` убедитесь, что:
```bash
OPENID_CONNECT_ISSUER=https://auth.iieasy.ru/application/o/open-webui/
```
**ВАЖНО:**
- URL должен заканчиваться на `/`
- Slug (`open-webui`) должен совпадать с slug в Authentik Application
- После `/application/o/` идет slug, затем `/`
### Шаг 5: Проверка переменных в docker-compose.yml
В `docker-compose.yml` используется:
```yaml
OPENID_PROVIDER_URL=${OPENID_CONNECT_ISSUER}.well-known/openid-configuration
```
Это создаст полный URL:
```
https://auth.iieasy.ru/application/o/open-webui/.well-known/openid-configuration
```
### Шаг 6: Перезапуск контейнера
```bash
cd /home/its/iiEasyWeb
sudo docker compose restart open-webui
```
## Временное решение: Включить форму входа
Если Authentik не работает, временно включите форму входа:
В `docker-compose.yml` измените:
```yaml
- ENABLE_LOGIN_FORM=true # Временно включено
- ENABLE_OAUTH_SIGNUP=false # Временно отключено
```
Затем перезапустите:
```bash
sudo docker compose restart open-webui
```
## Проверка конфигурации
1. **Проверьте, что endpoint доступен:**
```bash
curl https://auth.iieasy.ru/application/o/open-webui/.well-known/openid-configuration
```
Должен вернуться JSON с конфигурацией OpenID Connect.
2. **Проверьте redirect URI в Authentik:**
- Должен быть: `https://odo.iieasy.ru/oauth/oidc/callback`
- Без завершающего слеша
3. **Проверьте логи:**
```bash
sudo docker compose logs open-webui --tail 100 | grep -i "oidc\|oauth"
```
## Частые ошибки
### 404 Not Found на .well-known/openid-configuration
- Проверьте slug в Application (должен быть `open-webui`)
- Проверьте URL в .env (должен заканчиваться на `/`)
- Убедитесь, что Application привязан к Provider
### Invalid redirect URI
- Проверьте redirect URI в Authentik: `https://odo.iieasy.ru/oauth/oidc/callback`
- Убедитесь, что домен правильный (без порта, если используете HTTPS)
### Internal Server Error
- Проверьте логи Open WebUI
- Убедитесь, что Client ID и Client Secret правильные
- Проверьте, что SSL сертификат валидный для auth.iieasy.ru