기본 URL
XID는 ID 공급자입니다. 인스턴스 도메인은 OIDC 발급자, API 기본 URL, Hosted Auth 기본 URL, 콘솔 기본 URL입니다. 조직은 정책, 브랜딩, 멤버십, 리소스 격리를 제공합니다.
먼저 인스턴스 도메인의 /.well-known/openid-configuration을 읽습니다. 디스커버리 문서는 해당 발급자의 인가, 토큰, 사용자 정보, 로그아웃, JWKS 엔드포인트를 애플리케이션에 제공합니다.
| 접점 | 경로 | 사용 |
|---|---|---|
| OIDC 디스커버리 | /.well-known/openid-configuration |
RP를 설정하기 전에 발급자 메타데이터를 읽습니다. |
| 인가 | /authorize |
사용자를 통합 Hosted Auth 흐름으로 리디렉션합니다. |
| 토큰 | /token |
인가 코드 또는 갱신 토큰을 교환합니다. |
| 사용자 정보 | /userinfo |
유효한 액세스 토큰의 클레임을 읽습니다. |
| 관리 API | /v1/* |
백엔드에서 조직 리소스를 관리합니다. |
최소 연동
- OIDC 애플리케이션을 만들고 정확한 리디렉션 URI 값을 등록합니다.
- 브라우저 및 네이티브 클라이언트에는 PKCE S256을 사용하는 인가 코드 흐름을 사용하세요.
- ID 토큰과 액세스 토큰을 발급자 및 JWKS URI에 대해 검증합니다.
- 갱신 토큰은 서버 측 또는 안전한 네이티브 자격 증명 저장소에 저장하세요.
인가 요청
sequenceDiagram participant Browser participant RP participant XID RP->>Browser: /authorize + PKCE S256 Browser->>XID: /authorize + PKCE S256 XID->>Browser: /sign-in Browser->>XID: WebAuthn / SSO XID->>Browser: code Browser->>RP: code RP->>XID: /token + PKCE S256 XID->>RP: ID token + access token
const authorizeUrl = new URL('https://xid.dev/authorize')
authorizeUrl.searchParams.set('client_id', clientId)
authorizeUrl.searchParams.set('redirect_uri', redirectUri)
authorizeUrl.searchParams.set('response_type', 'code')
authorizeUrl.searchParams.set('scope', 'openid profile email')
authorizeUrl.searchParams.set('code_challenge', codeChallenge)
authorizeUrl.searchParams.set('code_challenge_method', 'S256')