Intégration
Application web
Les apps serveur échangent le code côté backend et conservent le secret hors du navigateur.
1. Rediriger vers Orcraft
Générez un state aléatoire, un nonce et un code_verifier cryptographique. Envoyez SHA-256 du verifier sous forme base64url.
GET /.well-known/openid-configuration GET /identity/authorize? response_type=code& client_id=CLIENT_ID& redirect_uri=https%3A%2F%2Fapp.example%2Fauth%2Forcraft& scope=openid%20profile%20email& state=STATE_ALEATOIRE&nonce=NONCE_ALEATOIRE& code_challenge=BASE64URL_SHA256_VERIFIER& code_challenge_method=S256
La valeur de redirect_uri doit correspondre exactement à l’une des URI enregistrées.
2. Échanger le code
POST /identity/token avec grant_type=authorization_code, le code, la redirect_uri et le verifier. Pour un client confidentiel, authentifiez le client en HTTP Basic ; le secret ne va jamais dans l’URL. Les clients natifs n’envoient aucun secret.
POST /identity/token Content-Type: application/x-www-form-urlencoded Authorization: Basic base64(client_id:client_secret) grant_type=authorization_code code=CODE_RECU redirect_uri=https://app.example/auth/orcraft code_verifier=VERIFIER_ORIGINAL
La réponse comprend un access token Bearer de 15 minutes et un ID token RS256. Les refresh tokens ne sont pas activés.
3. Valider l’identité
Validez localement la signature RS256 depuis jwks_uri, puis contrôlez iss, aud, exp et le nonce. Pour des données à jour, appelez /identity/userinfo avec Authorization Bearer. Utilisez sub (identifiant orc…) comme clé stable du compte.