인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

스프링 시큐리티 OAuth2

JWT - 소개 및 특징

claims 공개/비공개 개념 질문

작성

·

40

0

{

"sub" : "1234567890",
"iss" : "onjsdnjs.com"           // 등록된 클레임
"exp" : 192630000
"https://onjsdnjs.com/claims/job" : "developer" //공개 클레임
"userId" : "leaven"              // 비공개 클레임   
"username" : "onjsdnjs"
}


공개와 비공개 개념이 있습니다.
어디에 혹은 어느 대상에 공개를 한다는 것인지 설명이 없어 문의 드립니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. coffee93.coder님.

JWT(JSON Web Token)에서 클레임(Claims)은 토큰 내에 사용자의 정보나 기타 메타데이터를 담고 있는 부분입니다. 클레임은 크게 등록된 클레임(Registered Claims), 공개 클레임(Public Claims), 비공개 클레임(Private Claims)으로 나눌 수 있습니다.

  • 등록된 클레임: iss, sub, exp와 같이 JWT 사양에 등록되어 있는 클레임입니다. 이는 특정한 사양에 따라 의미가 정해져 있어, 광범위하게 사용됩니다.

  • 공개 클레임: 자체 도메인으로 네임스페이스를 지정하여 사용자가 정의하는 클레임입니다. 예를 들어 https://onjsdnjs.com/claims/job과 같은 형식입니다. 클레임 네임이 충돌하지 않도록 도메인 형식으로 네임스페이스를 지정하여 사용하는 것이 일반적입니다.

  • 비공개 클레임: userId, username과 같이 클라이언트와 서버 간의 계약을 통해 사용되는 클레임입니다. 비공개 클레임은 공개적이지 않으며, 특정 클라이언트와 서버 간에만 이해되는 데이터입니다.

공개와 비공개의 개념은 클레임의 네임스페이스와 사용 목적에 따라 클레임이 다른 시스템에서 인식될 수 있는지 여부에 따라 구분됩니다. 공개 클레임은 명확한 네임스페이스를 통해 같은 키가 중첩되지 않게 하며, 여러 시스템에서 사용할 수 있습니다. 비공개 클레임은 이러한 규칙 없이, 서버와 클라이언트 간의 특정 요구사항에 맞추어 자유롭게 정의하고 사용할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기