개발/파이썬
[TIL] Namespace, Scope, Claim이란 (feat. oAuth)
seonu._.jang
2020. 6. 7. 16:50
반응형
# What I Learned
Namespace
- 서비스의 custom claim이 다른 서비스나 예약된 claim과 충돌하는 것을 방지하기 위해 사용
- 주료 도메인을 사용함
- e.g.
https://engster.co.kr
Scope
- 어떤 클레임들에 접근을 요청하고 있는지를 명시할 때 사용
Claim
- 유저정보나 메타정보에 관해 정보를 가지고 있는
Key/Value
짝(Pairs) - 특정한 entity가 특정한 property를 가지고 있음을 나타냄
- 클레임들은 scope에 맵핑됨 (아래의 클레임들은 profile scope에 맵핑)
{
"family_name": "Silverman",
"given_name": "Micah",
"locale": "en-US",
"name": "Micah Silverman",
"preferred_username": "micah.silverman@okta.com",
"sub": "00u9vme99nxudvxZA0h7",
"updated_at": 1490198843,
"zoneinfo": "America/Los_Angeles"
}
- 어떤 요청이 이루어지고 토큰이 발행됨. 그 토큰은 요청에 명시되어있는 scope에 기반한 특정한 정보(claim)를 포함하고 있음
Public Claims
- 'name'이나 'email'과 같은 공개 정보
Private Claims
- 우리의 어플리케이션에 국한된 정보 (
user_id
또는permission_level
)
ID Tokens
id_token
은 JWT토큰인 경우가 많다.
→ 유저 식별 정보가 토큰에 인코딩되어 있음
→ exp
나 signature 섹션을 통해 토큰이 간섭받지 않았음을 검증할 수 있음
# References
Create Namespaced Custom Claims
Identity, Claims, & Tokens - An OpenID Connect Primer, Part 1 of 3
Introduction to Claims | Resource Library | Curity Identity Server
반응형