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