2015年10月6日星期二

EAP_042:基于角色控制访问EAP 6控制台

环境:JBoss EAP 6.4.0

需求来自客户,假设客户有3个角色,4个用户:
(1)Andy:系统管理员,可以做任何事情。
(2)Bob:开发项目经理,负责部署应用和相关配置。
(3)Clare 和 Dave:开发人员,只能查看应用配置,不能修改。

1. 创建用户
(1)运行./add-user.sh,分别创建Andy、Bob、Clare、Dave管理型用户。
(2)cp mgmt-user.properties mgmt-group.properties myeap/configuration
(3)cp standalone.xml standalone-rbac.xml
(4)./standalone.sh -Djboss.server.base.dir=/Users/maping/Redhat/eap/demo/myeap -c standalone-rbac.xml -Djboss.socket.binding.port-offset=10000
(5)访问 http://localhost:19990/,用刚创建的用户登录,发现可以做任何事情,不符合用户要求。

2. 修改standalone-rbac.xml如下

 <management>
    <access-control provider="rbac">
        <role-mapping>
            <role name="SuperUser">
                <include>
                    <user name="$local"/>
                    <user name="Andy"/>
                </include>
            </role>
            <role name="Deployer">
                <include>
                    <group alias="group-lead-devs" name="lead-developers"/>
                </include>
            </role>
            <role name="Monitor">
                <include>
                    <group alias="group-standard-devs" name="developers"/>
                </include>
            </role>
        </role-mapping>
    </access-control>
</management>

重新启动,这次发现各个用户按照各自角色行使权力。
使用andy用户登录,点击Administration->Role Assignment,可以看到所有用户和组的定义。

参考文献:
1. http://blog.c2b2.co.uk/2014/09/configuring-rbac-in-jboss-eap-and.html
2. http://blog.c2b2.co.uk/2015/01/configuring-rbac-in-jboss-eap-and.html
3. http://blog.arungupta.me/role-based-access-control-wildfly-8/
4. https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6.2/html/Security_Guide/Supported_Roles.html

没有评论: