WSO2 Identity Server - 内部角色与外部角色

Mik*_*ike 2 wso2 wso2is

我们正在考虑将我们在WSO2中的角色存储在内部数据库中 - 暂时.

据我了解,这些内部角色存储在表UM_HYBRID_ROLE中.我要确认的是,这些角色的处理方式与在外部LDAP中配置的角色的处理方式相同,涉及XACML策略,声明mgt等.

换句话说,我们是否可以假设与内部角色相关的政策/主张与外部角色相关时的行为相同?

WSO2如何处理内部/外部角色(除了它们持续存在的地方)之间是否存在任何差异,我应该注意哪些?

谢谢,迈克

Ase*_*ela 7

内部和外部角色在API级别都被视为相同.唯一不同的是,您会看到Internal带有内部角色的前缀.比如,如果您使用名称创建角色foo.它将被命名为Internal/foo.

当谈到XACML时,您不想做任何事情,您可以使用相同的声明uri检索这两种类型的角色.即http://wso2.org/claims/role.无论用户存储(内部还是外部),它都将返回分配给用户的所有角色.

另外,让我来谈谈internal角色,

内部角色是Carbon服务器在内部维护的角色.这意味着,这些角色不会与用户存储中的组映射.它们是在Carbon Server的内部数据库表中创建的.内部角色用于以下用例..

  1. 当Carbon服务器想要在内部创建角色时,它总是创建一个内部角色.前 - "每个人"角色都是内部角色.它是由Carbon服务器在服务器启动时创建的.因为,Carbon服务器无法始终在用户存储中创建角色.因为无意中在合作用户商店中创建角色并且如果合作用户商店以只读模式连接是不好的,则Carbon服务器不能创建角色.

  2. 如果用户存储已连接为只读模式.您无法使用Identity Server管理控制台或API将用户分配给角色.在这种情况下,您可以使用内部角色.

  3. 使用Carbon服务器配置多个用户存储时,您可能需要将来自不同用户存储的用户分配到一个角色.这可以通过创建内部角色来完成.可以将来自不同用户存储的用户分配给内部角色.(因为您无法将用户从一个用户存储分配到另一个用户存储中的组)