웹 API 인증 기본 vs 베어러


89

내 웹 API 애플리케이션에서 JWT 기반 인증을 생성했습니다. 나는 차이점을 이해할 수 없다.

  1. 기본 토큰
  2. 무기명 토큰

누군가 나를 도울 수 있습니까?

답변:


117

기본 및 다이제스트 인증 체계는 사용자 이름과 암호를 사용하는 인증 전용입니다 ( RFC7616RFC7617 참조 ).

Bearer 인증 체계는 토큰을 사용하는 인증 전용이며 RFC6750에서 설명합니다 . 이 스키마가 OAuth2 사양에서 나온 경우에도 클라이언트와 서버간에 토큰이 교환되는 다른 모든 컨텍스트에서 사용할 수 있습니다.

JWT 인증과 관련하여 토큰이므로 가장 좋은 선택은 Bearer 인증 체계입니다. 그럼에도 불구하고 요구 사항에 맞는 사용자 지정 체계를 사용하는 데 방해가되는 것은 없습니다.


35

기본 인증 은 자격 증명을 base64를 사용하여 인코딩 된 사용자 ID / 암호 쌍으로 전송합니다. 클라이언트는AuthorizationwordBasicword 다음에 공백과base64-encoded문자열 username : password가 포함된헤더와 함께 HTTP 요청을 보냅니다.

인증 : 기본 ZGVtbzpwQDU1dzByZA ==

여기에 이미지 설명 입력 참고 : 기본 인증의 경우 사용자 ID 및 암호가 일반 텍스트로 네트워크를 통해 전달되므로 (base64로 인코딩되지만 base64는 가역적 인코딩) 기본 인증 체계가 안전하지 않습니다. HTTPS / TLS는 기본 인증과 함께 사용해야합니다.


전달자 인증 ( 토큰 인증 이라고도 함)에는 전달자 토큰이라는 보안 토큰이 있습니다. "보유자 인증"이라는 이름은 " 이 토큰의 보유자에게 액세스 권한 부여 "로 이해 될 수 있습니다. 베어러 토큰은 일반적으로 로그인 요청에 대한 응답으로 서버에서 생성되는 암호화 된 문자열입니다. 클라이언트는 보호 된 리소스에 요청할 때 Authorization 헤더에이 토큰을 보내야합니다.

승인 : Bearer <토큰>

여기에 이미지 설명 입력

참고 : 기본 인증과 마찬가지로 Bearer 인증 은 HTTPS (SSL)를 통해서만 사용해야합니다 .

자세한 내용은 link1 , link2


그래서이 둘은 모두 인증이고 실제 인증이 아닙니다. 첫 번째에서는 base64로 인코딩 된 문자열을 전송하고 권한을 부여받는 반면 후자의 경우 토큰
브레인 스톰

사용자 이름 / 암호보다 토큰을 전달하는 이점은 무엇입니까?
Muhammad Umer

@MuhammadUmer 당신은 토큰을 취소 할 수 있고 또한 그들에게 세분화 된 접근을 허용 할 수 있습니다 (즉, 읽기 접근 만 가능).
Mihai

나는 답을 찾았고 토큰으로 db 읽기를 수행 할 필요가 없다는 것이 었습니다. 하나의 서비스이지만 여전히 성능이 좋습니다.
Muhammad Umer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.