Logo

Logo

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

Pastore Antonio
Pastore Antonio 2024年06月04日
713 阅读 0 评论 约 1277 字 阅读约 3 分钟

一、背景概述

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博客

查看完整代码

橙子主题打折出售

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

购买它

附件下载

共 6 个文件
6560f3ca72e6431d8c6ed0d0c2af22c6
PNG 71.7 KB
43d145d3440b4027a53e5b7bac300f83
PNG 49.6 KB
11d4702ce6f247f2b40b4022cb42a234
PNG 57.9 KB
3572457133c147c89cc0f8840eb31e98
PNG 23.2 KB
fc88c4abda32463293b9f5fa2df9093b
PNG 28.0 KB
3e5f921c2f184d218fc0a6b792d4ee83
PNG 88.8 KB
部分文章可能存在转载,如果涉及到侵权,请联系删除文章。

探索AIGC相关的精彩内容,共 15 篇文章

Azure AI 服务之语音识别

简介 Azure AI 服务中的语音识别 API 是微软提供的一项先进技术,旨在帮助开发者轻松实现语 ... AD FS 生成自定义身份验证方法代码开发

2026-02-17 · Xzavier Aaron
MCP | 一文详解什么是 MCP以及 MCP 可以做什么

一、什么是 MCP MCP(Model Context Protocol)是一个专为大型语言模型(L ... AD FS 生成自定义身份验证方法代码开发

2026-02-14 · Shen, Luke
你的工作流程,值得一个“全自动数字分身”:录制、截图、成文,一气呵成

一、一句话认识 TestFlow Recorder 在数字化工作环境中,如何准确记录操作步骤并生成清 ... AD FS 生成自定义身份验证方法代码开发

2026-02-14 · Xzavier Aaron
Flowise 前端框架配置指南

用户需求 问题:有没有适合配置 Flowise 的前端框架? 目标:寻找类似 Open WebUI ... AD FS 生成自定义身份验证方法代码开发

2026-02-14 · Xzavier Aaron