Page tree
Skip to end of metadata
Go to start of metadata

关于第三方用户认证,请参考与第三方系统用户集成使用第三方系统的用户验证的内容。

1. 实现原理

Smartbi中提供了第三方用户认证接口IAuthentication。在第三方认证类中实现IAuthentication接口,完成第三方的认证逻辑,最后将认证结果返回,并按照使用第三方系统的用户验证中的实现步骤完成相关配置。
在使用第三方用户认证的情况下,当用户登录系统时会去执行第三方认证类中的认证方法,如果认证方法返回的是true,那么Smartbi会认为该用户通过了验证,登录成功,否则登录失败。

2. 是否所有接口都需要实现

所有接口都应该实现,但结合项目实际需要,有些接口方法可以为空。

3. 是否必须将第三方系统中的用户、组、角色同步到Smartbi中

采用第三方用户认证方式时,第三方系统中的用户、组、角色可以不需要同步到Smartbi中。
当用户登录Smartbi时,如果在Smartbi中没有该用户,系统会自动创建该用户。如果在第三方认证类的getUser(String userName)方法设置了该用户在第三方系统中的所属组或角色,那么Smartbi会自动把该组和角色同步到Smartbi中;否则Smartbi会自动把用户创建在根组下,继承根组所拥有的角色。

4. 权限在Smartbi中维护吗

Smartbi的权限分为操作权限和资源权限。
使用了该认证方式后,操作权限仍需要在Smartbi中维护,但资源权限可以选择Smartbi系统或第三方系统的任一种方式。如果选择第三方系统维护,需要实现第三方权限验证接口,具体说明请参见使用第三方系统的权限验证

5. 如何限制不能在IE地址栏中输入URL传递用户名密码直接访问,而必须通过第三方系统访问

在打开Smartbi之前(登录Smartbi之前),在第三方系统中生成一个随机码(该随机码有效性只有一次,当用户成功登录Smartbi后,该随机码失效),把这个随机码当成密码和用户名一起传给Smartbi。在Smartbi的第三方用户认证类中,获取到用户名和该随机码(密码)后去第三方系统中验证,判断当前用户和该随机码是否匹配。

6. 是否支持多个业务系统的认证

比如,客户想在A、B、C 3个业务系统中都集成Smartbi的报表,但3个系统没有统一的用户认证平台,各自分别进行权限控制。
回答:可以支持。但在第三方认证类中,需要指明该用户是登录到哪个系统的,需要根据该系统的权限进行验证。

  • No labels