Skip to content

Scope 레퍼런스

Scope는 공백 구분 문자열입니다 (profile email phone, 콤마 ❌).

표준 Scope

scopeuserinfo 반환 필드비고
profilesub, email, email_verified, identity_verified_level기본 신원
emailsub, email, email_verifiedprofile의 부분집합
phonesub, phone_number, phone_number_verifiedPhase 2에서 실제 필드 추가 예정
openidid_token 발급 + subOpenID Connect 1.0 활성화

identity_verified_level

logi는 실명/주민번호를 절대 보유하지 않습니다. 대신 정수 플래그만 제공:

  • 0 unverified (기본)
  • 1 email_verified (logi 자체, magic link — Phase 2)
  • 2 phone_verified (logi 자체 — Phase 2)
  • 3 sp_verified (SP가 NICE/KCB 등으로 실명인증 후 보고 — Phase 2)

제휴사는 이 정수로 게이팅만 수행하고, 실제 실명 데이터는 자체 인증 서비스에서 관리합니다.

커스텀 Scope (Phase 2)

제휴사는 자신의 도메인에 맞는 커스텀 scope를 등록할 수 있습니다. 네임스페이스 필수:

krx_listing:reviewer_role
enterprise_x:tier
blog:post.write

형식: <namespace>:<key> — 콜론 1개 기준 prefix로 앱과 매칭.

서버 측에서는 User#custom_claims 가 jsonb로 {namespace: {key: value}} 구조로 저장되며, 해당 scope 요청 시 id_token/userinfo에 병합됩니다 (β1-4).

제휴사 등록 시 allowed_scopes

앱 등록 시 허용할 scope를 지정합니다:

json
{
  "oauth_application": {
    "name": "My App",
    "redirect_uris": ["https://app.example.com/cb"],
    "allowed_scopes": ["profile", "email"]
  }
}

사용자가 이보다 넓은 scope를 요청하면 302 redirect_uri?error=invalid_scope.

required 마킹 (β1-6)

제휴사는 특정 scope를 필수로 표시할 수 있습니다. Consent 화면에 "필수" 배지가 붙고, 거부 시 "이 정보 없이는 서비스 이용 불가" 메시지가 표시됩니다.

ruby
# Rails console 예시
app.oauth_application_scopes.create!(
  oauth_scope: profile_scope, required: false
)
app.oauth_application_scopes.create!(
  oauth_scope: email_scope, required: true  # 필수
)

사용자가 필수 scope를 거부하면 access_denied + 정책 안내 페이지가 표시됩니다.

재인가 UX

사용자가 제휴사 A에 profile email 동의한 이후:

요청 scope동작
profile email (동일)UI 스킵 · 즉시 code 발급
profile (축소)UI 스킵 · 즉시 code 발급
profile email phone (확장)"NEW" 배지 + 추가 동의 요구
Consent revoke 후Consent 화면 다시 노출

이는 Google 로그인과 같은 UX입니다.

요청 방법

GET /oauth/authorize?...&scope=profile+email+openid&...
                              ^^^^^^^ ^^^^^ ^^^^^^
                              공백(+)으로 구분, URL encoding 시 %20 또는 +

응답 scope 필드는 실제 부여된 scope를 echo (요청 ≠ 응답 가능 — 사용자가 일부만 동의한 경우).

MIT License · Identity가 제품의 신뢰를 만듭니다.