ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [HTTP] bearer 키워드는 뭘까?
    네트워크 2023. 4. 20. 13:15

     

    chatgpt api를 가져와서 사용하기 위해 코드를 짰는데 response로 400이 넘어왔다

     

    > Server returned HTTP response code: 400 for URL: 

    > "You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY), or as the password field (with blank username) if you're accessing the API from your browser and are prompted for a username and password. You can obtain an API key from https://platform.openai.com/account/api-keys.",

    > API 키를 제대로 가져왔음에도 불구하고 인증이 안 되었는데...

     

    > key를 넣으면서 Bearer를 빼고 넣었기 때문에 인증이 거절당했다

    > 파이썬 코드를 보면서 Bearer이 뭐지? 안 넣어도 되는 건가 해서 뺐었던 거였다

    > 구글링을 통해 나온 자료들을 최대한 정리해 봤다 

     


     


    Bearer : bearer 토큰은 HTTP통신에서 사용하는 인증 방식에 Bearer Authentication을 사용하는 것

     

     




    애플리케이션 통신을 할 때는 HTTP 통신 방법을 많이 사용한다. HTTP는 무상태성 프로토콜이기 때문에 서버 측에서 클라이언트 접속 상태를 저장하도록 인증 방법들이 생겨났다.

    인증을 위해 쿠키, 세션, 토큰을 이용한다.

    1) 쿠키 인증은 쿠키에 사용자 정보를 담아 서버로 보내게 되는데, HTTP 방식의 통신을 사용할 경우 제 3자가 해당 정보를 볼 수 있다.

     

    2) 세션 인증은 세션 ID에 보내기 때문에 쿠키보다는 보안성이 높지만 서버에 추가적인 데이터베이스 공간이 필요하다는 단점이 있다.

     

    3) 토큰 인증은 쿠키나 세션보다 더 보안성이 강하고 효율적이다. 토큰에 암호화 방식과 타입 등을 나타내는 헤더, 전송할 데이터가 담긴 페이로드, 토큰 검증을 위한 서명을 가각 인코딩한 값이 포함되어 있다. 데이터가 인코딩 되어 있지만 누군가가 디코딩한다면 데이터 유출 피해가 발생할 수 있지만 서명 필드는 헤더와 페이로드를 통해 만들어지기 때문에 데이터 변조 후 재전송 하는 것을 막을 수 있다.
    - header : 토큰 타입과 암호화 방법을 보관하는 부분으로 base-64로 인코딩 된다
    - payload : 유저 정보, 상품 정보 등 다양한 종류의 정보를 저장할 수 있고 base-64로 인코딩된다
    - signature : header, payload, secret key의 조합

     

     




    토큰은 요청 헤더의 Authorization 필드에 담아 보내진다. 

    Authorization: <type> <credentials>
    토큰에는 많은 종류가 있고 서버는 이 토큰을 처리하기 위해 전송받은 <type>에 따라 다르게 처리한다. 

    <credentials> 자리에는 토큰이 들어간다.

    1) Basic : 사용자 아이디와 암호를 Base64로 인코딩한 값을 토큰으로 사용한다
    2) Bearer : JWT 혹은 OAuth에 대한 토큰을 사용한다 ( STATELESS, 무결성, 보안성이 장점 )
    3) Digest : 서버에서 난수 데이터 문자열을 클라이언트에게 보내고 클라이언트는 nonce를 포함하는 해시값을 사용하여 응답한다 (nonce, 난 : 임시로 제공되는 암호화 토)
    4) Mutual : 암호를 이용한 클라이언트-서버 상호 인증
    5) AWS4-HMAC-SHA256 : AWS 전자 서명 기반 인증

     

     

     

     

     


    (참고)
    https://velog.io/@cada/%ED%86%A0%EA%B7%BC-%EA%B8%B0%EB%B0%98-%EC%9D%B8%EC%A6%9D%EC%97%90%EC%84%9C-bearer%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C
    https://www.ssemi.net/what-is-the-bearer-authentication/
    https://useegod.com/2022/11/07/bearer/
    https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jmjm223&logNo=221483149513 
    https://julie-tech.tistory.com/56

     

    728x90

    '네트워크' 카테고리의 다른 글

    HttpClient 기초  (0) 2023.04.30
    모든 개발자를 위한 HTTP 웹 기본 지식 후기  (1) 2022.11.29
    HTTP 인프런 강의 정리 (6)  (0) 2022.11.29
    HTTP 인프런 강의 정리 (5)  (0) 2022.11.28
    HTTP 인프런 강의 정리 (4)  (1) 2022.11.26
Designed by Tistory.