Интегрированная авторизация на основе утверждений с Windows Identity Foundation - PullRequest
2 голосов
/ 02 августа 2010

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

Я уже использую ServiceAuthorizationManager и могу выполнить оценку там ... но как насчет сценариев, отличных от WCF? А как насчет предотвращения создания экземпляров определенных классов и предотвращения вызовов методов внутри операции WCF, а не перед ее выполнением?

Я также уже использую механизм IoC и обдумывал использование перехватчиков и специального активатора, который выполняет оценку на основе утверждений относительно гипотетического RequiresClaimAttribute для класса или метода ... но я не очень люблю такой подход потому что для любых объектов, которым требуется поддержка авторизации, требуется использовать контейнер IoC для разрешения и построения ...

Итак, я предполагаю, что мой вопрос ... действительно ли Microsoft Windows Identity Foundation (она же платформа IdentityModel) действительно достаточно зрелая, чтобы использовать ее на данном этапе? Есть ли способы выполнить то, что я описываю, с помощью IdentityModel?

1 Ответ

2 голосов
/ 03 августа 2010

Вы можете достичь всего этого с WIF.Помимо прочего, WIF подключается к платформе .NET через интерфейсы IPrincipal и IIdentity .Приложение, которое закодировано против этих двух, вероятно, «просто работает» (как большинство служб ASP.NET и WCF).Роли, как артефакт для atuhorization, автоматически отображаются WIF также, поэтому любой frameowrk, который вызывает IPrincipal.IsInRole , должен работать.

Этот пример показывает интеграцию со "RIA Services" и объясняет возможную реализацию (и расширение) для более общего " требуетClaimAttribute ", как вы предлагаете.

Что касается срока погашениявопрос.Я думаю, это зависит от того, как вы это определяете.Это относительно новое дополнение к .NET Framework, но оно выпущено и полностью поддерживается.Я знаю несколько (производственных) приложений, использующих WIF.Кто-то больше, кто-то меньше, кто-то в частном секторе, а кто-то в правительственных решениях.Вам нужно будет оценить применимость и пригодность для вашего собственного контекста и ограничений.

...