Exemple de jeton daccès auth0
Connexion universelle - jeton d’accès et d’actualisation
walter.adbe1
Bonjour, Récemment,
dans notre projet, nous avons eu une exigence où nous devions mettre en œuvre l’authentification à l’aide de auth0. J’ai procédé à l’utilisation du flux de mot de passe du propriétaire de la ressource et j’ai pu développer une application avec une passerelle pour échanger un jeton d’accès avec un jeton d’actualisation. Tout fonctionnait bien.
Question :
Dans la nouvelle exigence, nous devons mettre en œuvre l’authentification unique afin que l’application tierce puisse utiliser nos informations d’identification. Nous avons réussi à mettre en place la connexion universelle dans notre application. Ma question était de savoir comment utiliser le jeton.
Notre application utilise une passerelle et s’exécute sur un domaine différent de notre front-end.
Le client front-end appelle login (Universal login) et en retour, je reçois deux jetons (1 de auth0.com et un autre est le le nom de domaine de l’application est auth0) et dans l’en-tête d’autorisation, je reçois un jeton Bearer.
Voici la partie où je commence à m’embrouiller. Dans la doc, il est mentionné que nous devons utiliser un domaine personnalisé dans Auth0, mais je ne peux pas tester cela dans localhost car le domaine personnalisé a besoin d’un domaine https.
Mais je pense que ce n’est pas la bonne façon de mettre en œuvre le SSO, surtout lorsque j’ai besoin que l’utilisateur utilise une application tierce sans se connecter à nouveau à l’application tierce.
Toute information qui peut m’orienter dans la bonne direction est très appréciée.
rueben.tiow3
Bonjour @walter.adbe,
Ma question était de savoir comment utiliser le jeton.
Avez-vous eu l’occasion de jeter un coup d’œil à la documentation ci-dessous sur l’utilisation des jetons d’actualisation ?
https://auth0.com/docs/secure/tokens/refresh-tokens/use-refresh-tokens
Merci,
Rueben
walter.adbe4
Bonjour Ruben,
j’ai déjà vu ce document pour obtenir un nouveau jeton d’accès à l’aide du jeton d’actualisation existant et je l’ai mis en œuvre à l’aide du flux de mot de passe du propriétaire de la ressource.
Laissez-moi vous expliquer ce que j’ai fait jusqu’à présent.
-
J’ai un frontend en angular, plusieurs passerelles en graphql (chaque passerelle étant un point de terminaison d’application) et des services fonctionnant sur graphql. Les trois parties s’exécutent sur des serveurs différents. Seules les passerelles et le frontend sont directement exposés au monde extérieur.
-
Plusieurs passerelles et frontend s’exécutent sur leur propre domaine.
-
J’ai implémenté la nouvelle connexion universelle dans le front-end Angular.
-
auth0.com et autre est le auth0 domaine d’application par exemple : dev-somename.us.auth0.com), et l’en-tête d’autorisation a le jeton porteur.
-
[J’ai ajouté l’adresse IP de la passerelle à Origines autorisées dans les paramètres de l’application]
-
Exemple :
J’essaie de créer une application similaire à bitbucket (en cours de conception).
Nous pouvons nous connecter à bitbucket et passer à différentes applications comme JIRA, Confluence, etc., même si elles sont dans des domaines différents. Bitbucket utilise également le SSO
Question :
walter.adbe5
Bonjour,
je pense qu’après avoir lu Le guide complet de l’authentification des utilisateurs Angular avec Auth0
1 Like
rueben.tiow6
Bonjour @walter.adbe,
Merci pour vos réponses.
Oui, c’est exact.
N’hésitez pas à nous faire savoir si vous avez d’autres questions.
Merci,
Rueben
walter.adbe7
Salut Ruben,
Lejeton d’accès est maintenant corrigé j’ai un problème de ne pas obtenir un jeton de rafraîchissement.
I étapes que j’ai suivies :
- Création d’une application d’une seule page.
- Ajout de [http://127.0.0.1:9201 domaine frontend] pour les URL de rappel autorisées , les URL de déconnexion autorisées , les origines Web autorisées et les origines autorisées
- Étant donné que mon backend[http://127.0.0.1:2000 ] fonctionne sur un domaine différent, je l’ai ajouté aux origines Web autorisées et aux origines autorisées . Je ne sais pas si c’est nécessaire ou non, mais pour être du bon côté, je l’a ajouté.
- Activez la rotation et définissez l’intervalle de réutilisation sur 1800 secondes - effectué.
Création d’une nouvelle API
- Création d’une nouvelle API
- Définissez l’expiration du jeton à 3600 et l’expiration du jeton pour les lignes du navigateur à 1800. [ J’ai observé que puisque le front-end et le backend utilisent la même audience, le réglage du temps d’expiration du jeton dans l’API le reflète dans le front-end ].
- Activez l’option Autoriser l’accès hors ligne .
Configuration d’Augular
- Lorsque je regarde le backend, je ne reçois aucun jeton de rafraîchissement et j’ai pu le confirmer en actualisant la page, un message d’erreur s’affiche mentionnant le jeton de rafraîchissement non disponible.
Je crois que c’est quelque chose à voir avec la configuration. Merci pour votre aide
rueben.tiow8
Salut @walter.adbe,
Merci pour la réponse.
Avez-vous pris soin d’inclure la portée dans votre demande de connexion ?
Cela devrait ressembler à quelque chose comme suit :
Référence :
Auth0 DocsGet Refresh Tokens
Décrit comment obtenir un Refresh Token lorsque vous lancez une demande à l’aide du point de terminaison Authorize.
Merci,
Rueben
walter.adbe9
Salut Ruben,
je n’utilise pas votreDomaine}/autoriser point de terminaison.
Dans Angular, j’utilise Auth0SDK. auth0/auth0-angular qui, je crois, appelle implicitement votreDomaine}/authorize point de terminaison
suivant l’exemple
ci-dessous https://auth0.com/docs/libraries/auth0-single-page-app-sdk
L’exemple était pour l’appel d’une API, dans mon cas, j’appelle un point de terminaison graphql. Par conséquent, c’est légèrement différent.
Comme vous l’avez mentionné dans votre réponse précédente, j’ai ajouté la portée comme offline_access . J’ai utilisé loginWithRedirect() en angular.
walter.adbe10
Salut Ruben,
Un blog getTokenSilently / useRefreshTokens / getIdTokenClaims - comment l’utiliser correctement ? - #3 par stephanie.chamblee dans la communauté auth0 mentionne que le jeton d’actualisation sera géré par le SDK Auth0 et je ne verrais pas le jeton d’actualisation dans la demande envoyée au backend.
Quoi qu’il en soit, merci pour votre aide. Je vous en suis reconnaissant.
1 J’aime
système Fermé 11
Ce sujet était Clôture automatique 14 jours après la dernière réponse. Les nouvelles réponses ne sont plus autorisées.