Выборочно применять политику авторизации к операциям - PullRequest
0 голосов
/ 12 апреля 2010

У меня есть служба WCF с несколькими операциями, предоставляемыми как RESTful API. Большинство операций в сервисе не требуют аутентификации / авторизации, но одна или две из них. Политика авторизации, которую я должен использовать, находится вне моего контроля и требует больших затрат. Поэтому я хотел бы избегать его использования в тех операциях, которые в нем не нуждаются.

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

Поведение при работе не помогает, поскольку коллекция ServiceSecurityContext.AuthorizationPolicies доступна только для чтения.

Разделение моего сервиса на два контракта - авторизованный и неавторизованный - является грязным и не поможет в любом случае. Чтобы настроить отдельные варианты поведения, мне потребуются отдельные службы (а не отдельные контракты, реализованные одной службой), чтобы у каждого из них было свое имя в целях настройки. Отдельные сервисы подразумевают отдельные файлы .svc, указывающие на эти сервисы, поэтому все мои URL-адреса RESTful будут меняться, если у меня не будет какой-то сумасшедшей схемы перезаписи URI. Это, кажется, требует больше работы, чем нужно, чтобы это произошло.

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

Как я могу выборочно применять политику авторизации к сервисным операциям? Есть ли более простой способ?

1 Ответ

1 голос
/ 12 июля 2010

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

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