SAML 完成注销 API
编辑SAML 完成注销 API
编辑验证从 SAML IdP 发送的注销响应。
此 API 旨在供 Kibana 以外的自定义 Web 应用程序使用。如果您正在使用 Kibana,请参阅在 Elastic Stack 上配置 SAML 单点登录。
请求
编辑POST /_security/saml/complete_logout
描述
编辑SAML IdP 在处理SP 发起的 SAML 单点注销后,可能会将注销响应发回 SP。此 API 通过确保内容相关并验证其签名来验证响应。如果验证过程成功,则返回一个空响应。IdP 可以使用 HTTP-Redirect 或 HTTP-Post 绑定发送响应。此 API 的调用者必须相应地准备请求,以便此 API 可以处理其中任何一个。
Elasticsearch 通过 SAML API 公开所有必要的 SAML 相关功能。这些 API 在内部由 Kibana 使用,以提供基于 SAML 的身份验证,但也可以由其他自定义 Web 应用程序或其他客户端使用。另请参阅SAML 身份验证 API、SAML 准备身份验证 API、SAML 失效 API 和SAML 注销 API。
请求体
编辑-
realm
- (必需,字符串)Elasticsearch 中 SAML realm 的名称,该配置用于验证注销响应。
-
ids
- (必需,数组)一个 JSON 数组,其中包含 API 的调用者当前用户的所有有效的 SAML 请求 ID。
-
query_string
- (可选,字符串)如果 SAML IdP 使用 HTTP-Redirect 绑定发送注销响应,则此字段必须设置为重定向 URI 的查询字符串。
-
queryString
-
[7.14.0] 在 7.14.0 中已弃用。请改用 query_string 请参阅
query_string
-
content
- (可选,字符串)如果 SAML IdP 使用 HTTP-Post 绑定发送注销响应,则此字段必须设置为注销响应中
SAMLResponse
表单参数的值。
示例
编辑以下示例使用 HTTP-Redirect 绑定验证 SAML IdP 发送的注销响应
resp = client.security.saml_complete_logout( realm="saml1", ids=[ "_1c368075e0b3..." ], query_string="SAMLResponse=fZHLasMwEEVbfb1bf...&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1&Signature=CuCmFn%2BLqnaZGZJqK...", ) print(resp)
const response = await client.security.samlCompleteLogout({ realm: "saml1", ids: ["_1c368075e0b3..."], query_string: "SAMLResponse=fZHLasMwEEVbfb1bf...&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1&Signature=CuCmFn%2BLqnaZGZJqK...", }); console.log(response);
POST /_security/saml/complete_logout { "realm": "saml1", "ids": [ "_1c368075e0b3..." ], "query_string": "SAMLResponse=fZHLasMwEEVbfb1bf...&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1&Signature=CuCmFn%2BLqnaZGZJqK..." }
如果注销响应是使用 HTTP-Post 绑定发送的,则可以按以下方式进行验证
resp = client.security.saml_complete_logout( realm="saml1", ids=[ "_1c368075e0b3..." ], content="PHNhbWxwOkxvZ291dFJlc3BvbnNlIHhtbG5zOnNhbWxwPSJ1cm46...", ) print(resp)
const response = await client.security.samlCompleteLogout({ realm: "saml1", ids: ["_1c368075e0b3..."], content: "PHNhbWxwOkxvZ291dFJlc3BvbnNlIHhtbG5zOnNhbWxwPSJ1cm46...", }); console.log(response);
POST /_security/saml/complete_logout { "realm": "saml1", "ids": [ "_1c368075e0b3..." ], "content": "PHNhbWxwOkxvZ291dFJlc3BvbnNlIHhtbG5zOnNhbWxwPSJ1cm46..." }
API 在成功时返回一个空响应。