Sitecore Sustainsys SAML 2.0 SSO未保留SAML请求/SAML响应
我已经用Sustainsys.Saml2 Nuget包实现了SAML身份验证。身份验证过程在Azure AD中正常工作,用户在登录到/saml2/acs后被重定向。然而,我希望它能像SSO一样工作。我有一些嵌入式tablaeu仪表板,这些仪表板也配置为在Azure AD身份验证中使用同一租户,但当我尝试呈现这些嵌入式仪表板时,出现以下错误: “AADSTS750054:SAMLRequest或SAMLResponse必须作为查询字符串参数出现在SAML重定向绑定的HTTP请求中。” 我已经尝试了很多方法,例如,使用身份提供者发起的流(因此我们从Azure AD获得的用户访问Url,用于IDP发起的流)而不是服务提供者流(也尝试了SP发起的流)。似乎在身份验证之后,我的应用程序(顺便说一下,是用Sitecore构建的)没有保留从Azure AD收到的SAML响应/SAML请求(尽管我在SAML tracer中看到了这一点)。我正在使用HttpRedirect绑定 有人知道可能遗漏了什么吗?这是我正在使用的代码:Sitecore Sustainsys SAML 2.0 SSO未保留SAML请求/SAML响应,sitecore,single-sign-on,saml-2.0,sustainsys-saml2,Sitecore,Single Sign On,Saml 2.0,Sustainsys Saml2,我已经用Sustainsys.Saml2 Nuget包实现了SAML身份验证。身份验证过程在Azure AD中正常工作,用户在登录到/saml2/acs后被重定向。然而,我希望它能像SSO一样工作。我有一些嵌入式tablaeu仪表板,这些仪表板也配置为在Azure AD身份验证中使用同一租户,但当我尝试呈现这些嵌入式仪表板时,出现以下错误: “AADSTS750054:SAMLRequest或SAMLResponse必须作为查询字符串参数出现在SAML重定向绑定的HTTP请求中。” 我已经尝试了
var authenticationType = this.GetAuthenticationType();
var options = new Saml2AuthenticationOptions(true)
{
SPOptions = new SPOptions()
{
EntityId = new Sustainsys.Saml2.Metadata.EntityId(_spEntityId),
ReturnUrl = new Uri(_spReturnUrl),
},
AuthenticationType = authenticationType,
};
options.SPOptions.Compatibility.IgnoreMissingInResponseTo = true;
options.Notifications = new Saml2Notifications
{
AcsCommandResultCreated = (result, response) =>
{
var identityProvider = GetIdentityProvider();
((ClaimsIdentity)result.Principal.Identity).ApplyClaimsTransformations(new TransformationContext(FederatedAuthenticationConfiguration, identityProvider));
ClaimsIdentity claims = result.Principal.Identities.First();
claims.AddClaim(new Claim("idp", this.IdentityProviderName));
claims.AddClaim(new Claim("username", result.Principal.Identity.Name.Split('@').First()));
},
};
AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.NameIdentifier;
args.App.UseSaml2Authentication(options);