SAML 失效 API编辑

向 Elasticsearch 提交 SAML LogoutRequest 消息以供使用。

此 API 供 Kibana 以外的自定义 Web 应用程序使用。如果您使用的是 Kibana,请参阅在 Elastic Stack 上配置 SAML 单点登录

请求编辑

POST /_security/saml/invalidate

描述编辑

注销请求来自 SAML IdP 在 IdP 发起的单点注销期间。自定义 Web 应用程序可以使用此 API 让 Elasticsearch 处理 LogoutRequest。成功验证请求后,Elasticsearch 会使与该特定 SAML 主体对应的访问令牌和刷新令牌失效,并提供一个包含 SAML LogoutResponse 消息的 URL,以便用户可以重定向回其 IdP。

Elasticsearch 通过 SAML API 公开了所有必要的 SAML 相关功能。Kibana 在内部使用这些 API 来提供基于 SAML 的身份验证,但其他自定义 Web 应用程序或其他客户端也可以使用这些 API。另请参阅SAML 身份验证 APISAML 准备身份验证 APISAML 注销 APISAML 完成注销 API

请求正文编辑

acs
(可选,字符串)断言使用者服务 URL,与应使用的 Elasticsearch 中 SAML 领域的 URL 之一匹配。您必须指定此参数或 realm 参数。
query_string
(必填,字符串)用户被 SAML IdP 重定向到的 URL 的查询部分,用于启动单点注销。此查询应包含一个名为 SAMLRequest 的参数,其中包含已压缩和 Base64 编码的 SAML 注销请求。如果 SAML IdP 已对注销请求进行签名,则 URL 应包含两个名为 SigAlgSignature 的额外参数,分别包含用于签名的算法和签名值本身。为了使 Elasticsearch 能够验证 IdP 的签名,query_string 字段的值必须与浏览器提供的字符串完全匹配。客户端应用程序不得以任何方式尝试解析或处理字符串。
queryString
[7.14.0] 在 7.14.0 中已弃用。请改用 query_string 请参阅 query_string
realm
(可选,字符串)Elasticsearch 配置中 SAML 领域的名称。您必须指定此参数或 acs 参数。

响应正文编辑

invalidated
(整数)作为此注销的一部分而失效的令牌数。
realm
(字符串)Elasticsearch 中对用户进行身份验证的 SAML 领域的领域名称。
redirect
(字符串)作为参数的 SAML 注销响应,以便用户可以重定向回 SAML IdP。

示例编辑

以下示例使领域 saml1 中与 SAML 注销请求中标识的用户相关的所有令牌失效

POST /_security/saml/invalidate
{
  "query_string" : "SAMLRequest=nZFda4MwFIb%2FiuS%2BmviRpqFaClKQdbvo2g12M2KMraCJ9cRR9utnW4Wyi13sMie873MeznJ1aWrnS3VQGR0j4mLkKC1NUeljjA77zYyhVbIE0dR%2By7fmaHq7U%2BdegXWGpAZ%2B%2F4pR32luBFTAtWgUcCv56%2Fp5y30X87Yz1khTIycdgpUW9kY7WdsC9zxoXTvMvWuVV98YyMnSGH2SYE5pwALBIr9QKiwDGpW0oGVUznGeMyJZKFkQ4jBf5HnhUymjIhzCAL3KNFihbYx8TBYzzGaY7EnIyZwHzCWMfiDnbRIftkSjJr%2BFu0e9v%2B0EgOquRiiZjKpiVFp6j50T4WXoyNJ%2FEWC9fdqc1t%2F1%2B2F3aUpjzhPiXpqMz1%2FHSn4A&SigAlg=http%3A%2F%2Fwww.w3.org%2F2001%2F04%2Fxmldsig-more%23rsa-sha256&Signature=MsAYz2NFdovMG2mXf6TSpu5vlQQyEJAg%2B4KCwBqJTmrb3yGXKUtIgvjqf88eCAK32v3eN8vupjPC8LglYmke1ZnjK0%2FKxzkvSjTVA7mMQe2AQdKbkyC038zzRq%2FYHcjFDE%2Bz0qISwSHZY2NyLePmwU7SexEXnIz37jKC6NMEhus%3D",
  "realm" : "saml1"
}
{
  "redirect" : "https://my-idp.org/logout/SAMLResponse=....",
  "invalidated" : 2,
  "realm" : "saml1"
}