Фиктивный провайдер аутентификации
Описание
Этот провайдер аутентификации позволяет войти в систему с любым именем пользователя и паролем, а затем выдает токен доступа.
После успешной аутентификации имя пользователя сохраняется в базе данных бэкенда.
Схема взаимодействия
Схема взаимодействия
@startuml
title DummyAuthProvider
participant "Клиент"
participant "Бэкенд"
== POST v1/auth/token ==
activate "Клиент"
alt Успешный случай
"Клиент" -> "Бэкенд" ++ : логин + пароль
"Бэкенд" --> "Бэкенд" : Пароль полностью игнорируется
"Бэкенд" --> "Бэкенд" : Проверить пользователя во внутренней базе данных бэкенда
"Бэкенд" -> "Бэкенд" : Создать пользователя, если не существует
"Бэкенд" -[#green]> "Клиент" -- : Сгенерировать и вернуть access_token
else Пользователь заблокирован
"Клиент" -> "Бэкенд" ++ : логин + пароль
"Бэкенд" --> "Бэкенд" : Пароль полностью игнорируется
"Бэкенд" --> "Бэкенд" : Проверить пользователя во внутренней базе данных бэкенда
"Бэкенд" x-[#red]> "Клиент" -- : 401 Unauthorized
else Пользователь удален
"Клиент" -> "Бэкенд" ++ : логин + пароль
"Бэкенд" --> "Бэкенд" : Пароль полностью игнорируется
"Бэкенд" --> "Бэкенд" : Проверить пользователя во внутренней базе данных бэкенда
"Бэкенд" x-[#red]> "Клиент" -- : 404 Not found
end
== GET v1/datasets ==
alt Успешный случай
"Клиент" -> "Бэкенд" ++ : access_token
"Бэкенд" --> "Бэкенд" : Валидировать токен
"Бэкенд" --> "Бэкенд" : Проверить пользователя во внутренней базе данных бэкенда
"Бэкенд" -> "Бэкенд" : Получить данные
"Бэкенд" -[#green]> "Клиент" -- : Вернуть данные
else Токен истек
"Клиент" -> "Бэкенд" ++ : access_token
"Бэкенд" --> "Бэкенд" : Валидировать токен
"Бэкенд" x-[#red]> "Клиент" -- : 401 Unauthorized
else Пользователь не найден
"Клиент" -> "Бэкенд" ++ : access_token
"Бэкенд" --> "Бэкенд" : Валидировать токен
"Бэкенд" --> "Бэкенд" : Проверить пользователя во внутренней базе данных бэкенда
"Бэкенд" x-[#red]> "Клиент" -- : 404 Not found
end
deactivate "Клиент"
@enduml
Конфигурация
Bases: BaseModel
Settings for DummyAuthProvider.
Examples
.. code-block:: bash
DATA_RENTGEN__AUTH__PROVIDER=data_rentgen.server.providers.auth.dummy_provider.DummyAuthProvider
DATA_RENTGEN__AUTH__ACCESS_KEY__SECRET_KEY=secret
Source code in data_rentgen/server/settings/auth/dummy.py
8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Bases: BaseModel
Settings related to JWT tokens.
Examples
.. code-block:: bash
DATA_RENTGEN__AUTH__ACCESS_KEY__SECRET_KEY=somesecret
DATA_RENTGEN__AUTH__ACCESS_KEY__EXPIRE_SECONDS=3600 # 1 hour
Source code in data_rentgen/server/settings/auth/jwt.py
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | |