Saltar al contenido

Primeros pasos

Conecta una aplicación a XID con OIDC Discovery y Hosted Auth.

Ver como Markdown

URL base

XID es un proveedor de identidad. El dominio de la instancia es el emisor OIDC, la URL base de API, la URL base de Hosted Auth y la URL base de la consola. Las organizaciones aportan política, marca, membresía y aislamiento de recursos.

Empieza leyendo /.well-known/openid-configuration desde el dominio de la instancia. El documento de descubrimiento entrega a tu app los puntos de conexión authorization, token, userinfo, logout y JWKS para ese emisor.

Superficie Ruta Uso previsto
Descubrimiento OIDC /.well-known/openid-configuration Leer los metadatos del emisor antes de configurar una parte de confianza.
Autorización /authorize Redirigir usuarios al flujo unificado de Hosted Auth.
Token /token Intercambiar un código de autorización o token de actualización.
Userinfo /userinfo Leer declaraciones de un token de acceso válido.
API de administración /v1/* Gestiona recursos de organización desde tu servidor.

Integración mínima

  • Crea una aplicación OIDC y registra valores exactos de URI de redirección.
  • Usa el flujo de código de autorización con PKCE S256 para clientes de navegador y nativos.
  • Validar tokens de ID y tokens de acceso contra el emisor y la URI JWKS.
  • Almacena tokens de actualización en el servidor o en un almacén nativo seguro de credenciales.

Solicitud de autorización

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')
Navegación

Escribe para buscar...

Usa las flechas para navegarPulsa Intro para seleccionarPulsa Escape para cerrar