В настоящее время мы изучаем аутентификацию на основе утверждений и тестируем пользовательскую STS с использованием WIF.
Мы обсуждали, как хранить претензии в базе данных. Во многих простых примерах утверждения хранятся как простые атрибуты в одной таблице (например, UserProfile), имеющей FK для пользователя. Затем генерируются утверждения, и тип утверждения представляет собой URL-адрес и имя столбца (например, http://.../ претензии/электронная почта), и значение, конечно же, является значением из базы данных.
Но мне нужны более сложные примеры. Можете ли вы поделиться некоторыми из ваших способов хранения требований в базе данных? Я думал о чем-то вроде таблицы, содержащей все типы утверждений, и таблицы, содержащей значения для каждого пользователя (с FK для пользователя). Но нам действительно нужно немного вдохновения здесь. Так что все, чем вы можете поделиться, будет высоко оценено. Но опять же, это очень "плоская" структура...
Обновить
Я попытался сделать простую модель: http://imageshack.us/photo/ мои изображения/690/suggestionn.png/
Извините, пока не могу размещать изображения.
Я думаю, что это хорошо для простых утверждений. Но что, если у меня есть то, что я называю «вложенными утверждениями». Допустим, тип претензии описывает наличие у пользователя претензии, описывающей его права на ресурс «Персонал» типа претензии «Документы». Это можно описать с помощью этой модели, но что, если мы захотим подробнее описать это утверждение. Допустим, использование имеет уровень доступа 5 к ресурсу "Персонал". Я не понимаю, как это возможно. Любые идеи?
1 ответ
Две вещи, которые вы можете рассмотреть:
Различные проверяющие стороны (RP) могут генерировать разные группы утверждений для одного и того же пользователя. Итак, вам нужна таблица RP, которая ссылается на типы претензий.
(Примечание: вы можете определить, какой RP с помощью параметра wtrealm).
Кроме того, типы утверждений могут быть «один ко многим». Если есть тип .../claims/groups и пользователь принадлежит к нескольким группам, будет несколько экземпляров этого типа утверждения.
Вы видели, как это реализует Identity Server? Он использует базу данных SQL.
Похожие вопросы
Новые вопросы
database
База данных представляет собой организованный сбор данных. Это коллекция схем, таблиц, запросов, отчетов, представлений и других объектов. Данные обычно организованы так, чтобы моделировать аспекты реальности таким образом, чтобы поддерживать процессы, требующие информации. Используйте этот тег, если у вас есть вопросы о разработке базы данных. Если речь идет о конкретной системе управления базами данных (например, MySQL), используйте этот тег.