Le monitoring sera complet si l’utilisateur est averti de la fin imminente de la session OIDC et si il lui est proposé de la prolonger.
Lorsque l’on interroge Authorize avec prompt = ’none’, une particularité d’OAuthSD est de retourner dans le corps de la réponse le temps restant avant la fin de session (variable ’timeleft’, en secondes).
Toujours dans l’exemple du plugin OIDC Client pour SPIP, l’avertissement est implémenté en modifiant le code de l’objet ’200’ pour proposer à l’utilisateur de prolonger la session :
jQuery
200 : function ( data, textStatus, jqXHR){
// Signaler la connexion
$('#oidc').css('background-color', '#8f8');
$('#oidc').text(' OIDC ');
var timeleft = data['timeleft'];
if ( timeleft < 600 ) { //[dnc28d]
// La fin de session approche
var retVal = confirm( "<?php echo _T('oidcclient:session_expire'); ?>" );
if( retVal == true ) {
// étendre la session
$.ajax({
type : "get",
url : "<?php echo OIDC_AUTHORIZATION_ENDPOINT; ?>",
data : { 'response_type' : 'code',
'client_id' : "<?php echo OIDC_CLIENT_ID; ?>",
'user_id' : login,
'state' : state,
'scope' : 'openid sli',
}
});
}
}
},Les jetons sont rafraîchis en utilisant notre mécanisme de SLI, et non un jeton de rafraîchissement. Voyez ici pourquoi : Rafraîchir (actualiser) un jeton d’accès : § "Bonnes pratiques pour la sécurité".
OpenID Connect OAuth Server dédié
Plus de sécurité et de confidentialité avec un serveur d’authentification indépendant