---
title: "Primeros pasos"
description: "Conecta una aplicación a XID con OIDC Discovery y Hosted Auth."
locale: "es"
---

> Documentation Index
> Fetch the locale documentation index at: https://xid.dev/es/llms.txt
> Use this file to discover all available pages before exploring further.

# Primeros pasos

## 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

```mermaid
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
```

```js
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')
```

Source: https://xid.dev/es/getting-started/index.mdx
