原本的想法是
使用微软的解决方案ADFS, 但是这个需要domain admin的权限, 总公司没有同意给
也没有同意可以给ADFS的分机在本地.....这个方案就放弃了,
然后希望是架设IdentityServer4来解决, 我看了很多文件后, 实在没有研究出如何使用,
就专门开发一个web app做ntlm认证用
最后的解决方式, 我是这样做的继承GrapeCity.Forguncy.SecurityProvider
开发一个
可以做企业微信及公司内部NTLM认证的oauth 2.0 dll
Step 1
用.net 5.0开发一个web app挂在IIS下面,
新增一个razorpage login送入return url + state,
可以得到domain account, 然后读取DB, 取得工号, 部门, email等资料
写入redis, 回复code及state
Step 2 开发SecurityProvider
ISupportSettings
建议使用ILSpy看葡萄城提供企业微信认证模块参考一下代码, 可以快速开发出 ISupportSettings的部分
这个其实不见得需要也可以hard code在代码里面
ISecuriptProvider
人员资料来源是公司内部SQL Server, 因此主要是开发UserInformaticas这个Function
这里我遇到了坑, 后来才发现需要分别产生Org, Users等资料, 如果只把Org加人是不够的
IOpenIdSecurityProvider
需要在GetRedirectUrl这个Function里面加入判断,
何时连到公司的开发ntlm认证主机, 何时连到企业微信的
然后在VerifyUser里面做使用一次性的code到主机取得用户资料
|