web-dev-qa-db-fra.com

Étendue de Spring Oauth2 vs autorités (rôles)

J'utilise Spring Security OAuth2 et j'implémente actuellement les types d'autorisation de client et de mot de passe. J'ai remarqué qu'un client avait à la fois une portée et des pouvoirs. Quelqu'un peut-il expliquer quelle est la différence? Pour être plus précis, j'utilise le JDBCTokenStore et le schéma de base de données a une table oauth_client_details.

Aussi,

Dans la table oauth_client_details, je ne sais pas à quoi servent les champs suivants:

web_server_redirect_url, access_token_validity, refresh_token_validity

Des éclaircissements seraient très utiles et appréciés.

23
Michael LoCicero

J'ai remarqué qu'un client a à la fois une portée et des pouvoirs

Le client n'a qu'une portée, mais nous pouvons le considérer/l'utiliser comme une autorité (rôles). En effet, la spécification OAuth2 n'explique pas l'utilisation spécifique de la portée.

Considérez ceci, un utilisateur autorise Twitter à publier le Tweet d'un utilisateur sur Facebook. Dans ce cas, Twitter aura une portée write_facebook_status. Bien que l'utilisateur soit autorisé à modifier son propre profil, cela ne signifie pas que Twitter peut également modifier le profil de l'utilisateur. En d'autres termes, la portée sont les autorisations/rôles du client et non les autorisations/les rôles de l'utilisateur.

web_server_redirect_url

Celui-ci sera utilisé par le serveur d'autorisation pour rediriger la demande vers son URL d'origine ou rappel (octroi d'autorisation) après une autorisation réussie.

access_token_validity

Il s'agit du délai d'expiration token_access en secondes. Réglez sur -1 ou 0 pour l'infini. Si vous le définissez sur 60, après 1 minute, votre token_access sera invalide. Vous devez soit demander un nouveau jeton en effectuant le processus d'autorisation, soit utiliser refresh_token.

refresh_token_validity

Il s'agit du délai d'expiration refresh_token.

18
MangEngkus