asp.net-web-api - 了解如何将 SAML2 SSO 实施到现有的 .net web api
问题描述
我需要对我们现有的 Web API 实施 SAML 2.0 sso 身份验证。我对这个话题相当陌生,所以我不知道从哪里开始。我一直在玩开发 ADFS 服务器(ADFS 4 - Windows server 2016),并一直在关注如何设置依赖信任方的教程。我已经了解了 SAML 的工作原理,但仍然不知道如何通过代码实现这一点在我的 webapi 中。我想知道如何开始实施 SAML 2 身份验证以连接到 ADFS 服务器,Web 应用程序部署在不同的 iis 服务器上。我已阅读https://github.com/Sustainsys/Saml2/tree/master但我不知道我的 web api 如何连接到 ADFS 服务器以检索 SAML 令牌并进行处理。
解决方案
您遇到的问题是 SAML 规范。不适合 API(webapi 或 REST API)。它纯粹是一个浏览器 SSO 重定向协议。
在 ADFS 中,API 由应用程序向导配置,但这是带有 JWT 而非 XML 令牌的 OpenID Connect。
更新
如果您的 webapi 是 REST API,则将 OIDC 与 JWT 一起使用。
仅供参考:ADFS 还支持 WS-Fed。WS-Fed 确实有一个 API 配置文件(称为活动配置文件),它本质上是 WCF。
推荐阅读
- c# - 连接 WCF Cryptography.CryptographicException:指定的初始化向量 (IV) 与此算法的块大小不匹配
- ios - Xcode Ios 构建失败,不允许操作错误
- java - Git Repositories - Java with maven for azure 中的自动化管道 - 如何为所有存储库添加存储库父亲?
- flutter - FormBuilderDateRangePicker 不再工作
- javascript - 我是否将函数名称与 id 混淆了我得到了这个 errorTypeError: c.includes is not a function
- cypress - 如何在 cypress then() 方法之外返回 href 值
- coldfusion - 如何在coldFusion中突出显示工作日(周一至周五)的日期
- bazel - 如何消除误报 Bazel 警告“如果没有目标文件,建议设置'linkstatic = 1'”
- python - Python中for循环方程中的优化参数
- mysql - 在 python 中的单个查询中从 2 个不同的服务器访问表