2016-09-09 5 views
0

У меня есть сценарий, когда мой сервер ресурсов (RS) может подключаться к нескольким базам данных, и он может быть многопользователем. Он имеет конфигурацию среды, где я могу сказать: Env A указывает на базу данных A и принадлежит арендатору A; Env B указывает на базу B и принадлежит арендатору B;Каким образом можно добавить определенную информацию для сервера ресурсов в токен доступа OAuth2?

Наши настольные приложения хранят эту информацию в структуре данных, которая отправляется в RS при каждом вызове, и наши веб-приложения хранят ее в сеансе ASP.NET. Пользователь выбирает среду при входе в систему.

Теперь мы полностью переносим наши API-интерфейсы в службы REST и защищаем их с помощью oAuth2 с помощью IdentityServer4.

Мне нужно отправить эту среду в API, и я думаю, что это должно быть частью токена доступа.

Первый вопрос: это правильно? Может ли токен доступа иметь такую ​​информацию?

Во-вторых, это лучший сервис IdentityServer4, который я должен расширить, чтобы вставить это значение в качестве претензии в токен доступа и, следовательно, внутри ClaimsPrincipal.

Третий: Иногда у меня нет пользователя, чтобы выбрать среду при входе в систему (например, учетные данные для учетных данных клиента). В этом случае, является ли правильная среда лечения в качестве требования клиента? Есть ли способ получить заявления о динамических клиентах?

Извините за длинный вопрос!

С уважением, Diogo

ответ

1

Если это требование о пользователях (или клиентах) идентичность - да - это кандидат на маркер.

Добавить претензию к областям ресурсов, которые представляют ваш API - таким образом, тип запроса будет запрашиваться в службе профиля, и вы можете добавить его в токен.

Клиентские претензии не являются динамическими.

+0

Ну, это требование является выбором пользователя при входе в систему. Таким образом, в моем сервисе профиля я могу получить это значение заявки из сеанса, например, и добавить его в токен. Для учетных данных клиента, возможно, единственный способ создать несколько клиентов, каждый из которых имеет конкретную заявку на среду. Таким образом, DefaultClaimsService уже добавит его в токен. Что вы думаете об этом подходе? –

+0

Звучит нормально для меня – leastprivilege