Урок 6 | FastAPI Аутентикация и Авторизация [часть 3] | Intermediate ⭐ | Python на практике

Поділитися
Вставка
  • Опубліковано 12 січ 2025

КОМЕНТАРІ • 4

  • @nto-i7h
    @nto-i7h 23 дні тому +1

    Спасибо. Ждал продолжение.

    • @python-practice
      @python-practice  23 дні тому

      Спасибо за ваш интерес! 👍

  • @dgdarkking266
    @dgdarkking266 11 днів тому

    прикольно было бы посмотреть использование oauth и реализацию или использование либ для реализации своего сервера авторизации
    как такие токены валидировать - а то как-то пробовал заюзать oidc от фастапи он чот фигню какую-то делал для моего oidc сервера и решил свой oidc валидатор написать, а на сервере юзал парные ключи, чтобы можно было отправить на сервис запрос и он один раз за публичным ключом для валидации обращался к серверу авторизации и дальше сам валидировал
    также сервер авторизации писал сам, поскок хотел свою специфичную структуру для опльзователей использовать - пробовал разобраться в Keycloak, но так и не понял можно ли в нем хранить свою схему пользователя и как это сделать.
    ещё знаю, что можно предусмотреть ротации ключей, но такое ещё не делал и хз как другие сервисы оповещать, что ключ был изменен, хотя может в публичную инфу это можно положить и сервер перед валидацией будет проверять просроченность ключа

    • @python-practice
      @python-practice  11 днів тому +1

      Спасибо за такой развёрнутый комментарий! Очень интересный опыт.
      Написание своего сервера авторизации с учётом специфичных требований - крутой подход, особенно если стандартные решения вроде Keycloak не вписываются. Кстати, в Keycloak можно использовать свою схему пользователя, например, добавляя custom attributes через настройки или расширения - как описано в этой статье: medium.com/@ramanamuttana/custom-attribute-in-keycloak-access-token-831b4be7384a
      Что касается ротации ключей, вы правы, это можно делать через публичный endpoint с метаданными (например, .well-known/jwks.json). Многие сервисы при проверке токенов периодически обращаются к этому endpoint, чтобы получить актуальные ключи, но такая реализация требует аккуратного подхода. В моем понимании публичные ключи только валидируют токен, а приватный ключ всегда хранится на сервере, на котором создаются токены. Да, вопрос с просроченностью ключей можно решить, добавив публичную информацию о времени жизни ключа, что облегчает процесс ротации.
      Я подумаю о создании видео или материала по этим темам, включая ротацию ключей, валидацию токенов и настройку своей структуры пользователей. Эта тема действительно обширная, которую я постараюсь разобрать в нескольких уроках