我正在努力将 Sustainsys.Saml2 与 Gluu 服务器结合使用。我正在使用 Sustainsys.Saml2 2.2.0、Sustainsys.Saml2.Mvc 2.2.0 和 Gluu 3.1.6。我正在使用的应用程序是针对 .NET 4.6.2 编译的 MVC 应用程序。这是发生的网络流量:
获取https://localhost:44300/Saml2/SignIn
GET https://lb/idp/profile/SAML2/Redirect/SSO
QueryString:
SAMLRequest = fZHBasMwDIbvhb6D8b2zlyVtItJCWC+FjkGz7rCbY6vUkNiZ5Yw9/tJsg/awXX/pE5+kklTXJj1UQzy7A74PSJF9dq0j+K6s+RAceEWWwKkOCaKGunraQ3InoQ8+eu1bfs38jygiDNF6x9luu+bWFMVS5U2Kic6aVOpTvlK5MphnS6OylTGcvWKgEVjzkR8pogF3jqJycYzkfbGQ+SJJXmQOqYRMvnG2HdewTsWJOsfYEwjRNsKaXozOJ9uiuBgl4oDGBtRR1PUzZ9Wv3KN3NHQYagwfVuPxsL+a47Vqz54ipOmDlKK+LC0qTXwznzFWTkeASTNs/oBKcdM1n/0Et5/ YfAE=
RelayState = XyC...IDP登录处理等
POST https://localhost:44300/Saml2/Acs 正文
:
RelayState = XyC...
SAMLResponse = PD94...
这是完整网络流量的截图: https ://i.stack.imgur.com/NvS20.png
登录过程结束时的结果是以下异常:
Sustainsys.Saml2.Exceptions.NoSamlResponseFoundException:在 http 请求中找不到 Saml2 响应
奇怪的是,如果我刷新我的应用程序,异常就会消失并且我正确登录。
我的 Sustainsys.Saml2 配置如下:
<sustainsys.saml2 entityId="https://localhost:44300" returnUrl="https://localhost:44300/Saml2/Acs" minIncomingSigningAlgorithm="SHA1">
<identityProviders>
<add entityId="https://lb/idp/shibboleth" signOnUrl="https://lb/idp/profile/SAML2/Redirect/SSO" logoutUrl="https://lb/idp/Authn/oxAuth/logout" allowUnsolicitedAuthnResponse="true" binding="HttpRedirect">
<signingCertificate storeName="TrustedPeople" storeLocation="LocalMachine" findValue="..." x509FindType="FindByThumbprint" />
</add>
</identityProviders>
<serviceCertificates>
<add storeName="My" storeLocation="LocalMachine" findValue="..." x509FindType="FindByThumbprint" />
</serviceCertificates>
</sustainsys.saml2>
更多观察:
- 我正在使用的带有 Sustainsys.Saml2 的当前应用程序在使用 WSO2 或 RedHat SSO 作为 IDP 时可以正常工作。只是不使用 Gluu 服务器。
- 将https://github.com/mcguinness/saml-sp上的应用程序与 Gluu 服务器一起使用时,连接正常工作。
任何帮助是极大的赞赏!