Logo

AD FS 生成自定义身份验证方法代码开发

photo

2024年06月04日

一、背景概述

AD FS是微软提供的一套统一身份认证解决方案,我个人认为是比较小众的产品,而且使用体验一般;AD FS里自带的是Azure MFA,由于国内短信发送可能存在不及时问题,企业决定使用阿里云短信作为MFA(Multi-Factor Authentication)多因子认证方法。

首先 官方开发指导手册在 Windows Server 中为 AD FS 生成自定义身份验证方法 | Microsoft Learn

 先看效果:

登录完会跳转到自定义的页面,然后后台同步会发送一条短信到用户手机

二、代码解读&实施过程

2.1 代码解读

代码里主要是三块:

1. IAuthenticationAdapter接口 这个主要是负责里面的核心业务逻辑 其中BeginAuthentication方法是进入的时候执行,TryEndAuthentication方法是 提交的时候执行

2.IAuthenticationAdapterMetadata 元数据展示,听名字应该就可以看出这个是一个命名用的,用来标记我这个叫什么名字,展示的简介

3.IAdapterPresentationForm 展示页面,就是对应的html片段,AD FS里不是独立的html页面,相当于是把页面读取到内存中,随用随取

我截图相关代码示例

BeginAuthentication方法

TryEndAuthentication方法

2.2 服务器部署 

把编译好的DLL上传到服务器某个目录用于后续注册

这一块建议跟着官方的手册做,我的示例如截图

首先要先把 NETFX 4.8 Tools工具上传到服务器,用来注册dll到系统用的

#注册1
gacutil.exe /if MFAadapter.dll
gacutil.exe /l MFAadapter

然后再到powershell里引用dll

#注册
$typeName = “MFAadapter.MyAdapter, MFAadapter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a591fa04bdf274e8, processorArchitecture=MSIL”
Register-AdfsAuthenticationProvider -TypeName $typeName -Name “MyMFAAdapter”
#查看
Get-AdfsAuthenticationProvider
net stop adfssrv
net start adfssrv

注意:

由于除了自身dll可能还会引用其他第三方的dll文件,这些dll文件需要放到AD FS的运行目录,目录地址:%windir%\ADFS

然后到AD FS里启用

三、避坑指南 

这个打包好的DLL是要求要强签名的,所以当引用较多的第三方类库的时候有的不是强签名而导致报错,需要给dll改为强签名,这个可以参考我的博客 C#未能加载文件或程序集。需要强名称程序集,异常来自 HRESULT:0x80131044-CSDN博客

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
本文为原创文章,请注意保留出处!
自定义接口开发 2024年06月04日

接下来要进行自定义接口开发,主要实现页面的异步加载和第三方工具的对接。浏览量:425

ADFS登录界面自定义 2024年06月04日

最近在做identityServer3+ADFS实现域账号第三方授权验证,发现一个问题,在我们网站...ADFS登录界面自定义

热门文章

C#图片处理 通常对一幅图片的处理包括:格式变换,缩放(Scale),翻转(Rotate),截取(Clip),滤镜...C#图片处理 作者:Pastore Antonio
1715 浏览量
memcached 处理 多端口:https://blog.csdn.net/Erica_1230/article/deta...memcached处理 作者:Pastore Antonio
1673 浏览量
AssemblyInstaller 的应用 usingSystem;usingSystem.Configuration.Install;us...AssemblyInstaller的应用 作者:Pastore Antonio
1665 浏览量
WordPress上传文件大小限制修改 WordPress上传媒体文件默认大小限制是2M或8M,当文件大于这个限定大小时,是上传不了的。其实...WordPress上传文件大小限制修改 作者:Pastore Antonio
1639 浏览量
Layui开发日记 丰富版table:https://saodiyang.gitee.io/layui-soul-ta...Layui开发日记 作者:Pastore Antonio
1591 浏览量