1
0

saml-invalidate-api.asciidoc 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. [role="xpack"]
  2. [[security-api-saml-invalidate]]
  3. === SAML invalidate API
  4. ++++
  5. <titleabbrev>SAML invalidate</titleabbrev>
  6. ++++
  7. .New API reference
  8. [sidebar]
  9. --
  10. For the most up-to-date API details, refer to {api-es}/group/endpoint-security[Security APIs].
  11. --
  12. Submits a SAML LogoutRequest message to {es} for consumption.
  13. NOTE: This API is intended for use by custom web applications other than {kib}.
  14. If you are using {kib}, see the <<saml-guide-stack>>.
  15. [[security-api-saml-invalidate-request]]
  16. ==== {api-request-title}
  17. `POST /_security/saml/invalidate`
  18. [[security-api-saml-invalidate-desc]]
  19. ==== {api-description-title}
  20. The logout request comes from the SAML IdP during an IdP initiated Single Logout.
  21. The custom web application can use this API to have {es} process the `LogoutRequest`.
  22. After successful validation of the request, {es} invalidates the access token
  23. and refresh token that corresponds to that specific SAML principal and provides
  24. a URL that contains a SAML LogoutResponse message, so that the user can be
  25. redirected back to their IdP.
  26. {es} exposes all the necessary SAML related functionality via the SAML APIs.
  27. These APIs are used internally by {kib} in order to provide SAML based
  28. authentication, but can also be used by other custom web applications or other
  29. clients. See also <<security-api-saml-authenticate,SAML authenticate API>>,
  30. <<security-api-saml-prepare-authentication,SAML prepare authentication API>>,
  31. <<security-api-saml-logout,SAML logout API>>, and
  32. <<security-api-saml-complete-logout, SAML complete logout API>>.
  33. [[security-api-saml-invalidate-request-body]]
  34. ==== {api-request-body-title}
  35. `acs`::
  36. (Optional, string) The Assertion Consumer Service URL that matches the one of the SAML
  37. realm in {es} that should be used. You must specify either this parameter or the `realm` parameter.
  38. `query_string`::
  39. (Required, string) The query part of the URL that the user was redirected to by the SAML
  40. IdP to initiate the Single Logout. This query should include a single
  41. parameter named `SAMLRequest` that contains a SAML logout request that is
  42. deflated and Base64 encoded. If the SAML IdP has signed the logout request,
  43. the URL should include two extra parameters named `SigAlg` and `Signature`
  44. that contain the algorithm used for the signature and the signature value itself.
  45. In order for {es} to be able to verify the IdP's signature, the value of the query_string field must be an exact match to the string provided by the browser.
  46. The client application must not attempt to parse or process the string in any way.
  47. `queryString`::
  48. deprecated:[7.14.0, "Use query_string instead"]
  49. See `query_string`.
  50. `realm`::
  51. (Optional, string) The name of the SAML realm in {es} the configuration. You must specify
  52. either this parameter or the `acs` parameter.
  53. [[security-api-saml-invalidate-response-body]]
  54. ==== {api-response-body-title}
  55. `invalidated`::
  56. (integer) The number of tokens that were invalidated as part of this logout.
  57. `realm`::
  58. (string) The realm name of the SAML realm in {es} that authenticated the user.
  59. `redirect`::
  60. (string) A SAML logout response as a parameter so that the user can be
  61. redirected back to the SAML IdP.
  62. [[security-api-saml-invalidate-example]]
  63. ==== {api-examples-title}
  64. The following example invalidates all the tokens for realm `saml1` pertaining to
  65. the user that is identified in the SAML Logout Request:
  66. [source,console]
  67. --------------------------------------------------
  68. POST /_security/saml/invalidate
  69. {
  70. "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",
  71. "realm" : "saml1"
  72. }
  73. --------------------------------------------------
  74. // TEST[skip:handled in IT]
  75. [source,js]
  76. --------------------------------------------------
  77. {
  78. "redirect" : "https://my-idp.org/logout/SAMLResponse=....",
  79. "invalidated" : 2,
  80. "realm" : "saml1"
  81. }
  82. --------------------------------------------------
  83. // NOTCONSOLE