1

Я использую IdentityServer3 в качестве сервера авторизации в своей архитектуре.Претензии к JWT против преобразования требований в ресурсе

У меня есть ресурс API, который я предоставляю своим клиентам (веб-приложение и приложение для iOS) доступ через область ресурсов.

Вопрос 1: Если я хочу сделать на основе утверждений авторизации на моем API (например, требование называется CanViewQuestions, что только некоторые пользователи), должны я:

а) Использование IdentityServer, например, во время если у пользователя есть это требование и добавить его в JWT

b) Просто поместите объект (например, userId) в JWT и посмотрите, что в API и выполните преобразование претензий?

В настоящее время я делаю b), но задаюсь вопросом, должно ли это быть выполнено сервером авторизации (например, IdSrv)?

Какой рекомендуемый подход?

Вопрос 2

Если у меня есть фоновая служба (Azure работник специально), что я хочу также предоставить доступ к своему API ресурсу, я могу использовать учетные данные клиента потока, чтобы дать этой услуге маркер доступа. Но тогда как я могу дать эту услугу ту же претензию выше (CanViewQuestions)? В основном я хочу, чтобы мой API обеспечивал, чтобы данный ресурс требовал претензии CanViewQuestions, но мне все равно, является ли клиент веб-приложением (например, конечным пользователем) или клиентом (без конечного пользователя). Если у запрашивающего есть требование, хорошо идти.

я буду иметь, чтобы:

а) использование на основе утверждений преобразования, чтобы увидеть, если клиент службы, а затем просто добавить все претензии?

б) Вставить претензии в JWT (хотя я читал учетные данные клиента поток не поддерживает требования)

с) Что-то еще?

Большое спасибо!

ответ

1

В обоих случаях я бы рекомендовал добавить требования API к API в API, а не в токен.

Данные, относящиеся к авторизации, всегда должны быть добавлены как можно ближе к ресурсу, который вы пытаетесь защитить.

Смежные вопросы