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日

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

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

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

热门文章

WordPress 后台编辑器样式实现直接预览 在WordPress3.0以后,有一个新的实用功能:你可以更改默认后台编辑器(TinyMCE)的样...WordPress后台编辑器样式实现直接预览 作者:Pastore Antonio
1533 浏览量
【干货】Chrome插件(扩展)开发全攻略 写在前面我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的...【干货】Chrome插件(扩展)开发全攻略 作者:Pastore Antonio
1488 浏览量
memcached 处理 多端口:https://blog.csdn.net/Erica_1230/article/deta...memcached处理 作者:Pastore Antonio
1481 浏览量
使用Nginx+WordPress搭建个人网站 背景很多研究技术的朋友喜欢写博客。如果希望搭建一个完全属于自己的网站,也并不困难。这里简要分享一下...使用Nginx+WordPress搭建个人网站 作者:Pastore Antonio
1453 浏览量
C#图片处理 通常对一幅图片的处理包括:格式变换,缩放(Scale),翻转(Rotate),截取(Clip),滤镜...C#图片处理 作者:Pastore Antonio
1445 浏览量