스택큐힙리스트

JWT (Json Web Token)의 "aud" (Audience)와 Client_Id 간의 차이점은 무엇인가요? 본문

카테고리 없음

JWT (Json Web Token)의 "aud" (Audience)와 Client_Id 간의 차이점은 무엇인가요?

스택큐힙리스트 2023. 11. 29. 00:02
반응형

저는 OAuth 2.0 JWT access_token을 내 인증 서버에 구현하고 있습니다. 그러나, JWT의 aud claim과 client_id HTTP 헤더 값의 차이에 대해 명확히 이해되지 않습니다. 그들은 같은가요? 그렇지 않다면, 둘 사이의 차이를 설명해 주실 수 있을까요?


저의 의심은 aud가 리소스 서버를 가리켜야 하고, client_id가 인증 서버에서 인식하는 클라이언트 응용 프로그램 중 하나를 가리켜야 한다는 것입니다. (예: 웹 앱 또는 iOS 앱)


현재 경우, 제 리소스 서버는 동시에 제 웹 앱 클라이언트입니다.

답변 1

결과적으로, 제 의심이 맞았습니다. JWT의 audience aud 클레임은 토큰을 수락해야 하는 리소스 서버를 가리키도록 설계되었습니다.


게시물에서는 다음과 같이 설명합니다:



토큰의 audience는 토큰의 목적지입니다.


audience 값은 문자열입니다 -- 일반적으로 액세스되는 리소스의 기본 주소, 즉 https://contoso.com과 같습니다.



OAuth의 client_id는 리소스 서버로부터 리소스를 요청하는 클라이언트 애플리케이션을 가리킵니다.

클라이언트 앱 (예: 당신의 iOS 앱)은 인증 서버에서 JWT를 요청합니다. 이를 위해, 클라이언트 앱은 필요한 사용자 자격 증명과 함께 자신의 client_idclient_secret을 전달합니다. 인증 서버는 client_idclient_secret을 사용하여 클라이언트를 검증하고 JWT를 반환합니다.


JWT에는 JWT의 유효한 리소스 서버를 지정하는 aud 클레임이 포함됩니다. If the aud contains www.myfunwebapp.com, but the client app tries to use the JWT on www.supersecretwebapp.com, then access will be denied because that Resource Server will see that the JWT was not meant for it.

답변 2

JWT (Json Web Token) Audience aud와 Client_Id의 차이점은 무엇일까요?
JWT (Json Web Token)은 인터넷에서 정보를 안전하게 공유하기 위해 사용되는 토큰입니다. 이 토큰은 주로 사용자 인증과 권한 부여를 위해 사용되며, 일반적으로 웹 애플리케이션이나 모바일 앱에서 사용됩니다. JWT는 텍스트 형식으로 표현되며, 헤더, 페이로드와 서명이라는 세 가지 부분으로 구성됩니다.
JWT의 aud (Audience) 필드와 Client_Id는 두 가지 서로 다른 개념입니다. aud 필드는 JWT가 발급되는 대상에 대한 정보를 담습니다. 즉, JWT를 사용하여 접근하려는 서비스, 애플리케이션 또는 리소스를 지정하는 역할을 합니다. 이 필드는 JWT를 검증하는 동안 해당 JWT가 어떤 서비스에 대한 접근 권한이 있는지 확인하는 데 사용됩니다. 예를 들어, 웹 애플리케이션이 특정 API 서비스에 대한 접근 권한을 요청하고자 할 때 aud 필드를 사용하여 해당 API 서비스를 지정할 수 있습니다.
반면에 Client_Id는 클라이언트 애플리케이션을 고유하게 식별하기 위해 사용되는 값입니다. 클라이언트 애플리케이션은 JWT를 사용하여 서비스에 접근하려는데, 이때 JWT에는 클라이언트 애플리케이션을 식별하는 Client_Id가 포함됩니다. 서버는 Client_Id를 통해 해당 클라이언트 애플리케이션이 신뢰할 수 있는지, 그리고 해당 클라이언트가 어떤 권한과 규칙을 갖는지를 확인할 수 있습니다.
결론적으로, JWT의 aud와 Client_Id는 각각 JWT 발급 대상과 클라이언트 애플리케이션을 식별하는 값입니다. aud는 JWT의 대상 서비스나 애플리케이션을 지정하는 데 사용되며, Client_Id는 JWT를 발급받은 클라이언트 애플리케이션을 식별하는 데 사용됩니다.
효과적인 사용을 위해서는 aud 필드와 Client_Id를 올바르게 설정하는 것이 중요합니다. 이를 통해 JWT는 올바른 대상에게만 제공되고 클라이언트 애플리케이션이 신뢰할 수 있는지 확인할 수 있습니다. 따라서 개발자는 JWT의 보안성을 강화하기 위해 aud 필드와 Client_Id를 제대로 설정해야 합니다.
이처럼 JWT의 aud 필드와 Client_Id는 JWT의 발급 대상과 클라이언트 애플리케이션을 식별하는 데 사용되며, 각각의 역할과 중요성을 가지고 있습니다. 제대로 설정된 aud 필드와 Client_Id는 보안 및 권한 관리 측면에서 중요한 요소로 작용하며, 안전한 인터넷 서비스를 제공하는 데 도움이 됩니다.
키워드: JWT, Json Web Token, aud, Client_Id, 차이점, 발급 대상, 클라이언트 애플리케이션, 식별, 보안, 권한 관리

반응형
Comments