Я хочу реализовать более надежную службу аутентификации, и jwt
это большая часть того, что я хочу сделать, и я понимаю, как писать код, но у меня возникли небольшие проблемы с пониманием различий между зарезервированными iss
и aud
утверждениями. Я понимаю, что один определяет сервер, который выдает токен, а другой относится к приложению, которое предназначено для использования. Но, насколько я понимаю, это то, что моя аудитория и издатель - это одно и то же, я myserver.com
выдаю токен, чтобы люди, которые приходят, myserver.com
могли быть авторизованы и аутентифицированы. Я полагаю, что не вижу различий между двумя утверждениями, хотя знаю, что есть одно.
Была хорошая статья, написанная наmsdn
на все зарезервированные претензии, и именно здесь я запутался больше всего, потому что их издатель и аудитория были совершенно разными.
источник
Ответы:
Они предназначены для сценариев, в которых у вас есть полномочия на выдачу токена, которые не совпадают с приложением, которое является предполагаемым получателем.
Это может не отличаться для вашего приложения.
Но рассмотрим масштабное приложение. Возможно, у вас есть сервер OAuth или SSO, который выдает сертификаты, и приложение, которому нужен токен, который показывает, что сервер SSO проверил учетные данные пользователя и разрешил пользователю использовать приложение. В этом случае у вас может быть токен с
"aud": "aud.example.com"
и"iss": "sso.example.com"
.источник
jwt
или оставили бы их, поскольку они будут идентичны?aud
иногда третья сторона или нет?aud
может быть одним значением или массивом. Он должен соответствовать каждому предполагаемому получателю или обработчику. Допустим, вы пользователь (или приложение), который хочет вызвать api.example.com для выполнения запроса. Если api.example.com доверяет какой-либо сторонней службе проверки подлинности (например, Auth0) для обработки проверки подлинности, то эта служба проверки подлинности должна заполнитьсяaud
«api.example.com», а приложение на «api.example.com» должно проверить, что это дело. Области являются более детализированными, чем аудитория, и также могут быть включены в полезную нагрузку.