Skip to content

Commit 0a4b55c

Browse files
authored
[DOCS] Add RequestedAuthnContext Documentation (#32946)
Add documentation for #31238 - Add documentation for the req_authn_context_class_ref setting - Add a section in SAML Guide regarding the use of SAML Authentication Context.
1 parent 9f588c9 commit 0a4b55c

File tree

2 files changed

+45
-4
lines changed

2 files changed

+45
-4
lines changed

docs/reference/settings/security-settings.asciidoc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -861,6 +861,15 @@ The maximum amount of skew that can be tolerated between the IdP's clock and the
861861
{es} node's clock.
862862
Defaults to `3m` (3 minutes).
863863

864+
`req_authn_context_class_ref`::
865+
A comma separated list of Authentication Context Class Reference values to be
866+
included in the Requested Authentication Context when requesting the IdP to
867+
authenticate the current user. The Authentication Context of the corresponding
868+
authentication response should contain at least one of the requested values.
869+
+
870+
For more information, see
871+
{stack-ov}/saml-guide-authentication.html#req-authn-context[Requesting specific authentication methods].
872+
864873
[float]
865874
[[ref-saml-signing-settings]]
866875
===== SAML realm signing settings

x-pack/docs/en/security/authentication/saml-guide.asciidoc

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,13 @@ binding.
7676

7777
There are five configuration steps to enable SAML authentication in {es}:
7878

79-
. Enable SSL/TLS for HTTP
80-
. Enable the Token Service
81-
. Create one or more SAML realms
82-
. Configure role mappings
79+
. <<saml-enable-http,Enable SSL/TLS for HTTP>>
80+
. <<saml-enable-token,Enable the Token Service>>
81+
. <<saml-create-realm,Create one or more SAML realms>>
82+
. <<saml-role-mapping,Configure role mappings>>
8383
. Generate a SAML Metadata file for use by your Identity Provider _(optional)_
8484

85+
[[saml-enable-http]]
8586
==== Enable TLS for HTTP
8687

8788
If your {es} cluster is operating in production mode, then you must
@@ -91,6 +92,7 @@ authentication.
9192
For more information, see
9293
{ref}/configuring-tls.html#tls-http[Encrypting HTTP Client Communications].
9394

95+
[[saml-enable-token]]
9496
==== Enable the token service
9597

9698
The {es} SAML implementation makes use of the {es} Token Service. This service
@@ -356,6 +358,35 @@ address such as `[email protected]`. It is important that
356358
you make sure your regular expressions are as precise as possible so that
357359
you do not inadvertently open an avenue for user impersonation attacks.
358360

361+
[[req-authn-context]]
362+
==== Requesting specific authentication methods
363+
364+
It is sometimes necessary for a SAML SP to be able to impose specific
365+
restrictions regarding the authentication that will take place at an IdP,
366+
in order to assess the level of confidence that it can place in
367+
the corresponding authentication response. The restrictions might have to do
368+
with the authentication method (password, client certificates, etc), the
369+
user identification method during registration, and other details. {es} implements
370+
https://docs.oasis-open.org/security/saml/v2.0/saml-authn-context-2.0-os.pdf[SAML 2.0 Authentication Context], which can be used for this purpose as defined in SAML 2.0 Core
371+
Specification.
372+
373+
In short, the SAML SP defines a set of Authentication Context Class Reference
374+
values, which describe the restrictions to be imposed on the IdP, and sends these
375+
in the Authentication Request. The IdP attempts to grant these restrictions.
376+
If it cannot grant them, the authentication attempt fails. If the user is
377+
successfully authenticated, the Authentication Statement of the SAML Response
378+
contains an indication of the restrictions that were satisfied.
379+
380+
You can define the Authentication Context Class Reference values by using the `req_authn_context_class_ref` option in the SAML realm configuration. See
381+
{ref}/security-settings.html#ref-saml-settings[SAML realm settings].
382+
383+
{es} supports only the `exact` comparison method for the Authentication Context.
384+
When it receives the Authentication Response from the IdP, {es} examines the
385+
value of the Authentication Context Class Reference that is part of the
386+
Authentication Statement of the SAML Assertion. If it matches one of the
387+
requested values, the authentication is considered successful. Otherwise, the
388+
authentication attempt fails.
389+
359390
[[saml-logout]]
360391
==== SAML logout
361392

@@ -573,6 +604,7 @@ The passphrase for the keystore, if the file is encypted. This is a
573604
{ref}/secure-settings.html[secure setting] that must be set with the
574605
`elasticsearch-keystore` tool.
575606

607+
[[saml-sp-metadata]]
576608
=== Generating SP metadata
577609

578610
Some Identity Providers support importing a metadata file from the Service

0 commit comments

Comments
 (0)