Передача внутренних разрешений клиентам в asp do tnet core 3 - PullRequest
1 голос
/ 24 февраля 2020

У меня есть do tnet asp core 3 backend, который определяет роли и разрешения для моего WebAPI. Теперь мне нужно на внешней стороне (javascript) получить эти разрешения для отображения правильного пользовательского интерфейса, et c.

Как вы обычно выполняете sh эту задачу? У меня есть 2 варианта, но я не знаю, какой из них лучше подходит или более пригоден для обслуживания:

1) Зеркально отразите ACL (контрольный список Acess) (кажется, худший, связанный с обслуживанием). Под зеркалированием я подразумеваю наличие копии acl, жестко закодированного во внешнем интерфейсе

2) Отправлять ACL, когда пользователь первоначально входит в систему?

3) Вставьте свой лучший вариант здесь? :)

С другой стороны, есть ли какая-либо библиотека javascript, которая интегрируется с системой идентификации ядра asp dot net и делает это без проблем?

1 Ответ

1 голос
/ 26 февраля 2020

Мне пришлось сделать это для приложения, которое интегрируется с устаревшей схемой аутентификации, поэтому я не использовал никакой встроенной системы аутентификации, такой как. NET Core Identity package. Я упаковал ACL в зашифрованный токен авторизации (у нас есть более 800 двоичных разрешений, которые я фактически сократил до отдельных бит), но я также отправил его в незашифрованном виде как часть ответа при входе в систему.

Таким образом, клиент может просто читать незашифрованные данные для создания пользовательского интерфейса, а бэкэнд может расшифровывать токен при каждом запросе, чтобы решить, следует ли разрешить запрос без чтения из БД для данных разрешения.

На в тот момент, когда я не знаю ни одной схемы, которая облегчает проблему написания кода для пользовательского интерфейса и серверной части для проверки разрешений; один может быть взломан, потому что это просто для целей пользовательского интерфейса, а другой - для аутентификации.

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