SAML 完全注销 API
编辑SAML 完全注销 API
编辑验证从 SAML IdP 发送的注销响应。
此 API 旨在供 Kibana 以外的自定义 Web 应用程序使用。如果您使用 Kibana,请参阅 在 Elastic Stack 上配置 SAML 单点登录。
请求
编辑POST /_security/saml/complete_logout
描述
编辑在处理 SP 发起的 SAML 单一注销 后,SAML IdP 可能会将注销响应发送回 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 域的名称,用于验证注销响应的配置。
-
ids
- (必填,数组) 包含 API 调用方当前用户的所有有效 SAML 请求 ID 的 JSON 数组。
-
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 在成功时返回空响应。