URL de base
XID est un fournisseur d’identité. Le domaine de l’instance est l’émetteur OIDC, l’URL de base API, l’URL de base de l’authentification hébergée et l’URL de base de la console. Les organisations fournissent la politique, la marque, les appartenances et l’isolation des ressources.
Commencez par lire /.well-known/openid-configuration depuis le domaine de l’instance. Le document de découverte donne à votre application les points de terminaison d’autorisation, de jeton, d’informations utilisateur, de déconnexion et JWKS pour cet émetteur.
| Interface | Chemin | Usage |
|---|---|---|
| Découverte OIDC | /.well-known/openid-configuration |
Lire les métadonnées de l’émetteur avant de configurer une relying party. |
| Autorisation | /authorize |
Rediriger les utilisateurs vers le flux unifié d’authentification hébergée. |
| Jeton | /token |
Échanger un code d’autorisation ou un jeton d’actualisation. |
| Userinfo | /userinfo |
Lire les revendications d’un jeton d’accès valide. |
| API de gestion | /v1/* |
Gérez les ressources de l’organisation depuis votre serveur. |
Intégration minimale
- Créez une application OIDC et enregistrez les valeurs exactes des URI de redirection.
- Utilisez le flux de code d’autorisation avec PKCE S256 pour les clients navigateur et natifs.
- Validez les jetons d’ID et les jetons d’accès avec l’émetteur et l’URI JWKS.
- Stocker les jetons d’actualisation côté serveur ou dans un magasin d’identifiants natif sécurisé.
Demande d’autorisation
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')