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認証API、SAML認証準備API、SAMLログアウト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
resp = client.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",
)
print(resp)
Js
const response = await client.security.samlInvalidate({
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",
});
console.log(response);
コンソール
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"
}
Js
{
"redirect" : "https://my-idp.org/logout/SAMLResponse=....",
"invalidated" : 2,
"realm" : "saml1"
}