我在实现SLO时遇到了困难,遇到了Okta的“畸形请求”错误[403错误]。OKTA系统日志。
调试时,AuthController中的取消绑定开始出错。
[SingleLogout错误:ITfoxtec。身份。Saml2。Saml2BindingException:HTTP表单不包含SAMLRequest]
与link类似的设置:https://developer.okta.com/blog/2020/10/23/how-to-authenticate-with-saml-in-aspnet-core-and-csharp
[服务提供商]
_布局
<form class="form-inline" asp-controller="Auth" asp-action="Logout">
<button type="submit">Logout</button>
</form>
AuthController
[HttpPost("Logout")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Logout()
{
...... // as per link mentioned
return binding.Bind(saml2LogoutRequest).ToActionResult();
}
[Route("LoggedOut")]
public IActionResult LoggedOut()
{
...... // as per link mentioned
return Redirect(Url.Content("~/"));
}
[Route("SingleLogout")]
public async Task<IActionResult> SingleLogout()
{
...... // as per link mentioned
requestBinding.Unbind(Request.ToGenericHttpRequest(), logoutRequest); // Error at Unbind
...... // as per link mentioned
return responsebinding.Bind(saml2LogoutResponse).ToActionResult();
}
启动
services.Configure<Saml2Configuration>(saml2Configuration => {
saml2Configuration.AllowedAudienceUris.Add(saml2Configuration.Issuer);
EntityDescriptor entityDescriptor = new EntityDescriptor();
entityDescriptor.ReadIdPSsoDescriptorFromUrl(new Uri(Configuration["Saml2:IdPMetadata"]));
if (entityDescriptor.IdPSsoDescriptor != null) {
saml2Configuration.SingleSignOnDestination = entityDescriptor.IdPSsoDescriptor.SingleSignOnServices.First().Location;
saml2Configuration.SingleLogoutDestination = entityDescriptor.IdPSsoDescriptor.SingleLogoutServices.First().Location;
saml2Configuration.SignatureValidationCertificates
.AddRange(entityDescriptor.IdPSsoDescriptor.SigningCertificates);
} else {
throw new Exception("IdPSsoDescriptor not loaded from metadata.");
}
});
应用程序设置。json
"Saml2": {
"IdPMetadata": "https://dev-00159484.okta.com/app/exk1hb8d9uOnEZoCd5d7/sso/saml/metadata",
"Issuer": "SAML_TEST",
"SignatureAlgorithm": "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256",
"SigningCertificateFile": "Logs\\MyServer.pfx",
"SigningCertificatePassword": "password",
"CertificateValidationMode": "ChainTrust",
"RevocationMode": "NoCheck"
}
XML注销请求
<saml2p:LogoutRequest
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_a6bc814d-f94d-4226-9411-1e6db8a02571"
Version="2.0"
IssueInstant="2021-11-01T07:56:26.997Z"
Destination="https://dev-00159484.okta.com/app/dev-00159484_samltest_1/exk1hb8d9uOnEZoCd5d7/slo/saml"
NotOnOrAfter="2021-11-01T08:06:26.997Z">
<saml2:Issuer>SAML_TEST</saml2:Issuer>
<saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">Newbie@email.com</saml2:NameID>
<saml2p:SessionIndex>_3d179409-2239-46c8-8d55-2ac811931dc4</saml2p:SessionIndex>
</saml2p:LogoutRequest>
XML SingleLogout请求
<saml2p:LogoutRequest
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_4970c041-f071-4ed8-9fad-f79221abf703" Version="2.0" IssueInstant="2021-11-01T02:51:34.877Z"
Destination="https://dev-00159484.okta.com/app/dev-00159484_samltest_1/exk1hb8d9uOnEZoCd5d7/slo/saml" NotOnOrAfter="2021-11-01T03:01:34.877Z">
<saml2:Issuer>SAML_TEST</saml2:Issuer>
</saml2p:LogoutRequest>
XML注销响应
<saml2p:LogoutResponse
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_0dfec8db-eb58-4425-bb73-713e4a8a7b26"
Version="2.0"
IssueInstant="2021-11-01T02:51:35.019Z"
Destination="https://dev-00159484.okta.com/app/dev-00159484_samltest_1/exk1hb8d9uOnEZoCd5d7/slo/saml"
InResponseTo="_4970c041-f071-4ed8-9fad-f79221abf703">
<saml2:Issuer>SAML_TEST</saml2:Issuer>
<saml2p:Status>
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:RequestDenied" />
</saml2p:Status>
</saml2p:LogoutResponse>
[身份提供者]
Okta SSO配置和Okta SLO配置
https://github.com/ITfoxtec/ITfoxtec.Identity.Saml2/tree/master/test无法进入SingleLogout路由。
OKTA注销SAML应用程序未找到更多信息。
https://www.samltool.com/validate_logout_req.php点击错误:SAML注销请求无效。与saml-schema-protocol-2.0不匹配。xsd
您的LogoutRequest似乎缺少一些字段:
即:NameID谁正在注销?应该是AuthnRequest响应中的NameID。断言中的SessionIndex也很适合添加,因为如果支持,它将仅注销该会话。
<?xml version="1.0" standalone="yes"?>
<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
IssueInstant="2021-11-07T02:31:35Z"
Destination="https://dev-00159484.okta.com/app/dev-00159484_samltest_1/exk1hb8d9uOnEZoCd5d7/slo/saml"
Version="2.0"
ID="NETSAML2_e4b4513d60a464508c75e311cf8e4215">
<saml:Issuer>SAML_TEST</saml:Issuer>
<saml:NameID NameQualifier="https://dev-00159484.okta.com/app/dev-00159484_samltest_1/exk1hb8d9uOnEZoCd5d7/slo/saml"
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
SPNameQualifier="SAML_TEST">timlegge@wherver.com</saml:NameID>
<samlp:SessionIndex>59cd6620-8c9d-48a6-b4cc-8f63413f9f68</samlp:SessionIndex>
</samlp:LogoutRequest>
我们在Azure中实现Web应用程序和主机。然后我们希望使用Microsoft Azure ACS支持的SSO功能。查看我们网站的条件是用户只需在整个登录IdP过程中提供电子邮件地址。当我们实施和配置Web应用程序时,我们会按照网站上的所有说明进行操作,如下所示http://blog.2mas.xyz/configuring-windows-azure-active-directory-acces
我想使用SAML2将OKTA与CAS集成。0协议, 我想使用OKTA作为中间件,所以我将通过OKTA配置我的应用程序,然后OKTA将与客户端SSO通信, 例如:点击登录url时,页面应重定向到客户端SSO页面(支持SAML2.0),如CAS或Okta本身,客户端将使用该页面登录,然后该页面将向Okta返回一些详细信息,这样我就可以获得该详细信息并进行进一步授权。 我不想将每个SSO配置到我的系统中
我想把PowerShell和Jenkins集成起来。我发现很难解决这个错误,因为我的PowerShell脚本作业失败了,如下所示。
我正在与Visual Studio2015一起使用PayPal REST API。我在我的沙箱上收到了一个“格式错误的请求”,用paypal存储的ccard支付(向paypal api传递一个令牌)。调试ID:5B98F22095BA7 如何捕获提交到PayPal的请求,以便将其与预期的请求格式进行比较?或者,有人能给我指出一个工具,它会给出我的调试ID的详细信息吗? 谢谢! ?详细信息{payp
清除浏览器缓存并重新启动 恢复到GIT中当时正在工作的旧提交 重新启动终端 运行其他正常运行的rails应用程序
在第一次尝试使用IntelliJ创建maven项目时,即使在将. cher文件导入cacerts之后,我也会收到以下错误。 无法传输工件org.apache.maven.plugins:maven-clee-plugin:pom:2.5 from/to Central(https://repo.maven.apache.org/maven2):PKIX路径构建失败:sun.security.pro