2

Мы хотели бы создать приложение на основе разрешений. Где администратор может настроить такие вещи, как то, что пользователь может или не делает.Базовый подход в базе данных ASP.NET Core

Скажем, в организации-A, администратор может установить User1 только CreateTools, EditTools и ViewTools. User2 может делать только CreateTools и ViewTools.

В то время как в организациях-B, админы здесь устанавливают John в CreateTools, ViewSales (по какой-то причине, админы здесь не позволяют John к ViewTools)

Как вы заметили, это не роли для пользователя, но разрешения для каждого пользователя.

Кроме того, ссылки (привязывающие метки) на странице будут отображаться на основании их разрешений. Скажем, User1 входит в, он может видеть только ссылки на CreateTools, EditTools и ViewTools

Мы считаем, что для нас, по крайней мере, счастливого пути (или это будет больно? Прокомментируйте это). Поскольку мы хотели бы расширить это в каждой организации, которая хотела бы использовать наше приложение и просто помогать им устанавливать разрешения по своему вкусу.

, как мы намерены построить это через веб-Апи (ASP.NET ядро), который будет потреблять на клиенте (браузер. СП приложение)

То, что я пытался до этого, используя ASPNET MVC 5, и иметь под собой эстафету с личностью и создавать приложение оттуда. Но то, что было ролевой базой.

Я читал о подходе к претензиям и видел это blog (очень полезно), но для меня не очевидно, как реализовать это с использованием базы данных и идентификации. Также читайте о том, как работает JWT.

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

Любые учебники, ссылки, блоги. Комментарии или предложения будут очень полезными. Или термины, которые мы должны исследовать.

+0

https://docs.asp.net/ru/latest/security/authorization/index.html –

ответ

3

Лично я бы посмотрел проект с открытым исходным кодом IdentityServer, в настоящее время выпущена версия 3, но версия 4, размещенная в Asp.Net Core, недавно достигла статуса кандидата кандидата.

Обзор архитектура

Проект IdentityServer обеспечит вас с Security Token Service (STS), которые затем могут быть использованы для обеспечения маркеров защиты, основанной на ресурсы, такие как MVC страница, Web API вызовы, мобильные приложения и т.д. ,

Clients, Scopes и Claims определить приложения, которые могут использовать УСН для проверки подлинности маркеров на основе, тип информации, которую они могут запросить и фактические претензии (например, имена пользователей, адреса электронной почты и т.д.); эти претензии хранятся в Identity Provider с базой данных базы данных, которая отделена от самой STS.

STS поручено обеспечить реализацию двух стандартов: OpenID Connect и OAuth2.

Overview presented at http://docs.identityserver.io/en/dev/intro/terminology.html

СТС будет запрашивать Identity Provider для того, чтобы аутентифицировать пользователя, и построить маркер, который может содержать требования, связанные с этим пользователем. Эти токены декодируются промежуточным программным обеспечением, сконфигурированным в каждом Client, и извлеченные претензии могут быть использованы для авторизации доступа, необязательно в сочетании с ASP.Net Core Policies, и вместе этот подход предоставит вам всеобъемлющую архитектуру безопасности на токенах и претензиях.

Справочные материалы, образцы и пошаговые

я настоятельно рекомендую вам начать с изучения документации и образцов, для IdentityServer3, и, возможно, более конкретно IdentityServer4 .Эти объяснить терминологию и содержат комплексные образцы и пошаговые руководства для реализации.

Доминик Байера, соавтор IdentityServer, обеспечивает обзор OpenID Connect и OAuth2here.

Как только вы поймете, как работает аутентификация на токенах, вы должны перейти к рассмотрению, как настроить Identity Provider, который поддерживает ваш сценарий.

Существует несколько проектов Identity Provider, доступных для подключения к IdentityServer3, включая идентификатор ASP.Net. Брок Аллен (также соучредитель IdentityServer) создал проекты перезагрузки членства и переименования удостоверений для хранения претензий и т. Д. И Identity Manager, который предоставляет портал администрирования для управления пользователями. Объяснение каждого можно найти по следующим ссылкам:

Identity Reboot by Brock Allen

Introducing Identity Manager by Brock Allen

Identity Manager walkthrough by Scott Brady

IdentityServer4 в настоящее время поддерживает ASP.Net Core, идентичность, которая может, при необходимости, быть настроена для поддержки мульти аренды.

Исчерпывающий набор IdentityServer4 Quickstarts можно найти here, в том числе и в частности использование ASP.Net Core Identity и Entity Framework для хранения данных в SQL Serverhere.

Полный исходный код для каждого из Quickstarts доступен на GitHub here.

авторизация Политика

Что касается разрешения, то я рекомендую AspNetAuthorizationWorkshop на GitHub для объяснения различных аспектов на основе аутентификации и авторизации претензий, в частности, в том числе использования политик авторизации ядра нового ASP.Net, который может указать штраф на основе претензий, путем изучения любой комбинации набора индивидуальных требований пользователей, чтобы увидеть, соответствуют ли они критериям безопасности, и, необязательно, традиционные роли, которые также могут применяться для уменьшения административных издержек администрирования.

Заключение

Таким образом, вы можете следовать выше рекомендации для создания:

  1. Репозитория базы данных пользователей Претензий, на основе ASP.Net ядра Identity.

  2. Служба токена безопасности для аутентификации пользователя и предоставление токена, содержащего Претензии, с использованием IdentityServer.

  3. Набор политик авторизации, которые оценивают правила в отношении пользователей Претензии (и, кроме того, Роли, если вы выбираете гибридный подход).

Безопасность - это сложная область, которая вначале может показаться довольно сложной. Тем не менее, как Доминик Байер, так и Брок Аллен признаны отраслевыми экспертами, которые обеспечивают хорошую серию представлений и образцов кода, а их проект, IdentityServer, рекомендуется Microsoft для проверки подлинности на основе утверждений.

+0

Возможно, спутник-спутник поделился бы своими причинами для этого. Благодарю. – dmcquiggin

+0

Честно говоря, я впервые услышал об IdentityServer. То, как вы отвечаете, и ваши знания заставляют нас думать, что это правильный путь. Будут углубляться в эту глубину. Спасибо огромное! –

+0

Имейте в виду, что я сделал свое предпочтительное предложение; есть, конечно, другие решения, такие как Microsoft AD B2C (Active Directory Business to Consumer), который пока недоступен в глобальной доступности, но может использоваться в Северной Америке. Это скорее решение «точка и щелчок», которое может или не может не соответствовать вашим потребностям с точки зрения детализации. Кроме того, Auth0 и другие коммерческие поставщики предлагают размещенный сервис. От оценки каждого и от опыта работы с открытым исходным кодом IdentityServer и его сильное сообщество дает гибкость; хостинг легко в Azure App Service. – dmcquiggin

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