SAML無効化API

SAML LogoutRequestメッセージをElasticsearchに送信します。

このAPIは、Kibana以外のカスタムWebアプリケーションでの使用を目的としています。Kibanaを使用している場合は、Elastic StackでのSAMLシングルサインオンの設定を参照してください。

リクエスト

POST /_security/saml/invalidate

説明

ログアウトリクエストは、IdPが開始したシングルログアウト中にSAML IdPから送信されます。カスタムWebアプリケーションは、このAPIを使用してElasticsearchにLogoutRequestを処理させることができます。リクエストの検証が成功すると、Elasticsearchはその特定のSAMLプリンシパルに対応するアクセストークンとリフレッシュトークンを無効化し、ユーザーがIdPにリダイレクトされるためのSAML LogoutResponseメッセージを含むURLを提供します。

Elasticsearchは、SAML APIを介して必要なすべてのSAML関連機能を公開しています。これらのAPIは、KibanaがSAMLベースの認証を提供するために内部で使用されますが、他のカスタムWebアプリケーションや他のクライアントでも使用できます。さらに、SAML認証APISAML認証準備APISAMLログアウトAPI、およびSAML完全ログアウトAPIも参照してください。

リクエストボディ

  • acs
  • (オプション、文字列) 使用する必要があるElasticsearchのSAMLレルムのAssertion Consumer Service URL。 このパラメータまたはrealmパラメータのいずれかを指定する必要があります。
  • query_string
  • (必須、文字列) ユーザーがSAML IdPによってシングルログアウトを開始するためにリダイレクトされたURLのクエリ部分。このクエリには、SAMLログアウトリクエストを含むSAMLRequestという名前の単一のパラメータが含まれている必要があります。このリクエストは、デフレートされ、Base64エンコードされています。SAML IdPがログアウトリクエストに署名している場合、URLには署名に使用されたアルゴリズムと署名値自体を含むSigAlgおよびSignatureという名前の2つの追加パラメータが含まれている必要があります。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 IdPにリダイレクトされるためのパラメータとしてのSAMLログアウトレスポンス。

以下の例は、SAMLログアウトリクエストで識別されたユーザーに関連するレルムsaml1のすべてのトークンを無効化します:

Python

  1. resp = client.security.saml_invalidate(
  2. 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",
  3. realm="saml1",
  4. )
  5. print(resp)

Js

  1. const response = await client.security.samlInvalidate({
  2. query_string:
  3. "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",
  4. realm: "saml1",
  5. });
  6. console.log(response);

コンソール

  1. POST /_security/saml/invalidate
  2. {
  3. "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",
  4. "realm" : "saml1"
  5. }

Js

  1. {
  2. "redirect" : "https://my-idp.org/logout/SAMLResponse=....",
  3. "invalidated" : 2,
  4. "realm" : "saml1"
  5. }