Identityserver и asp.net удостоверение в многопользовательском спа-приложении и авторизации - PullRequest
0 голосов
/ 16 января 2019

У меня есть спа-приложение с .net core 2 api.Я хотел бы использовать identityserver 4, чтобы в будущем я также мог предоставить решение sso и разрешить доступ к другим моим api / приложениям.У меня есть база данных, которая содержит всю информацию о пользователях (вместе с информацией об арендаторах) для всех арендаторов, с которыми будет связываться identityserver4.У каждого арендатора есть своя собственная база данных для приложения spa.

Если маркер доступа API, который я получаю от identityserver, содержит информацию о ролях в утверждениях и, если да, где устанавливаются роли (в той же базе данных, что и пользователи илив конкретных базах данных арендатора? Я не уверен, как узнать, что эти роли для какого api. Например, если я запрашиваю область api1, могу ли я получить список ролей для этого пользователя, которые предназначены только для этой области, и если язапросить область действия api2, получить другой список ролей для этого пользователя и т. д.

Документация по identityserver и документация по microsoft кажется мне противоречащим подходу к этому.

1 Ответ

0 голосов
/ 16 января 2019

Обычно проверка подлинности на основе ролей постепенно прекращается, когда oidc / oauth2 находится на месте из-за точного конфликта, который вы описываете. Если не все ваши веб-приложения / API будут уважать центральные роли, которые вы бы определили в своей идентичности asp.net - тогда будет мало или нет никакой выгоды, включая их в токен доступа.

Если вы планируете иметь централизованную систему ролей, которую ваши другие приложения будут уважать и на которой будет основываться их авторизация - тогда я бы рекомендовал установить удостоверение asp.net с Identity Server 4 в одной базе данных, создав Identity Resource для «ролей». "и включение пользовательских ролей в качестве утверждения в токен, когда клиент запрашивает область" роли ".

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