Какой стандартный способ назвать WSO2 ESB как PEP для авторизации XACML с IDP из веб-приложения?
Я пытаюсь работать над авторизацией с XACML.
Я успешно установил связь с WSO2 Identity Server (PDP) от обычного перехватчика Axis2.
Сейчас я пытаюсь использовать Wso2 ESB в качестве PEP (упоминается в примере ниже)
http://wso2.com/library/articles/2010/10/using-xacml-fine-grained-authorization-wso2-platform/
Проблема в том, что я не могу понять, как вызвать ESB из веб-приложения? В приведенной выше ссылке они используют клиент Java для соединения с ESB, вызывая службу прокси ESB с UT Security.
Я не уверен, является ли данный класс Java в этом примере правильным способом сделать это. Поскольку это требует знания прокси-сервиса и его политики безопасности.
Также я видел, что если вы хотите абстрагировать свой PDP, то в будущем у вас будет возможность заменить его любым другим новым PDP, тогда вам следует использовать стандарт WS-XACML для связи PEP-PEP.
Я еще не нашел образец на этом,
Есть ли другой стандартный способ добиться этого? Или любой пример, который может быть полезен.
1 ответ
WSO2 ESB содержит PEP, который называется посредником по правам. ESB может использоваться в качестве шлюза безопасности для ваших внутренних веб-сервисов. Позвольте мне объяснить некоторые варианты использования ESB. Например, у вас есть несколько устаревших сервисов (или стандартных веб-сервисов с SOAP и REST) в вашей системе. У вас есть требование применить безопасность (аутентификацию и авторизацию) для этих сервисов. Поэтому вы можете использовать эти сервисы с WSO2 ESB и защищать их, не меняя существующую систему. Ваши существующие сервисы могут быть легко представлены как стандартные веб-сервисы на основе SOAP (Proxy Services) или REST API с помощью ESB. Затем вы можете использовать защиту веб-службы (WS-Security, да UT или любую другую) или API-защиту (OAuth/Basic Auth), обеспечивающую их защиту. С этими подходами вы можете легко управлять аутентификацией. Если вам нужна точная авторизация, вы можете использовать посредник с правами WSO2IS.
Хорошо, я не уверен в вашем точном сценарии. Я думаю, у вас есть веб-приложение, и вам нужно вызвать веб-сервис. Вы прошли через него, используя ESB для получения авторизации. Как вы проходили аутентификацию? У вас может быть какой-то механизм аутентификации, который был реализован в веб-приложении? Затем вы можете иметь имя пользователя аутентифицированного пользователя, это значение имени пользователя может быть отправлено в ESB в заголовке HTTP (при условии, что веб-приложение и ESB находятся во внутренней сети и с SSL). Внутри медитационного потока ESB вы можете извлечь это имя пользователя и установить его в качестве посредника Entitlement (поэтому вам не нужно всегда применять UT). Единственное требование состоит в том, чтобы имя пользователя было доступно для работы посредника, предоставляющего право (это просто, пользователь должен пройти аутентификацию перед авторизацией)
Таким образом, от веб-приложения до ESB вам не нужен Java-клиент, это может быть любой клиент, который может вызывать ваши веб-сервисы.
WS-XACML - это старый и не популярный профиль. Я не думаю, что это лучше использовать. Стандартным способом связи с PEP-PDP является профиль REST/JSON. Но WSO2IS все еще не поддерживает это. Вы можете найти более подробную информацию здесь