Я работаю над проектом, который использует Active Directory для пользовательской информации, ADFS для проверки подлинности и единого входа и нескольких пользовательских приложений, все из которых созданы с помощью ASP.NET MVC.Хранение разрешений на основе ролей с использованием ADFS и WIF
Модель авторизации - это претензии и основанные на ролях; то есть роли пользователя доступны в качестве претензий к соответствующему приложению через токены, выпущенные ADFS (с использованием WIF).
Каждая роль имеет определенный список разрешений для различных ресурсов приложений (т. Е. Роль Admin имеет разрешение WRITE для ресурса X). У нас есть основная модель авторизации, хорошо работающая с некоторыми жестко запрограммированными разрешениями.
Мой вопрос: что является лучшим способом/местом для хранения фактических разрешений для различных ролей? Это можно сделать в ADFS или понадобится отдельный магазин (я предполагаю, что последний)? Разрешения следуют той же широкой схеме, что и XACML (user/role: resource: action), и решение XACML, вероятно, будет легко интегрироваться, но самая популярная реализация XACML (XACML.NET) в .NET реализует XML как единственную который не будет жизнеспособным (у нас есть много ресурсов для хранения разрешений против - потенциально тысячи).
Что люди используют для этого? Наиболее очевидным решением является просто хранить триплеты в SQL Server, но, учитывая все готовые решения для аутентификации (особенно с использованием ADFS и WIF), кажется странным, что для фактической реализации авторизации и разрешений имеется очень мало (очевидная) информация. Все примеры, которые я нашел в Интернете, перестают объяснять вещи на уровне разрешений.
Это то, что я подозревал, спасибо. – MarkH
Из интереса: как вы конвертируете тройную «роль Admin имеет разрешение WRITE в отношении ресурса X» в заявку, которая выглядит как «.../Claim/role = Admin»? – nzpcmad