2015-09-15 1 views
11

Я пытаюсь понять модель безопасности за .NET на основе претензий к приложению (Relying Party).Какова роль ClaimsPrincipal, почему у нее несколько идентификаторов?

Я знаю, что есть 2 основных класса:

  • ClaimsPrincipal - контекст безопасности для запущенного процесса
  • IdentityPrincipal - хранит информацию о пользователе - статус аутентификации и утверждает

Дело в том, , ClaimsPrincipal содержит только набор тождеств и указывает на используемый в настоящее время, но, насколько мне известно, директор обычно никогда не содержит более одного идентификатора, и даже если он будет - пользователь никогда не войдет в систему с 2 или mo повторных идентичностей.

Для меня ClaimsPrincipal, за исключением использования его для получения текущей идентичности, извините мое невежество, это бесполезно.

Что я пропущу, кроме того, что я заявлял, и, скажем, назад совместимость в отношении класса ClaimsPrincipal?

ответ

4

Одним из важных принципов безопасности является «кто говорит», то есть мы доверяем стороне, которая утверждает претензии против личности, поэтому для конкретного Претензионного соглашения мы можем иметь разные идентификаторы, каждый из которых утверждает другой набор требований, который позволяют нам определить управление доступом по доверенности в приложении,

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

Используя средство ClaimsTransformationManager, мы можем объединить эти два набора, то есть после аутентификации пользователя мы можем найти команду/отдел пользователя в базе данных и создать набор требований, выданных приложением.

Итак, теперь у нас есть роли (которые являются претензиями под капотом), утверждаемые Windows, и идентификатор приложения, подтверждающий пользовательские требования команд или отдела.

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