我是SAML协议的新成员,我需要使用已连接的SimpleSamlPHP创建IdP与本地用户数据库。然后,我将不得不在asp.net web forms/mvc(最好是asp.net mvc)中创建一个SP。我设法将SimpleSamlPHP设置为IdP,并使用默认的saml-sql认证源/登录页面连接到本地用户数据库。可以看出:如何连接到asp.net web窗体/ asp.net mvc服务提供者(SP启动)中的SimpleSamlphp idp登录页面(SAML 2.0 p)
一旦用户登录,则返回默认SimpleSAMLPhp消费者页。正如所见:
其中:ReturnTo%3Dhttp%253A%252F%252Flocalhost%253A8080%252Fsimplesaml%252Fmodule.php%252Fcore%252Fauthenticate.php%253Fas%253Dsaml-SQL
大概是在返回URL正在被指定,并且其中authnstate是由SimpleSAMPPhp动态生成的。
有了这个,我需要创建一个asp.net webform/MVC(最好是asp.net mvc)项目,它将成为一个SP将用户重定向到simpleSAMLPhp登录页面,并且还会指定找到的所有参数在AuthnState参数中包括重定向到asp.net项目的消费者页面。我通过互联网搜索,发现WIF不支持SAML协议,并找到其他框架/库进行测试。我目前正在尝试实施OneLogin来创建一个asp.net SP @https://onelogin.zendesk.com/hc/en-us/articles/201175694-SAML-Toolkit-for-C-and-ASP-NET并遵循页面中所述的指示。我做了以下内容:在AccountSettings.certificate
- 改变配置IDP中继证书SimpleSamlPhp在AccountSettings.idp_sso_target_url
- 改变配置相匹配的SimpleSamlPhp登录网址为:http://localhost:8080/simplesaml/module.php/core/loginuserpass.php
当我开始项目的登录网址生成为: http://localhost:8080/simplesaml/module.php/core/loginuserpass.php? SAMLRequest = PHNhbWxwOkF1dGhuUmVxdWVzdCBJRD0iXzU5YTIxN2I0LTg1MGUtNDhiNy05YTU1LWVkMzU3M2U3MzUyNSIgVmVyc2lvbj0iMi4wIiBJc3N1ZUluc3RhbnQ9IjIwMTUtMDEtMjFUMDc6MTM6NTlaIiBQcm90b2NvbEJpbmRpbmc9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpiaW5kaW5nczpIVFRQLVBPU1QiIEFzc2VydGlvbkNvbnN1bWVyU2VydmljZVVSTD0iaHR0cDovL2xvY2FsaG9zdDo0OTU3My9TYW1sQ29uc3VtZXIvQ29uc3VtZS5hc3B4IiB4bWxuczpzYW1scD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIj48c2FtbDpJc3N1ZXIgeG1sbnM6c2FtbD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiI%2bdGVzdC1hcHA8L3NhbWw6SXNzdWVyPjxzYW1scDpOYW1lSURQb2xpY3kgRm9ybWF0PSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6bmFtZWlkLWZvcm1hdDp1bnNwZWNpZmllZCIgQWxsb3dDcmVhdGU9InRydWUiIC8%2bPHNhbWxwOlJlcXVlc3RlZEF1dGhuQ29udGV4dCBDb21wYXJpc29uPSJleGFjdCIgLz48c2FtbDpBdXRobkNvbnRleHRDbGFzc1JlZiB4bWxuczpzYW1sPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YXNzZXJ0aW9uIj51cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YWM6Y2xhc3NlczpQYXNzd29yZFByb3RlY3RlZFRyYW5zcG9ydDw vc2FtbDpBdXRobkNvbnRleHRDbGFzc1JlZj48L3NhbWxwOkF1dGhuUmVxdWVzdD4%3D
返回作为错误页面在SimpleSamlPHP为:
我注意到由asp.net SP所生成的URL不是以相同的格式(过滤器)作为由SAML所产生的一个-sql SimpleSamlPhp页面。如:http://localhost:8080/simplesaml/module.php/core/loginuserpass.php?AuthState=_6ecd0987b485b771d67a5ddbd62ca4b22913a12fb6%3Ahttp%3A%2F%2Flocalhost%3A8080%2Fsimplesaml%2Fmodule.php%2Fcore%2Fas_login.php%3FAuthId%3Dsaml-sql%26ReturnTo%3Dhttp%253A%252F%252Flocalhost%253A8080%252Fsimplesaml%252Fmodule.php%252Fcore%252Fauthenticate.php%253Fas%253Dsaml-sql
SimpleSamlPhp登录网址如何生成?如何在asp.net中使用OneLogin生成相同的网址?我还需要在OneLogin中配置或更改以匹配SimpleSamlPhp所需的SP身份验证重定向(参数)吗?是否还有其他框架可用于创建一个asp.net webforms/mvc(最好是asp.net mvc)SP,以连接到SimpleSamlPhp登录页面,该页面也将重定向到.net中的使用者页面(并读取令牌) SP。