使用UsernameToken安全性在WSO2 Dev Studio中创建代理服务?

时间:2014-07-10 15:35:47

标签: wso2 wso2esb wso2carbon wso2is

我正在尝试在WSO2 Dev Studio中的服务上启用UsernameToken安全性。我可以通过WSO2 Web GUI轻松完成此操作。我希望通过开发工作室完成这项工作,就是生成一个可以轻松部署的.car文件。

我看到web gui创建了一个策略文件,并且可以在导出的.car文件中包含该文件。我认为,问题在于,当您使用web gui启用usernametoken安全性时,第二个屏幕会要求选择一个用户组列表。我不知道数据到底在哪里。它没有在政策中定义。它似乎由WSO2内部存储。如果这是准确的,无论如何通过部署.car文件进行交互?

最终,我只想使用用户名和密码进行身份验证,并且任何用户组都没问题,因为我将在身份验证后使用权利中介来控制访问权限。

编辑:看起来它最终出现在WSO2CARBON数据库的UM_ROLE_PERMISSION表中。我想我需要的是一种在我的.car文件中放入一些代码的方法,这些代码将在部署时执行以便写入该表。 (或者是一个不太可怕的解决方案,我可以在不必操纵数据库的情况下完整地描述身份验证方案。)

1 个答案:

答案 0 :(得分:0)

用户角色列表存储在用户管理数据库中。默认情况下,它将存储在默认的h2数据库中。

您可以通过在代理配置中设置名为allowRoles的参数来配置允许的角色。设置将被授权访问给定服务的逗号分隔角色。

例如:

<parameter name="allowRoles">role1,role2</parameter>

示例代理配置:

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse" name="test_ws_security" transports="http https" startOnLoad="true" trace="disable">
    <target>
        <inSequence>
            <respond/>
        </inSequence>
        <outSequence/>
    </target>

    <parameter name="allowRoles">admin,myrole</parameter>

    <policy key="conf:/custom/UsernameTokenPolicy_v1.xml"/>
    <enableSec/>
</proxy>