세 가지 가장 일반적인 API 인증 방법

(이 기사는 원래 Bearer.sh에 게재되었습니다.)

타사 API 작업을 시작하면 다양한 API 인증 방법을 접하게 됩니다. API로 인증된 요청을 수행하는 가장 일반적인 세 ​​가지 방법은 다음과 같습니다.

  • 기본 인증: 모든 API 호출과 함께 사용자 이름/암호를 보냅니다 🏴‍☠️

  • API 키: 이 서비스는 귀하의 계정에 대한 고유한 키를 생성하고 귀하는 모든 요청과 함께 이를 전달합니다 🤓

  • OAuth: 사용자가 로그인 버튼을 클릭하고 권한을 부여하면 앱에서 access_token 🚀
  • 로 각 요청을 인증할 수 있습니다.

    각 방법에는 고유한 장/단점이 있습니다.

  • Basic은 구현하기가 매우 쉽지만 Google 계정 비밀번호를 누군가에게 알려주시겠습니까? (하지 마세요!)

  • API 키는 API 공급자와 개발자 모두에게 구현하기 쉽습니다. 하지만 기술자가 아닌 사람에게 API 키를 달라고 요청한 적이 있습니까?

  • OAuth(특히 OAuth2.0)는 사용자 경험 측면에서 최고입니다. 사용자는 버튼을 클릭하기만 하면 됩니다. 하지만 개발자에게는 !

  • API를 많이 사용하지 않더라도 세 가지 방법을 모두 접할 가능성이 높습니다. 예를 들어 Mailchimp 및 Twilio는 기본 인증 방법을 사용합니다. Stripe 또는 Sendgrid는 API 키 처리를 선호합니다. Google, Facebook 및 Twitter는 대부분 OAuth를 사용합니다.

    일부 이국적인 API를 사용하는 경우 다른 방법(예: JWT 또는 사용자 정의 방법)을 발견할 수도 있습니다. 오늘날에는 덜 일반적이므로 다른 항목에 초점을 맞추겠습니다.

    기초적인



    오늘날 우리가 사용하는 기본 인증은 20년 🥳Officially standardized in June 1999이며 매우 광범위하게 구현되었으며 모든 브라우저에서 기본 인증을 여전히 지원합니다(IE도 포함).

    요청과 함께 Authorization 헤더를 전달하여 작동합니다.

    curl "https://example.com/" \
      -H "Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ="
    


    문자열Basic은 기본 액세스 인증을 사용하고 있음을 나타냅니다. 그리고 문자열 dXNlcm5hbWU6cGFzc3dvcmQ=username:password의 base64 인코딩입니다.

    여기서 usernamepassword를 통과하는 것은 필수가 아닙니다. 예를 들어 Twilio[YOUR ACCOUNT SID]:[YOUR AUTH TOKEN]를 사용합니다.

    API 키



    API 키는 API가 생성하여 개발자에게 제공하는 비밀입니다. 일반적으로 3580944e0b742e664d10a5ed75f0bdbe 와 같이 길고 추측할 수 없는 문자열입니다.

    기본 인증과 달리 API Key에 대한 기준은 없습니다. 가장 일반적인 패턴은 Authorization 헤더와 함께 전달하는 것입니다.

    curl "https://example.com/" \
      -H "Authorization: 3580944e0b742e664d10a5ed75f0bdbe"
    


    그러나 일부 API는 개발자에게 전용 헤더X-Api-Key, 쿼리 문자열https://example.com/?key=3580944e... 또는 본문{ "key": "3580944e..." }으로 전달하도록 요청합니다.

    API 키의 장점은 id가 API에 세분성을 추가한다는 것입니다. 해당 범주의 챔피언 중 하나는 Stripe API 입니다. "마스터"API 키 위에 개발자가 "읽기 전용"과 같은 보다 구체적인 액세스를 제공할 수 있는 "제한된 키"를 생성할 수 있습니다.

    OAuth



    2007년에 도입된 OAuth은 사용자 경험에 중점을 두고 있습니다. OAuth의 핵심 개념은 최종 사용자가 타사 애플리케이션, 즉 개발자와 자격 증명을 공유하지 않는다는 것입니다.

    UX는 분명히 해당 인증 방법에 가장 적합하지만, 때로는 새로운 개발자가 시작하기 까다로울 수 있습니다.

    여기에는 두 가지 이유가 있습니다. 첫째, OAuth를 수행하는 단방향이 아니라 5:
  • OAuth1(OAuth1.0A로 수정됨);
  • 최대 4개의 승인 유형을 제안하는 OAuth2.0.

  • 둘째, 한 번에 여러 개념을 소개합니다. 예를 들어 먼저 access_token 를 요청해야 API 호출을 수행할 수 있지만 해당 토큰을 새로 고쳐야 하므로 제한된 시간 동안만 가능합니다.

    그러나 일단 become an OAuth master 👩‍🎤 이 있으면 익숙한 모양임을 알 수 있습니다.

    curl "https://example.com/" \
      -H "Authorization: Bearer {access_token}"
    


    테이크아웃



    기본, API 키 및 OAuth 중에서 가장 자주 볼 것으로 예상되는 것은 무엇입니까?



    100개 이상의 APImonitored at Bearer.sh를 조사했으며 OAuth가 가장 널리 퍼진 방법입니다 🥳.


    📢The most common API authentication methods은 원래 베어러 블로그에 실린 글입니다.

    좋은 웹페이지 즐겨찾기