https://github.com/quaddarv1ne/keycloackfastapi
Keycloak — это программное обеспечение с открытым исходным кодом для управления идентификацией и доступом (IAM), разработанное компанией Red Hat
https://github.com/quaddarv1ne/keycloackfastapi
api fastapi fastapi-template hat iam it keycloack linux os py python python3 red sql sqlalchemy sqlite
Last synced: 4 months ago
JSON representation
Keycloak — это программное обеспечение с открытым исходным кодом для управления идентификацией и доступом (IAM), разработанное компанией Red Hat
- Host: GitHub
- URL: https://github.com/quaddarv1ne/keycloackfastapi
- Owner: QuadDarv1ne
- License: bsd-2-clause
- Created: 2025-05-10T08:31:16.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-05-10T11:55:11.000Z (5 months ago)
- Last Synced: 2025-05-18T03:12:08.870Z (5 months ago)
- Topics: api, fastapi, fastapi-template, hat, iam, it, keycloack, linux, os, py, python, python3, red, sql, sqlalchemy, sqlite
- Language: Python
- Homepage:
- Size: 727 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# KeycloackFastApi
[Keycloak](https://www.keycloak.org/)



**Keycloak** — это программное обеспечение с открытым исходным кодом для управления идентификацией и доступом (`IAM`), разработанное компанией `Red Hat`
Оно предоставляет инструменты для аутентификации и авторизации пользователей в приложениях и сервисах.
`Keycloak` поддерживает различные протоколы аутентификации, такие как `OAuth2`, `OpenID Connect` и `SAML 2.0`, и может интегрироваться с различными системами и приложениями для обеспечения безопасности и управления доступом.
## Основные компоненты Keycloak
**Перед тем как мы перейдем к практике, давайте кратко рассмотрим основные компоненты и термины, которые нам понадобятся:**
- `Realm (Реалм)` — изолированная область, в которой определяются пользователи, клиенты, роли и группы. Можно создавать несколько реалмов для разных проектов или окружений.
- `Client (Клиент)` — приложение, которое может запрашивать аутентификацию у `Keycloak` (в данном случае клиентом будет FastAPI-приложение)
- `User (Пользователь)` — субъект, который может аутентифицироваться в `Keycloak`
- `Role (Роль)` — набор прав, которые могут быть назначены пользователям. Роли могут быть привязаны к конкретному клиенту или быть глобальными для реалма.
- `Group (Группа)` — набор пользователей, которым можно одновременно назначить определенные роли.
- `Protocol (Протокол)` — `Keycloak` поддерживает несколько протоколов аутентификации, включая `OpenID Connect (расширение OAuth 2.0)` и `SAML 2.0`(в данном проекте мы будем использовать `OpenID Connect`).
### Поднимаем сам Keycloak
**Для развертывания `Keycloak` вам потребуется выполнить следующие шаги:**
1. **Создаем проект:**
- - `Тип`: Преднастроенное приложение из маркетплейса
- - `Параметры сервиса`: Авторизация
- - `Тип сервиса`: `Keycloak`
- - `Тариф`: не ниже «Начальный» для стабильной работы2. **На этапе «Конфигурация» настраиваем переменные окружения (`envvars`):**
- - `KC_BOOTSTRAP_ADMIN_USERNAME` — имя (`login`) администратора
- - `KC_BOOTSTRAP_ADMIN_PASSWORD` — временный пароль администратора
- - `KC_DB` — тип базы данных. Указываем `postgres`
- - `KC_DB_URL_HOST` — host базы данных (тут задается ссылка для чтения/записи)
- - `KC_DB_URL_PORT` — порт базы данных (по умолчанию `5432` для `PostgreSQL`, если поднимали на `Amvera`)
- - `KC_DB_URL_DATABASE` — имя базы данных
- - `KC_DB_USERNAME` — имя пользователя базы данных
- - `KC_DB_PASSWORD` — пароль базы данных3. **В разделе «Настройки» приложения:**
- - Активируем бесплатное доменное имя или добавляем своё
4. **Добавляем переменную:**
- - `KC_HOSTNAME` — ваше доменное имя
## Создание виртуального окружения
```bash
python -m venv .venv-keyclock
```**Активация виртуального окружения:**
- **На Windows:**
```bash
.venv-keyclock\Scripts\activate
```
**или**
```bash
.venv-keyclock/bin/activate
```- **На macOS и Linux:**
```bash
source .venv-keyclock/bin/activate
```---
💼 **Автор:** Дуплей Максим Игоревич
📲 **Telegram:** @quadd4rv1n7
📅 **Дата:** 10.05.2025
▶️ **Версия 1.0**
```textline
※ Предложения по сотрудничеству можете присылать на почту ※
📧 maksimqwe42@mail.ru
```