Лично я бы посмотрел проект с открытым исходным кодом IdentityServer
, в настоящее время выпущена версия 3, но версия 4, размещенная в Asp.Net Core, недавно достигла статуса кандидата кандидата.
Обзор архитектура
Проект IdentityServer
обеспечит вас с Security Token Service
(STS), которые затем могут быть использованы для обеспечения маркеров защиты, основанной на ресурсы, такие как MVC страница, Web API вызовы, мобильные приложения и т.д. ,
Clients
, Scopes
и Claims
определить приложения, которые могут использовать УСН для проверки подлинности маркеров на основе, тип информации, которую они могут запросить и фактические претензии (например, имена пользователей, адреса электронной почты и т.д.); эти претензии хранятся в Identity Provider
с базой данных базы данных, которая отделена от самой STS.
STS поручено обеспечить реализацию двух стандартов: OpenID Connect
и OAuth2
.
СТС будет запрашивать Identity Provider
для того, чтобы аутентифицировать пользователя, и построить маркер, который может содержать требования, связанные с этим пользователем. Эти токены декодируются промежуточным программным обеспечением, сконфигурированным в каждом Client
, и извлеченные претензии могут быть использованы для авторизации доступа, необязательно в сочетании с ASP.Net Core Policies, и вместе этот подход предоставит вам всеобъемлющую архитектуру безопасности на токенах и претензиях.
Справочные материалы, образцы и пошаговые
я настоятельно рекомендую вам начать с изучения документации и образцов, для IdentityServer3, и, возможно, более конкретно IdentityServer4 .Эти объяснить терминологию и содержат комплексные образцы и пошаговые руководства для реализации.
Доминик Байера, соавтор IdentityServer
, обеспечивает обзор OpenID Connect
и OAuth2
here.
Как только вы поймете, как работает аутентификация на токенах, вы должны перейти к рассмотрению, как настроить 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 Server
here.
Полный исходный код для каждого из Quickstarts доступен на GitHub here.
авторизация Политика
Что касается разрешения, то я рекомендую AspNetAuthorizationWorkshop на GitHub для объяснения различных аспектов на основе аутентификации и авторизации претензий, в частности, в том числе использования политик авторизации ядра нового ASP.Net, который может указать штраф на основе претензий, путем изучения любой комбинации набора индивидуальных требований пользователей, чтобы увидеть, соответствуют ли они критериям безопасности, и, необязательно, традиционные роли, которые также могут применяться для уменьшения административных издержек администрирования.
Заключение
Таким образом, вы можете следовать выше рекомендации для создания:
Репозитория базы данных пользователей Претензий, на основе ASP.Net ядра Identity.
Служба токена безопасности для аутентификации пользователя и предоставление токена, содержащего Претензии, с использованием IdentityServer.
Набор политик авторизации, которые оценивают правила в отношении пользователей Претензии (и, кроме того, Роли, если вы выбираете гибридный подход).
Безопасность - это сложная область, которая вначале может показаться довольно сложной. Тем не менее, как Доминик Байер, так и Брок Аллен признаны отраслевыми экспертами, которые обеспечивают хорошую серию представлений и образцов кода, а их проект, IdentityServer
, рекомендуется Microsoft для проверки подлинности на основе утверждений.
https://docs.asp.net/ru/latest/security/authorization/index.html –