找回密码
 立即注册

QQ登录

只需一步,快速开始

ken_hongbinfeng
金牌服务用户   /  发表于:2021-4-7 10:04:07
11#
Simon.hu 发表于 2021-4-7 08:42
其实这个问题的主要难点不在于多个安全提供程序,而在于
1.多个安全提供程序,应该如何验证?是发布的时候 ...

谢谢回复,

看起来是可以使用iopenidsecurityprovider的接口来解决即可!!!
就再测试看看, 实在不行, 就先采用ntlm的认证!

如果有成功再分享给大家!!!

回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-4-7 14:13:46
12#
ken_hongbinfeng 发表于 2021-4-7 10:04
谢谢回复,

看起来是可以使用iopenidsecurityprovider的接口来解决即可!!!

那我提前感谢一下大佬~~
回复 使用道具 举报
ken_hongbinfeng
金牌服务用户   /  发表于:2021-5-11 10:53:11
13#
Simon.hu 发表于 2021-4-7 14:13
那我提前感谢一下大佬~~

原本的想法是
使用微软的解决方案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到主机取得用户资料

评分

参与人数 1金币 +666 收起 理由
Tracy.Liu + 666 很给力!

查看全部评分

回复 使用道具 举报
Tracy.Liu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-5-11 11:56:58
14#
感谢大佬分享~~
回复 使用道具 举报
ken_hongbinfeng
金牌服务用户   /  发表于:2021-7-28 13:48:16
15#
Simon.hu 发表于 2021-4-7 08:42
其实这个问题的主要难点不在于多个安全提供程序,而在于
1.多个安全提供程序,应该如何验证?是发布的时候 ...

已经解决, 后来使用
1.架设IIS做NTLM认证
2.撰写三方认证+反向代理配合, 可以以支持内部NTLM认证和企业微信认证
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-7-28 17:54:30
16#


大佬V5
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部