사용자 지정 토큰 클레임
소개
액세스 토큰은 인증 (Authentication) 및 인가 (Authorization) 과정에서 중요한 역할을 하며, 주체의 아이덴티티 정보와 권한을 담고 Logto 서버 (인증 서버 또는 아이덴티티 제공자, IdP 역할), 웹 서비스 서버 (리소스 제공자), 클라이언트 애플리케이션 (클라이언트) 간에 전달됩니다.
토큰 클레임은 엔티티 또는 토큰 자체에 대한 정보를 제공하는 키-값 쌍입니다. 클레임에는 사용자 정보, 토큰 만료 시간, 권한 및 인증 (Authentication) 및 인가 (Authorization) 과정과 관련된 기타 메타데이터가 포함될 수 있습니다.
Logto에는 두 가지 유형의 액세스 토큰이 있습니다:
- JSON Web Token: JSON Web Token (JWT)은 클레임을 안전하고 클라이언트가 읽을 수 있는 방식으로 인코딩하는 인기 있는 형식입니다.
sub
,iss
,aud
등과 같은 일반적인 클레임은 OAuth 2.0 프로토콜에 따라 사용됩니다 (자세한 내용은 이 링크를 참조하세요). JWT 토큰은 소비자가 추가 검증 단계 없이 직접 클레임에 접근할 수 있도록 합니다. Logto에서는 특정 리소스 또는 조직의 인가 요청을 초기화할 때 기본적으로 JWT 형식으로 액세스 토큰이 발급됩니다. - 불투명 토큰: 불투명 토큰은 자체 포함되지 않으며 항상 토큰 인트로스펙션 엔드포인트를 통한 추가 검증 단계가 필요합니다. 불투명한 형식에도 불구하고, 불투명 토큰은 클레임을 얻고 당사자 간에 안전하게 전송하는 데 도움이 될 수 있습니다. 토큰 클레임은 Logto 서버에 안전하게 저장되며, 클라이언트 애플리케이션은 토큰 인트로스펙션 엔드포인트를 통해 접근할 수 있습니다. 인가 요청에 특정 리소스나 조직이 포함되지 않은 경우 불투명 형식으로 액세스 토큰이 발급됩니다. 이러한 토큰은 주로 OIDC
userinfo
엔드포인트 및 기타 일반적인 목적에 사용됩니다.
많은 경우, 표준 클레임은 JWT 또는 불투명 토큰을 사용하는 애플리케이션의 특정 요구를 충족하기에 충분하지 않습니다. 이를 해결하기 위해 Logto는 액세스 토큰 내에 사용자 지정 클레임을 추가할 수 있는 유연성을 제공합니다. 이 기능을 통해 비즈니스 로직에 필요한 추가 정보를 포함할 수 있으며, 불투명 토큰의 경우 인트로스펙션을 통해 안전하게 전송되고 검색할 수 있습니다.
사용자 지정 토큰 클레임은 어떻게 작동하나요?
Logto는 getCustomJwtClaims
콜백 함수를 통해 액세스 토큰
에 사용자 지정 클레임을 삽입할 수 있도록 합니다. getCustomJwtClaims
함수의 구현을 제공하여 사용자 지정 클레임 객체를 반환할 수 있습니다. 반환 값은 원래 토큰 페이로드와 병합되어 최종 액세스 토큰을 생성하기 위해 서명됩니다.
Logto 내장 토큰 클레임은 덮어쓰거나 수정할 수 없습니다. 사용자 지정 클레임은 추가 클레임으로 토큰에 추가됩니다. 내장 클레임과 충돌하는 사용자 지정 클레임이 있는 경우, 해당 사용자 지정 클레임은 무시됩니다.
관련 리소스
Logto로 JWT 액세스 토큰에 사용자 지정 클레임을 추가하여 인가를 강화하세요