Безопасность на основе ролей

Роли часто используются в финансовых и деловых приложениях для применения политики. Например, приложение может установить ограничение на размер транзакции в зависимости от того, является ли сделавший запрос пользователь участником определенной роли. Служащие могут иметь доступ к проведению транзакций, размер которых меньше определенного порога, менеджер может иметь больший предел, а вице-президент — еще больший или неограниченный. Безопасность на основе ролей также можно использовать, когда приложению для завершения действия требуются многократные утверждения. В качестве примера можно привести систему закупок, в которой каждый сотрудник может создать заявку на покупку, но преобразовать эту заявку в заказ на покупку для отправки поставщику может только агент по закупкам.

Безопасность на основе ролей .NET поддерживает авторизацию путем создания сведений о субъекте, созданном из связанного удостоверения, доступного текущему потоку. Удостоверение (и субъект, который определяется с его помощью) может быть основано на учетной записи Windows или представлять собой пользовательское удостоверение, не связанное с учетной записью Windows. Приложения .NET могут принимать решения об авторизации на основе удостоверения участника или членства в роли или обоих. Роль — это именованный набор субъектов, имеющих одинаковые привилегии в плане безопасности (например, кассир или менеджер). Субъект может иметь одну или несколько ролей. Поэтому приложения могут использовать членство в ролях для определения того, имеет ли субъект право на выполнение запрошенного действия.

Чтобы упростить использование и согласованность с безопасностью доступа к коду, безопасность на основе ролей .NET предоставляет System.Security.Permissions.PrincipalPermission объекты, позволяющие среде CLR выполнять авторизацию таким образом, как и проверка безопасности доступа к коду. Класс PrincipalPermission представляет удостоверение или роль, которой должен соответствовать субъект. Этот класс совместим с декларативными и принудительными проверками безопасности. При необходимости можно также получать доступ к данным удостоверения субъекта напрямую и выполнять проверки роли и удостоверения в коде.

.NET обеспечивает поддержку безопасности на основе ролей, которая является гибкой и расширяемой для удовлетворения потребностей широкого спектра приложений. Можно взаимодействовать с существующей инфраструктурой аутентификации, например службами COM+ 1.0, или создать пользовательскую систему аутентификации. Безопасность на основе ролей особенно хорошо подходит для использования в веб-приложениях ASP.NET, которые обрабатываются в основном на сервере. Однако безопасность на основе ролей .NET может использоваться на клиенте или сервере.

Прежде чем читать этот раздел, убедитесь, что вы понимаете материал, представленный в основных понятиях безопасности.

См. также