3.9 KiB
3.9 KiB
Million Miles Auth
Локальный POC с Authentik и кастомным frontend:
- регистрация пользователя на своей форме
- вход пользователя на своей форме
- Authentik используется как backend авторизации
- после входа frontend показывает данные из
id_token
Что в проекте
docker-compose.ymlподнимаетpostgresql,redis,authentik,authentik-workerиfrontendauthentik/blueprints/mm-custom-authentication-flow.yamlсоздаёт flow, provider и applicationfrontend/server.jsсодержит UI и логику регистрации/входа
Порты
- frontend:
http://localhost:3000 - Authentik admin:
http://localhost:9000
Быстрый старт
docker compose up --build
Если нужно полностью пересобрать проект с чистыми данными:
docker compose down -v
docker compose up --build
Первый запуск Authentik может занять несколько минут. Нужно дождаться, пока authentik-worker применит blueprint.
Удобный локальный .env для теста
Для быстрого ручного тестирования можно использовать такие локальные значения в .env:
AUTHENTIK_IMAGE=docker.io/authentik/server
AUTHENTIK_TAG=2026.2.2
PG_DB=authentik
PG_USER=authentik
PG_PASS=authentik
AUTHENTIK_SECRET_KEY=change-me-local-secret
AUTHENTIK_BOOTSTRAP_EMAIL=admin@millionmiles.local
AUTHENTIK_BOOTSTRAP_PASSWORD=admin123456
AUTHENTIK_BOOTSTRAP_TOKEN=local-bootstrap-token-change-me
APP_URL=http://localhost:3000
SESSION_SECRET=local-session-secret-change-me
AUTHENTIK_PUBLIC_URL=http://localhost:9000
AUTHENTIK_INTERNAL_URL=http://host.docker.internal:9000
AUTHENTIK_API_TOKEN=local-bootstrap-token-change-me
AUTHENTIK_LOGIN_FLOW=mm-custom-authentication-flow
OIDC_CLIENT_ID=mm-custom-frontend
OIDC_CLIENT_SECRET=mm-custom-secret
OIDC_ISSUER=http://localhost:9000/application/o/mm-custom-frontend/
OIDC_REDIRECT_URI=http://localhost:3000/auth/callback
AUTH_DEBUG=false
Как зайти в админку Authentik
http://localhost:9000
Логин администратора берётся из .env:
- email: значение
AUTHENTIK_BOOTSTRAP_EMAIL - password: значение
AUTHENTIK_BOOTSTRAP_PASSWORD
Или
admin@millionmiles.local
admin123456
Что создаётся автоматически
Blueprint создаёт:
Flow: Million Miles Custom Authentication
Slug: mm-custom-authentication-flow
OAuth2/OIDC Provider: Million Miles Custom Frontend
Application slug: mm-custom-frontend
Client ID: mm-custom-frontend
Client Secret: mm-custom-secret
Redirect URI: http://localhost:3000/auth/callback
Как быстро всё протестировать
- Открой
http://localhost:3000/register - Зарегистрируй нового пользователя
- После регистрации тебя перекинет на
/login - Войди с только что созданными
email/password - После успешного входа откроется
/dashboard - На dashboard увидишь данные пользователя из JWT
id_token
Что проверить в админке
Applications -> Applications -> Million Miles
Applications -> Providers -> Million Miles Custom Frontend
Flows and Stages -> Flows -> Million Miles Custom Authentication
Directory -> Users
Если OIDC provider ещё не применился
Если frontend пишет, что провайдер ещё не готов, проверь worker:
docker compose logs -f authentik-worker