IdentityServer для приложений, которые имеют многоуровневую базу данных - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть 2 программы с разной бизнес-логикой, разные базы данных, оба являются мультитенантными, каждый пользователь имеет свойство TenantId для идентификации данных своей организации

dbo.Xpto.Where(x => x.TenantId == userLogged.TenantId);

Я хочу унифицировать логин иреализовать identityserver, у меня есть сомнения, как я поймаю пользователя tenantId, если у него разные tenantId в каждом программном обеспечении?

Я думал о добавлении претензий, например, новых Claim ("SoftwareOne:TenantId", 123) и new Claim ("SoftwareTwo:TenantId", "8f8b8d87-fc07-4508-a33a-2b5f55820836") и запрос Scope

1 Ответ

0 голосов
/ 28 ноября 2018

Вам нужно будет увидеть аутентификацию , отделенную от авторизацию .

Использование IdentityServer для аутентификации и вообще авторизации (и тем самымЯ имею в виду без контекста конкретных претензий) пользователя.Хотя фактическая авторизация выполняется локально или с помощью отдельного сервера авторизации.

Моя настройка будет выглядеть следующим образом:

  • Контекст идентификации : пользователи + пользовательские требования.Только для аутентификации. Независимый от контекста , например, как внештатный консультант, я играю определенную роль в разных организациях, в то время как моя профессия остается неизменной.

    Таким образом, требование профессия будет UserClaimв то время как Роль будет утверждением об авторизации.

  • Контекст авторизации : пользователи (id = подпретензия) + для каждого приложения: роли, разрешенияи т. д. В отдельных «локальных» базах данных или в центральной базе данных. Контекстно-зависимый , только для авторизации.Взгляните на PolicyServer .

    Вместо сервера авторизации или в сочетании с ним вы можете реализовать авторизацию на основе ресурсов .

  • бизнес-контекст : пользователи (Id, имя, подпретензия «внешний ключ», без фактической связи с базой данных, так как таблица находится вне контекста) + команды, профиль, настройки и т. Д. Связаны с подпунктомзначение претензии, когда таблица пользователей опущена.

См. мой ответ здесь для получения дополнительной информации.

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