Путаница Oauth с генерацией токенов
Приветствия,
Я работаю над разработкой библиотеки для создания токена, который будет использоваться приложением для доступа к ресурсу службы. Вот сценарий, по которому библиотека примет имя пользователя и пароль, а затем она должна создать токен в формате Jason, я пытался использовать Jwt.
Токен Json, с моей точки зрения, будет включать в себя помимо эмитента, истекающего срока действия и аудитории роли пользователя. Пока все идет нормально, однако мой менеджер хочет, чтобы фильтры авторизации были более гибкими. Он не хочет, чтобы я шел и проверял роли внутри принципала в текущем контексте запроса, поведение по умолчанию, так как это не сделает процесс авторизации гибким, поскольку каждый раз, когда я добавляю новую роль, мне нужно идти и изменять службы API, чтобы добавить новую роль в список атрибутов авторизации по мере необходимости.
Например, предположим, что у меня есть роль "роль 1", и я использовал ее для украшения некоторых служб API, если я добавил новую роль "роль 2" и хочу, чтобы Принципал, имеющий эту роль, получил доступ к моим службам, я буду вынужден пойти и добавить/отредактировать атрибуты авторизации, чтобы включить вновь созданную роль и т. д.
Мой менеджер думал о том, что вместо того, чтобы устанавливать роль в токене, было бы лучше, если бы я установил URI службы, например: https://www.example.com/api/get, и механизм авторизации проверяет, соответствует ли URI любого токена запрошенному URI службы, если совпадение найдено, служба извлекается и выполняется, что сделает авторизацию более гибкой, поскольку мне не нужно добавлять/редактировать свой сервис с каждой вновь созданной ролью.
Надеюсь, моя точка зрения ясна. Мой вопрос
Достижим ли такой механизм или нет?
Jwt, который я пробовал до сих пор, содержит только определенный набор информации, например, а типы утверждений ограничены определенным набором, и я не могу добавить к нему новое пользовательское свойство для хранения URI, что легко при создании объекта Json. Как я могу создать свой Json, который можно использовать в качестве допустимого формата токена OAuth?
{ "username": "user_name", "issuer": "issuer_name", "expires": "time_placeholder" "role": [ "role 1", "role 2", "role 3", etc.], "URI": [ "URI 1", "URI 2", "URI 3", etc. ] }
Что я уже пробовал:
Я пытаюсь искать в интернете и некоторых apress книгах