ORCRAFT

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.