From f6c7021fdae3cbaea84147a179c295a5d15f41f5 Mon Sep 17 00:00:00 2001 From: kyy Date: Wed, 28 Jan 2026 16:53:20 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=91=EC=97=85=20=EB=AC=B8=EC=84=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/descope_inbound_apps.md | 135 +++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 docs/descope_inbound_apps.md diff --git a/docs/descope_inbound_apps.md b/docs/descope_inbound_apps.md new file mode 100644 index 00000000..eae700ba --- /dev/null +++ b/docs/descope_inbound_apps.md @@ -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 기반으로 우리가 직접 재구현하는 중이다.**