Как управлять претензиями пользователей?C#

Место общения программистов C#
Ответить
Anonymous
 Как управлять претензиями пользователей?

Сообщение Anonymous »

В настоящее время я разрабатываю систему с использованием ядра asp.net и хотел бы реализовать авторизацию на основе утверждений, но одна конкретная часть меня смущает.

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

Однако этот эмитент не хранится в базе данных Identity, так как же обработчик затем проверяет эмитент?

Я неправильно понимаю, как все это работает? Насколько я понимаю, пользователь делает утверждение определенного типа, что его утверждение имеет определенное значение, а эмитент является проверяющим типом утверждения, фактически имеющим это значение для этого пользователя.

Обработчик проверит значение и может проверить эмитента, но не может, если база данных его не хранит. Тогда я не понимаю цели эмитента.

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

Пожалуйста, помогите мне понять.

Я проверил это так:
  • Использование основного приложения asp.net с Identity.
  • Зарегистрируйте пользователя .
  • Добавьте пользователю утверждение, включающее тип, значение и издателя. (например, номер сотрудника, 312, Microsoft.
  • Добавьте [Authorize(Policy="MicrosoftEmployeesOnly")] на контроллере/действии, чтобы ограничить доступ.
  • Добавьте политику в службы в StartUp.cs с требованием.
  • Добавьте код требования, который имеет обработчик, проверяющий, что у пользователя есть утверждение типа СотрудникNumber, имеет значение и выдается Microsoft.
  • Войдите в систему, и утверждения пользователей будут загружены из базы данных в удостоверение.
  • Обработчик не сможет проверить пользователь, потому что эмитент (Microsoft) был потерян и теперь просто говорит «Местный орган власти».
Единственное, что я могу здесь придумать, как только утверждение добавляется в базу данных, оно считается проверенным Microsoft и теперь хранится в приложении (местном органе власти) от имени Microsoft.

Если это правда тогда:
  • Зачем вообще проверять эмитента в любом обработчике?
  • Как отозвать претензию?
Я бы предпочел иметь возможность при необходимости обратиться к этому эмитенту и проверить претензию, когда захочу, то есть эмитент может отозвать /отменить претензию. Сотрудник заявляет, что у него есть номер сотрудника в Microsoft, и первоначально Microsoft подтверждает это. Некоторое время спустя Microsoft выгнала сотрудника и удалила его в своей системе. Приложение должно иметь возможность проверять Microsoft каждый раз, когда пользователь входит в систему, чтобы проверить, действительна ли заявка. В этом случае оно больше не будет действительным.

Я немного схожу с ума?

Подробнее здесь: https://stackoverflow.com/questions/423 ... ser-claims
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»