BI如何实现用户身份集成自定义安全程序开发(下)

统一身份认证是整个 IT 架构的最基本的组成部分,而账号则是实现统一身份认证的基础。做好账号的规划和设计直接决定着企业整个信息系统建设的便利与难易程度,决定着系统能否足够敏捷和快速赋能,也决定了在数字化转型中的投入和效率。

用户账号是用户身份的一种表示,传统统一身份认证系统往往被作为外围系统来集成各个应用系统,而不是作为核心基础系统被其他应用系统来集成。所以传统统一身份认证系统的建设存在众多的问题,使设计实现复杂化、管理复杂化、集成复杂化。

每个企业可能同时会有多套系统在运行,但每个用户的账号在企业中仅有一套,可以适用于各个系统当中。因此,这就涉及到我们如何将一套账号应用到各个系统中,保证账号的权限体系。

常见方法:

1. (最简单但最深恶痛绝的)数据复制一份导入到每一套系统中。这样会造成维护工作量大,数据混乱,如果是多级企业,将会发生难以想象的灾难。

2. 在身份集成中,自定义安全程序的开发,用一套用户身份验证程序,集成到各个系统中。

本文将从以下三点来介绍如何编写自定义安全提供程序,并在项目中配置引用。

  • 编写自定义安全提供程序
  • 配置自定义安全提供程序
  • 注意事项

配置自定义安全提供程序

(1) 文件部署

将编译得到的安全提供程序DLL文件,复制到Wyn安装目录下的SecurityProviders文件夹下,在Windows环境下,默认路径为:

C:\Program Files\Wyn\Server\SecurityProviders

提示

如果安全提供程序还依赖其他DLL,也请一并复制到同一目录。

(2) 重启服务

(重启服务图示)

(3) 添加用户安全提供程序

以管理员身份登录到系统的后台管理网站,单击“+添加用户提供程序”。

(图片来源于Wyn)

勾选自定义的安全提供程序后保存。

(图片来源于Wyn)

(4) 配置安全提供程序

选中刚添加的自定义安全提供程序,右边将会显示可配置的设定选项。具体有哪些选项是在安全提供程序的代码中确定的。按实际配置输入这些选项内容即可。

(图片来源于Wyn)

输入完毕,单击“保存”按钮。

(5) 重启服务

为使自定义安全提供程序的设置生效,需要进入任务管理器重启WynService服务。

(重新启动图示)

此后,就可以在登录窗口输入业务系统的用户名和密码来登录Wyn门户了。

注意事项

在编写安全程序中,我们需要注意的几个方法
1. MySecurityProvider.cs 文件中的 GenerateTokenAsync 方法,此方法用于第一次登录中,验证登录信息的方法。所以这一步需要完成的功能就是验证用户名密码,案例中所给的验证方式为从数据库中直接获取用户信息后判断登录。这里可以实现自定义的验证方式。只需要对此方法中的 Database.GetUserInfo 这个被调用的方法进行改造即可。

【链接数据库进行验证】

【自定义验证,这里可以使用api,可以使用加密字符串等各类操作】

上图方法中,我们使用了自定义参数 其中key为我们自定义的键值对内容。

在使用时可以这样配置:(自定义参数部分必须以 key:value 配置)

(图片来源于Wyn)

2. MySecurityProvider.cs 文件中的 GetUserContextAsync 方法,根据方法追踪,最终所调用的方法为 Database.cs中的GetUserInfoByName 方法,所以过程忽略,直接改造此方法即可。

注意:这里所返回的用户信息,则直接会在wyn中登录后所用到,所以这里注意返回结果信息。

(图例3)【根据用户名获取用户相关信息】

【自定义返回信息】

3. 若在程序中引用了其他dll,则需要在放入安全自定义程序时,将对应的dll放置到指定文件夹中。

路径为此(默认安装路径,若更改安装路径,则自行寻找)

C:\Program Files\Wyn\Server\SecurityProviders

4. 日志打印,需要设置路径,在C盘创建log文件夹,否则打印不到。

5. 配置界面信息设置

(图片来源于Wyn)

在当前页面看到的链接字符被修改为 秘钥(Base64) 这个可以在程序中直接配置,可以在 MySecurityProviderFactory.cs 文件中直接配置 SupportedSettings 此方法内容即可。

获取时在:MySecurityProvider.cs 自定义获取即可。

6. 设置门户网站

(图片来源于Wyn)

7. 返回的组织,角色如何处理?

返回信息中,若组织,角色在系统中没有,则无法正常访问,可以在后台管理中设置对应的组织,角色,并且给角色分配响应的权限。

设置组织:

(图片来源于Wyn)

传递的组织内容为:"/A/B" 顶级组织信息为 "/"

角色配置:给对应的角色设置权限

(图片来源于Wyn)

8. 进程调试 ctrl+alt+p,选择 显示用户所有进程,选中dotnet.exe 打中断点。点击附加。程序中选择断点。

接下来就是打包测试了,将程序配置好之后,就可以正常测试使用了。

登录API客户端管理

登录api代码示例

通过postman调用生成token ,生成对应的安全自定义程序。

请求参数中:client_id,client_secret 为 Client Management 中所生成内容. 具内容参考 登录API客户端管理 默认信息有:

client_id:integration

client_secret:eunGKas3Pqd6FMwx9eUpdS7xmz

后期可以自行设置修改。

请求截图:

(配置过程图示)

(配置过程图示)

②代码请求如下:

至此,已经可以获取到token了,获取后可以直接登录访问。

http://localhost:51980/integration?token=生成的token

(图片来源于Wyn)

到这里已经全部实现用户身份集成自定义开发,大家如果想了解更多商业BI行业精选模板,可以访问葡萄城官网。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章