Files
iiEsaywebUI/AUTHENTIK_SETUP.md

140 lines
4.6 KiB
Markdown
Raw Normal View History

# Настройка 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