Integrar una aplicación con Summit Auth
Authorization Code con PKCE es el flujo recomendado para aplicaciones web o móviles con un usuario final.
Requisitos
Sección titulada «Requisitos»- Una aplicación registrada en Summit Auth.
- Su
client_id. - Una
redirect_uriregistrada exactamente como la usará la aplicación. - Una biblioteca OpenID Connect compatible con Authorization Code y PKCE.
Iniciar la autorización
Sección titulada «Iniciar la autorización»Genera un code_verifier, su desafío S256 y un valor state aleatorio. Redirige al usuario hacia:
GET https://auth.summitexplorerjd.ec/connect/authorize ?client_id=YOUR_CLIENT_ID &redirect_uri=https://app.example.com/auth/callback &response_type=code &scope=openid profile email offline_access &code_challenge=<S256_CODE_CHALLENGE> &code_challenge_method=S256 &state=<RANDOM_STATE>Conserva temporalmente code_verifier y state. Al recibir la respuesta, verifica que state coincida con el valor original.
Canjear el código
Sección titulada «Canjear el código»Summit Auth redirige a la redirect_uri con code y state. Intercambia el código mediante una solicitud form-urlencoded:
POST https://auth.summitexplorerjd.ec/connect/tokenContent-Type: application/x-www-form-urlencoded
grant_type=authorization_code&client_id=YOUR_CLIENT_ID&code=<AUTHORIZATION_CODE>&redirect_uri=https://app.example.com/auth/callback&code_verifier=<ORIGINAL_CODE_VERIFIER>La respuesta contiene los tokens autorizados para el cliente y los scopes solicitados. Valida los tokens mediante una biblioteca OpenID Connect; no implementes manualmente la validación criptográfica.
Obtener permisos
Sección titulada «Obtener permisos»Los permisos no se incluyen en el access token ni en el id token. Solicítalos después del login:
GET https://auth.summitexplorerjd.ec/connect/userinfoAuthorization: Bearer <ACCESS_TOKEN>Puedes almacenar el resultado mientras el access token permanezca vigente. Evita llamar a UserInfo en cada request de tu aplicación.
Consulta Claims y permisos para conocer los datos que puede devolver cada token.