140 lines
4.6 KiB
Markdown
140 lines
4.6 KiB
Markdown
|
|
# Настройка 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
|