windows - 从 Windows 身份验证到基于令牌的身份验证,保持 .net 框架 4.6 和活动目录在使用中
问题描述
我的企业应用程序是在 .net framework 4.5 中开发的,并且正在使用 windows 身份验证。在这种情况下,众所周知,是底层的 AD(活动目录)对用户进行身份验证。
我必须用基于令牌的身份验证替换 Windows 身份验证,保留 .net 框架 4.6 和 AD(活动目录)。我想 oAuth 是一个可能的解决方案,您能否分享一些关于其他可能解决方案的想法以及我该如何开始。
解决方案
历史
几年前,为企业 Intranet 开发应用程序很常见,在这种情况下,Windows 身份验证是一个很好的解决方案。当基于令牌的身份验证出现时,通常有以下好处:
- 扩大覆盖范围,以便可以通过互联网使用应用程序
- 支持跨域场景,例如不同域的API
- 根据用户位置和设备类型支持多种身份验证方法/策略
- 编写更少的安全代码,并为多个应用提供新的安全功能
执行
OAuth 迁移是一项重大的架构更改,需要根据成本和收益进行管理,尽管一旦完成,您的应用程序将非常先进。以下是 Windows 身份验证通常在 OAuth 2.0 / Open Id Connect 世界中的工作方式,这需要更复杂的设置:
- 您的 UI 重定向到云授权服务器 (AS),例如 Azure 访问控制
- AS 重定向到配置为使用 Windows 身份验证的身份提供程序 - 例如 ADFS(Active Directory 联合服务)的本地版本
- 在公司 Intranet 中时,用户会自动登录,并且 ADFS 将令牌发布到 AS
- AS 向您的 UI 发布不同的令牌
- 您的 UI 使用 AS 令牌调用 API,API 对其进行验证
入门
如果您认为努力是值得的,那么这项工作有两个部分。请注意,您的应用程序代码只会与 AS 交互,不需要知道或关心身份验证方法:
- 基础设施迁移
- 更新 UI 和 API 中的代码
如果有帮助,我的博客和代码示例旨在帮助人们应对 OAuth 技术的一些挑战。也许看看我的第一个教程来设置。
推荐阅读
- python-2.7 - 在 Python scipt 中从 Oracle 中选择列和数据
- javascript - 使用 d2.queue 加载 tsv,如何从 TSV 中的列中获取最大值和最小值?
- java - Postman 模拟服务器,用于具有动态请求标头/正文的请求
- reactjs - 如何在 6 个项目 ReactJS 和 React Hook 的数组中显示随机项目并重新洗牌
- node.js - 302 重定向不适用于“azure functions express”模块
- nuxt.js - 如何有条件地加载 Nuxt.js 插件?
- android - 使用 Espresso 时在 SearchView 上测试文本提交
- python - Python DateTime 减去 TimeDelta 与 TimeDelta 减去 DateTime
- reactjs - React Router v4:无法在 GitHub 页面上加载页面
- jquery - jQuery - 请求 JSON 数据时出现 AJAX 意外令牌错误