SAML 准备认证 API
编辑SAML 准备认证 API
编辑基于 Elasticsearch 中相应 SAML 域的配置,创建一个 SAML 认证请求 (<AuthnRequest>
) 作为 URL 字符串。
此 API 旨在供 Kibana 以外的自定义 Web 应用程序使用。如果您正在使用 Kibana,请参阅在 Elastic Stack 上配置 SAML 单点登录。
请求
编辑POST /_security/saml/prepare
描述
编辑此 API 返回一个指向 SAML 身份提供程序的 URL。您可以使用该 URL 重定向用户的浏览器,以便继续认证过程。该 URL 包含一个名为 SAMLRequest
的参数,其中包含一个经过压缩和 Base64 编码的 SAML 认证请求。如果配置指示 SAML 认证请求应签名,则该 URL 将具有两个额外的参数,名为 SigAlg
和 Signature
。这些参数包含用于签名的算法和签名值本身。它还会返回一个随机字符串,用于唯一标识此 SAML 认证请求。此 API 的调用者需要存储此标识符,因为它需要在认证过程的后续步骤中使用(请参阅SAML 认证 API)。
Elasticsearch 通过 SAML API 公开所有必要的 SAML 相关功能。这些 API 在内部由 Kibana 使用,以提供基于 SAML 的认证,但也可以供其他自定义 Web 应用程序或其他客户端使用。另请参阅 SAML 认证 API、SAML 失效 API、SAML 注销 API 和 SAML 完成注销 API。
请求体
编辑-
acs
- (可选,字符串)断言消费者服务 URL,该 URL 与 Elasticsearch 中某个 SAML 域的 URL 匹配。该域用于生成认证请求。您必须指定此参数或
realm
参数。 -
realm
- (可选,字符串)Elasticsearch 中 SAML 域的名称,将使用该域的配置来生成认证请求。您必须指定此参数或
acs
参数。 -
relay_state
- (可选,字符串)一个字符串,将作为
RelayState
查询参数包含在此 API 返回的重定向 URL 中。如果认证请求已签名,则此值将用作签名计算的一部分。
响应体
编辑-
id
- (字符串)由 API 调用者存储的 SAML 请求的唯一标识符。
-
realm
- (字符串)用于构造认证请求的 Elasticsearch 域的名称。
-
redirect
- (字符串)要将用户重定向到的 URL。
示例
编辑以下示例为名为 saml1
的 SAML 域生成 SAML 认证请求。
resp = client.security.saml_prepare_authentication( realm="saml1", ) print(resp)
const response = await client.security.samlPrepareAuthentication({ realm: "saml1", }); console.log(response);
POST /_security/saml/prepare { "realm" : "saml1" }
以下示例为断言使用者服务 URL 与 `https://kibana.org/api/security/saml/callback` 匹配的 SAML 域生成 SAML 认证请求
resp = client.security.saml_prepare_authentication( acs="https://kibana.org/api/security/saml/callback", ) print(resp)
const response = await client.security.samlPrepareAuthentication({ acs: "https://kibana.org/api/security/saml/callback", }); console.log(response);
POST /_security/saml/prepare { "acs" : "https://kibana.org/api/security/saml/callback" }
此 API 返回以下响应
{ "redirect": "https://my-idp.org/login?SAMLRequest=fVJdc6IwFP0rmbwDgUKLGbFDtc462%2B06FX3Yl50rBJsKCZsbrPbXL6J22hdfk%2FNx7zl3eL%2BvK7ITBqVWCfVdRolQuS6k2iR0mU2dmN6Phgh1FTQ8be2rehH%2FWoGWdESF%2FPST0NYorgElcgW1QG5zvkh%2FPfHAZbwx2upcV5SkiMLYzmqsFba1MAthdjIXy5enhL5a23DPOyo6W7kGBa7cwhZ2gO7G8OiW%2BR400kORt0bag7fzezAlk24eqcD2OxxlsNN5O3MdsW9c6CZnbq7rntF4d3s0D7BaHTZhIWN52P%2BcjiuGRbDU6cdj%2BEjJbJLQv4N4ADdhxBiEZbQuWclY4Q8iABbCXczCdSiKMAC%2FgyO2YqbQgrIJDZg%2FcFjsMD%2Fzb3gUcBa5sR%2F9oWR%2BzuJBqlPG14Jbn0DIf2TZ3Jn%2FXmSUrC5ddQB6bob37uZrJdeF4dIDHV3iuhb70Ptq83kOz53ubDLXlcwPJK0q%2FT42AqxIaAkVCkqm2tRgr49yfJGFU%2FZQ3hy3QyuUpd7obPv97kb%2FAQ%3D%3D"}", "realm": "saml1", "id": "_989a34500a4f5bf0f00d195aa04a7804b4ed42a1" }