Spec-Zone.ru › FastAPI

Безопасность

Существует множество способов обработки безопасности, аутентификации и авторизации.

И обычно это сложная и «трудная» тема.

Во многих фреймворках и системах обработка безопасности и аутентификации требует больших усилий и кода (во многих случаях это может составлять 50% или более от всего написанного кода).

FastAPI предоставляет несколько инструментов, которые помогут вам легко, быстро и стандартным способом справиться с Безопасностью, без необходимости изучения и освоения всех спецификаций безопасности.

Но сначала давайте рассмотрим некоторые основные понятия.

В спешке?

Если вас не интересуют эти термины, и вам нужно добавить безопасность с аутентификацией на основе имени пользователя и пароля прямо сейчас, перейдите к следующим разделам.

OAuth2

OAuth2 — это спецификация, которая определяет несколько способов обработки аутентификации и авторизации.

Это довольно обширная спецификация и охватывает несколько сложных случаев использования.

Она включает способы аутентификации с помощью «третьей стороны».

Вот что используют все системы с «входом через Facebook, Google, Twitter, GitHub» в основе.

OAuth 1

Существовал OAuth 1, который сильно отличается от OAuth2 и сложнее, поскольку включал прямые спецификации по шифрованию связи.

Он не очень популярен и не используется в наши дни.

OAuth2 не определяет, как шифровать связь, он предполагает, что ваша приложение работает с HTTPS.

Подсказка

В разделе об развертывании вы увидите, как бесплатно настроить HTTPS, используя Traefik и Let's Encrypt.

OpenID Connect

OpenID Connect — это ещё одна спецификация, основанная на OAuth2.

Она просто расширяет OAuth2, уточняя некоторые относительно неоднозначные моменты в OAuth2, чтобы сделать его более совместимым.

Например, вход через Google использует OpenID Connect (который в основе использует OAuth2).

Но вход через Facebook не поддерживает OpenID Connect. У него есть собственный вариант OAuth2.

OpenID (не «OpenID Connect»)

Также существовала спецификация «OpenID». Она пыталась решить ту же задачу, что и OpenID Connect, но не основывалась на OAuth2.

Поэтому это была полностью отдельная система.

Она не очень популярна и не используется в наши дни.

OpenAPI

OpenAPI (ранее известный как Swagger) — это открытая спецификация для создания API (сейчас входит в состав Linux Foundation).

FastAPI основано на OpenAPI.

Это позволяет иметь несколько автоматических интерактивных интерфейсов документации, генерацию кода и т. д.

OpenAPI имеет способ определения нескольких «схем» безопасности.

Используя их, вы можете воспользоваться всеми этими инструментами, основанными на стандартах, включая эти интерактивные системы документации.

OpenAPI определяет следующие схемы безопасности:

  • apiKey: специфичный для приложения ключ, который может поступать из:
    • Параметра запроса.
    • Заголовка.
    • Куки.
  • http: стандартные системы HTTP-аутентификации, включая:
    • bearer: заголовок Authorization со значением Bearer плюс токен. Это унаследовано от OAuth2.
    • HTTP-аутентификация Basic.
    • HTTP Digest и т. д.
  • oauth2: все способы OAuth2 для обработки безопасности (называемые «потоками»).
    • Некоторые из этих потоков подходят для создания поставщика аутентификации OAuth 2.0 (например, Google, Facebook, Twitter, GitHub и т. д.):
      • implicit
      • clientCredentials
      • authorizationCode
    • Но есть один специфичный «поток», который можно идеально использовать для обработки аутентификации в рамках одного приложения напрямую:
      • password: в следующих главах будут рассмотрены примеры этого.
  • openIdConnect: имеет способ автоматически обнаруживать данные аутентификации OAuth2.
    • Эта автоматическая обнаружение определена в спецификации OpenID Connect.

Подсказка

Интеграция других поставщиков аутентификации/авторизации, таких как Google, Facebook, Twitter, GitHub и т. д., также возможна и относительно проста.

Самая сложная проблема — это создание поставщика аутентификации/авторизации, подобного этим, но FastAPI предоставляет инструменты для этого легко, беря на себя тяжелую работу.

FastAPI инструменты

FastAPI предоставляет несколько инструментов для каждой из этих схем безопасности в fastapi.security модуле, которые упрощают использование этих механизмов безопасности.

В следующих главах вы увидите, как добавить безопасность в свой API с помощью этих инструментов, предоставленных FastAPI.

Вы также увидите, как это автоматически интегрируется в интерактивную систему документации.

Была ли эта страница полезной?
Спасибо за ваш отзыв!
Спасибо за ваш отзыв!

© 2018 Sebastián Ramírez
Licensed under the MIT License.
https://fastapi.tiangolo.com/tutorial/security/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API