forked from baron/baron-sso
작업 문서 추가
This commit is contained in:
135
docs/descope_inbound_apps.md
Normal file
135
docs/descope_inbound_apps.md
Normal file
@@ -0,0 +1,135 @@
|
||||
**Descope Inbound App은 “OIDC 클라이언트 + 사용자 동의(Consent) + 토큰/세션 정책”을 한 화면에 묶어 제공하는 콘솔**입니다.
|
||||
|
||||
---
|
||||
|
||||
## 1️⃣ Inbound App 기본 정보 (OIDC Client 메타데이터)
|
||||
|
||||
**역할: OAuth/OIDC Client 정의**
|
||||
|
||||
- **Inbound App Name / ID**
|
||||
- OIDC `client_id`에 대응
|
||||
|
||||
- **Description**
|
||||
- **Status (Verified / Unverified)**
|
||||
- 사용자에게 신뢰된 앱인지 표시용
|
||||
|
||||
👉 Hydra 기준으로 보면 `hydra clients create`의 **client 메타 정보 영역**
|
||||
|
||||
---
|
||||
|
||||
## 2️⃣ Scopes 관리 (권한 정의)
|
||||
|
||||
**역할: “이 앱이 무엇을 요구할 수 있는가” 정의**
|
||||
|
||||
### Permission Scopes
|
||||
|
||||
- `full_access`
|
||||
- `profile`
|
||||
- `email`
|
||||
- 각 scope별:
|
||||
- 설명
|
||||
- Role 연계 여부
|
||||
- Mandatory 여부
|
||||
|
||||
### User Information Scopes
|
||||
|
||||
- 사용자 claims에 포함될 정보 정의
|
||||
- “토큰에 항상 authorization 정보 포함” 옵션
|
||||
|
||||
👉 OIDC의 `scope` + `claims` 설계를 **UI로 추상화**
|
||||
|
||||
---
|
||||
|
||||
## 3️⃣ Consents (사용자 동의) 탭
|
||||
|
||||
**역할: Descope 인바운드 앱의 핵심**
|
||||
|
||||
- 사용자가 로그인 중 보게 되는 화면
|
||||
- “이 앱이 아래 권한을 요청합니다”
|
||||
- Scope별 동의/거부
|
||||
- Mandatory scope는 자동 포함
|
||||
|
||||
👉 이게 **Hydra의 `consent_challenge`를 처리하는 UI**에 해당
|
||||
👉 김용연님이 **5174에 구현하라고 들은 바로 그 기능**
|
||||
|
||||
---
|
||||
|
||||
## 4️⃣ Connection Information (OIDC Endpoint 묶음)
|
||||
|
||||
**역할: 외부 앱이 실제로 연동할 정보**
|
||||
|
||||
- **Flow Hosting URL**
|
||||
- Descope가 제공하는 로그인 + consent orchestration URL
|
||||
|
||||
- **Approved Redirect URIs**
|
||||
- OAuth redirect whitelist
|
||||
|
||||
- **Client ID / Client Secret**
|
||||
- **Discovery URL**
|
||||
- `/.well-known/openid-configuration`
|
||||
|
||||
- **Issuer**
|
||||
- **Authorization URL**
|
||||
- **Token URL**
|
||||
- **Audience Whitelist**
|
||||
- **Default Audience 설정**
|
||||
|
||||
👉 이 영역은 **OIDC 표준 설정을 전부 노출**
|
||||
👉 Hydra로 치면:
|
||||
|
||||
- discovery
|
||||
- issuer
|
||||
- `/oauth2/auth`
|
||||
- `/oauth2/token`
|
||||
|
||||
---
|
||||
|
||||
## 5️⃣ Session Management (토큰/세션 정책)
|
||||
|
||||
**역할: 보안 정책 제어**
|
||||
|
||||
### Token Format
|
||||
|
||||
- User JWT 템플릿
|
||||
- Access Key JWT 템플릿
|
||||
|
||||
### Token Expiration
|
||||
|
||||
- Refresh Token Timeout (예: 520주)
|
||||
- Session Token Timeout (분 단위)
|
||||
- Access Token Timeout
|
||||
|
||||
👉 Hydra + Kratos 설정을 **앱 단위로 override**하는 개념
|
||||
|
||||
---
|
||||
|
||||
## 6️⃣ Descope Inbound App이 “한 번에 제공하는 것” 요약
|
||||
|
||||
한 문장으로 정리하면:
|
||||
|
||||
> **Descope Inbound App =
|
||||
> OIDC Client 관리 + Scope 정의 + Consent UI + Token/Session 정책 + Login Flow Hosting**
|
||||
|
||||
---
|
||||
|
||||
## 7️⃣ 김용연님 Baron SSO(5174)와의 1:1 대응표
|
||||
|
||||
| Descope Inbound App | Baron SSO(5174) |
|
||||
| ---------------------- | ------------------------------- |
|
||||
| Inbound App Details | Client 관리 화면 |
|
||||
| Scopes | Client Scope 설정 |
|
||||
| **Consents** | **/consent 페이지 (구현 대상)** |
|
||||
| Connection Information | Hydra Client 설정 |
|
||||
| Session Management | 토큰 정책 설정 |
|
||||
|
||||
👉 그래서 결론적으로,
|
||||
|
||||
- **지금 5174 `/clients` 화면은 Descope의 “Settings 탭 일부”**
|
||||
- **Consents 탭이 빠져 있어서 아직 Descope의 절반만 구현된 상태**
|
||||
|
||||
---
|
||||
|
||||
## 최종 정리 한 줄
|
||||
|
||||
> **Descope Inbound App은 “OIDC Client + 사용자 동의 + 보안 정책”을 묶은 올인원 인바운드 애플리케이션 콘솔이고,
|
||||
> 5174는 그걸 Hydra 기반으로 우리가 직접 재구현하는 중이다.**
|
||||
Reference in New Issue
Block a user