Skip to content

31. Security Intro


1. Security Intro

  • 보안, 인증 및 권한 부여를 처리하는 방법에는 여러 가지가 있다.
  • 많은 프레임워크와 시스템에서 보안과 인증을 처리하는 것만으로도 많은 노력과 코드가 필요하다.
  • 하지만 FastAPI는 모든 보안 사양을 연구하고 배울 필요 없이 표준 방식으로 쉽고 빠르게 처리하는 데 도움이 되는 여러 도구를 제공한다.


2. OAuth2

  • OAuth2는 인증 및 권한 부여를 처리하는 여러 방법을 정의하는 사양이다.
  • 상당히 광범위한 사양이며 여러 복잡한 사용 사례를 다룬다.
  • 여기에는 "third party"인 Facebook, Google, Twitter, GitHub으로 로그인하여 인증하는 방법이 있다.


3. OpenID Connect

  • OpenID Connect는 OAuth2를 기반으로 하는 또 다른 사양이다.
  • OAuth2에서 상대적으로 모호한 몇 가지 사항을 지정하여 상호 운용성을 높인다.
  • Google 로그인은 OpenID Connect를 사용하나, Facebook 로그인은 OpenID Connect를 지원하지 않는다.


4. OpenAPI

  • OpenAPI는 API 구축을 위한 개방형 사양이다.
  • FastAPI는 OpenAPI를 기반으로 한다.
  • 그렇기 때문에 여러 자동 대화형 문서 인터페이스, 코드 생성 등이 가능하다.
  • OpenAPI에는 여러 보안 "schemes"를 정의하는 방법이 있다.
  • 이를 사용하면 이러한 대화형 문서 시스템을 포함하여 모든 표준 기반 도구를 활용할 수 있다.


  • OpenAPI는 다음과 같은 보안 schemes를 정의한다.


1] apiKey

  • query 매개변수, header, cookie에서 가져올 수 있는 애플리케이션 특정 키이다.

2] http

  • Bearer 값에 토큰을 더한 header Authorizationbearer, HTTP Basic authentication, HTTP Digest 등을 포함하는 표준 HTTP 인증 시스템이다.

3] oauth2

  • 보안을 처리하는 모든 OAuth2 방식이며, "flows"라고 한다.
  • implicit, clientCredentials, authorizationCode는 Google, Facebook, Twitter, GitHub 등과 같은 OAuth2.0 인증 제공자를 구축하는 데 적합한 flows이다.
  • password는 동일한 애플리케이션에서 직접 인증을 처리하는 데 완벽하게 사용할 수 있는 flow이다.

4] openIdConnect

  • OAuth2 인증 데이터를 자동으로 검색하는 방법을 정의하는 것이다.
  • 이 자동 검색은 OpenID Connect 사양에 정의되어 있다.

References