我想使用我自己的 .net core Web 应用程序作为身份提供商来验证我的 GSuite 用户。
https://support.google.com/a/answer/60224?hl=zh-CN
但是,我不知道从哪里开始。我一直在积极而努力地寻找解决方案,但它们都来自商业公司,使用他们的服务有点过分了。
一个好的商业提供商是: https://www.componentpro.com/products/saml
是否有我错过的隐藏的 gem 开源库?
我知道这个问题很普遍,但非常感谢任何帮助。
SAML2
堆栈。要为联合身份构建符合 SAML 的
Identity Provider
,您不仅需要 SAML 令牌,还需要 SAML 协议(v2 是我见过的唯一受到 Google、Okta、Auth0、AWS Cognito 等外部提供商支持的协议) )。它们都使用 SAML 2.0 协议中的 SAML 1.1 或 2.0 令牌。
经过长期研究(仍在进行中),我只找到了一个我信任的免费 SAML2 库:
Sustainsys
(您可以在 NuGet 上找到它)。它将在您的应用程序上启用 SAML2(包括协议),执行断言验证等。看起来很有趣,但它只适用于新项目。
您也可以依赖两个付费套件:
ComponentPro
和ComponentSpace
(最后一个听起来更稳定/更强大,但这只是一种感觉,因为您找不到真正的证据来证明它已被所有这些人使用过)公司在现实世界的生产应用程序上。
您可以创建符合 SAML2-P 标准的应用程序/模块,但您必须处理签名、消息接收、验证、断言等。我建议反对,因为很容易错过一些稍后可能被利用作为安全漏洞的东西。
SAML 并不是唯一的路径。您也可以尝试
OpenID Connect
或 WS-Federation
。查看有关 Authentication Federation
主题的更多信息,您会发现其他协议。人们可能比使用 SAML
更容易解决您的问题。