使用Kentor.AuthServices.StubIdp作为生产IDP

我正在尝试在我的应用程序中实现IDP(SAML2)服务器。 鉴于我的应用程序具有所需的所有数据,我不希望我的任何合作伙伴要求我们的客户注册他们。

我对SAML2协议不太熟悉。 我发现项目Kentor.AuthServices.StubIdp是最有趣的,因为它实现了我需要的一切。 我也知道它不是为生产目的而建的。

我计划在StubIdp之上构建IDP,因为我买不起像ComponentPro这样昂贵的解决方案。

有更好的选择吗? 建立在StubIdp之上是一个好主意吗?

SAML2登录可以通过两种方式完成:

  1. SP启动,其中SP向Idp发送AuthnRequest,并使用SamlResponse向Idp回答。
  2. Idp-initaited,Idp发送未经请求的SamlResponse。

Kentor.AuthServices(驱动StubIdp的库)包含Idp启动的登录所需的所有内容。 在Stub Idp源中查看它是如何完成的。

正确执行SP启动的登录更复杂,因为Idp应该对传入的AuthnRequest进行一些validation。 Stub Idp中完全缺少这些validation(这是测试环境的一种想法)。 实现SP启动的登录绝对是可能的,但要安全地执行它需要做更多的工作。