我很难从各种来源获得明确的指导,如何修改我现有的ASP.NET应用程序(如果这很重要--基于表单身份验证的旧web表单)如何通过SAML在用户上接受单个签名。具体来说,我们正在寻找连接到Okta。我已经得到了OpenID连接与Okta的工作,但我们的客户特别希望通过Okta的SAML。我们还希望通过SAML在未来支持其他身份提供者。
我已经在Okta设置了应用程序,并获得了我的x509证书和元数据,但是从那里开始,我感到很困难。我读过很多相互矛盾的信息--一些消息来源说,SAML2内置于.Net 4.5及以上版本中,但另一些人则表示它不支持SAML2协议,而且我没有找到与Azure和ADFS紧密结合的好例子。我看过这个回购,但显然它不支持SHA256,这就是我从Okta那里得到的。此外,关于该库的文档也非常缺乏。我的大多数互联网搜索似乎发现过时或冲突的信息,如何通过SAML在.Net上实现单点登录。
Okta自己的文档集中在OIDC或它们自己的API上,将SAML实现留给集成器。
有人能告诉我一些ASP.Net SSO与SAML2的当前示例吗?最好是web表单应用程序,而不是MVC。
提前谢谢你。
发布于 2018-03-15 10:24:25
最后,您所要做的就是在应用程序中提供一个新的SAML端点,并处理进出的内容。它所做的就是检测用户在您的应用程序中是否有会话。如果不是,使用IdP将它们重定向到它们的SAMLRequest,然后等待浏览器使用SAMLResponse返回到您的ACS (属性消费者服务)端点。如果SAMLResponse中的属性足够,请将用户登录到应用程序中。
SAML对登录、会话或类似的应用程序一无所知。它只是一个XML包,用来管理登录等等。
使用用户名/密码登录的通常方法如下:
https://yourapp.com/login
因此SAML可能是:
https://yourapp.com/sso
若要支持多个身份提供程序,请添加一个entityID参数:
https://yourapp.com/sso?entityID=https://some.idp.com/shibboleth
从其元数据加载IdP的登录页面URL,使用entityID参数加载元数据。将浏览器发送到该URL以启动SAML进程。
所以这个过程或多或少是:
您将需要为您打算使用的每个IdP提供SAML元数据,它们将需要您的应用程序的SAML元数据,因为您是一个SP (服务提供者)。
https://stackoverflow.com/questions/49287149
复制相似问题