2008-09-22 1 views
3

Наша CMS реализует свой собственный контроль доступа на основе контента для управления контентом, а что нет, как и все другие CMS;) Я недавно играл с идеей попытаться реализовать расширение этого контроля доступа в нашей веб-службе api, с возможной идеей выбора того, какие пользователи имеют доступ к каким методам.Доступ к веб-сервисам на основе специальных ролей

Кто-нибудь реализовал что-то подобное или знал о каких-либо хороших ресурсах, которые я мог бы изучить, чтобы заставить мяч катиться по нему.

Наша разработка осуществляется полностью в .NET 2.0, однако, если принцип существует в другом языке, я приветствую это :)

ответ

0

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

Помните, что каждый вызов веб-метода требует выполнения одной или нескольких операций. Каждый метод должен принимать имя пользователя/пароль или токен. Метод сделает один вызов вашей базы данных или другого механизма хранения, чтобы определить, действительно ли идентифицированный пользователь действительно имеет назначенные им операции. Затем, если все хорошо, выполните оставшуюся часть метода.

На самом деле это не так сложно и чрезвычайно гибко.

1

обычай SOAP Authorization заголовок, вероятно, самый стандартный .NET 2.0 способ сделать это, проверьте this article на экспертной бирже, это дает очень простую реализацию.

В принципе, вы определяете заголовок SOAP, который передает имя пользователя и пароль для каждого вызова службы. Затем служба имеет доступ к учетным данным и может выполнять любую проверку/авторизацию в поиске/проверке роли, которую требуется, и возвращать соответствующий ответ. Имя пользователя и пароль могут поступать из Windows или могут быть вставлены во время выполнения из конфигурации и т. Д. На стороне клиента.

0

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

Доступ к каждому приложению Пользователь может быть настроен на основе метода или на менее грамотном уровне чтения/записи/обновления/удаления/всех.

Web Site (App Username, Password, Authentication Code) ---> 
    Web Service (App Username, Password, Authentication Code, Access Level) --> 
     Security Web Service (Returns True/False) 

Надеюсь, это имеет смысл!