Différence entre 'aud' et 'iss' en jwt


13

Je veux implémenter un service d'authentification plus robuste et jwtc'est une grande partie de ce que je veux faire, et je comprends comment écrire le code, mais j'ai un peu de mal à comprendre la différence entre le réservé isset les audrevendications. Je comprends que l'un définit le serveur qui émet le jeton et que l'autre fait référence à l'application qui est destinée à être utilisée. Mais la façon dont je comprends cela, c'est que mon public et l'émetteur sont la même chose, myserver.comc'est émettre le jeton afin que les personnes qui viennent myserver.compeuvent être autorisées et authentifiées. Je suppose que je ne vois pas la différence entre les deux revendications, même si je sais qu'il y en a une.
Il y avait un bon article écrit àmsdn sur toutes les revendications réservées et c'est là que je me suis le plus trompé car leur émetteur et leur public étaient complètement différents.


Vous pourriez être intéressé JWT RFC-7519
Laiv

Réponses:


10

Celles-ci sont destinées aux scénarios dans lesquels vous disposez d'une autorité d'émission de jetons qui n'est pas la même que l'application qui est le destinataire prévu.

Cela peut ne pas être différent pour votre application.

Mais considérez une application à grande échelle. Vous pouvez avoir un serveur OAuth ou SSO qui émet les certificats et une application qui veut un jeton qui montre que le serveur SSO a vérifié les informations d'identification de l'utilisateur et a approuvé l'utilisateur pour utiliser l'application. Dans ce cas, vous pourriez avoir un jeton avec "aud": "aud.example.com"et "iss": "sso.example.com".


Oh je vois. C'était un malentendu de ma part parce que je pensais à deux choses: 1. Vous deviez avoir à la fois «iss» et «aud» dans les réclamations. 2. Ils devaient être uniques les uns aux autres. Ce n'est évidemment pas la vérité. Donc, si vous avez une application comme la mienne, incluriez-vous même ces deux revendications dans votre jwtou les laisseriez-vous de côté car elles seraient identiques?
Adam McGurk

Vous pouvez certainement les laisser de côté et les ajouter plus tard lorsque vous avez une raison de l'utiliser
Paul

serait audparfois un tiers ou non?
Andy

Je suppose que je ne comprends pas non plus pourquoi les étendues ne seraient pas utilisées pour indiquer que l'utilisateur est approuvé pour une application donnée.
Andy

Oui, audpeut être une valeur unique ou un tableau. Il est censé correspondre à chaque destinataire ou processeur prévu. Supposons que vous soyez un utilisateur (ou une application) qui souhaite appeler api.example.com pour exécuter une requête. Si api.example.com fait confiance à un service d'authentification tiers (par exemple, Auth0) pour gérer l'authentification, alors ce service d'authentification doit être audrempli avec «api.example.com», et l'application «api.example.com» doit vérifier que c'est bien le Cas. Les étendues sont plus granulaires que l'audience et peuvent également être incluses dans la charge utile.
Paul
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.