Skip to content

Commit 5ee336f

Browse files
authored
[7.x] Document support of OIDC Implicit flow in Kibana. (#46329)
1 parent bd7f9d5 commit 5ee336f

File tree

2 files changed

+14
-15
lines changed

2 files changed

+14
-15
lines changed

docs/reference/settings/security-settings.asciidoc

+3-3
Original file line numberDiff line numberDiff line change
@@ -1284,9 +1284,9 @@ The OAuth 2.0 Client Secret that was assigned to {es} during registration
12841284
at the OpenID Connect Provider
12851285

12861286
`rp.redirect_uri`::
1287-
The Redirect URI within {kib}. Typically this is the
1288-
"api/security/v1/oidc" endpoint of your Kibana server. For example,
1289-
`https://kibana.example.com/api/security/v1/oidc`.
1287+
The Redirect URI within {kib}. If you want to use the authorization code flow, this is the
1288+
"api/security/v1/oidc" endpoint of your {kib} server. If you want to use the implicit flow, it is the "api/security/v1/oidc/implicit" endpoint.
1289+
For example, `https://kibana.example.com/api/security/v1/oidc`.
12901290

12911291
`rp.response_type`::
12921292
OAuth 2.0 Response Type value that determines the authorization

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

+11-12
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55

66
The Elastic Stack supports single sign-on (SSO) using OpenID Connect via {kib} using
77
{es} as the backend service that holds most of the functionality. {kib} and {es}
8-
together represent an OpenID Connect Relying Party (RP) that supports the Authorization
9-
Code Flow as this is defined in the OpenID Connect specification.
8+
together represent an OpenID Connect Relying Party (RP) that supports the authorization code flow and implicit flow as these are defined in the OpenID Connect specification.
109

1110
This guide assumes that you have an OpenID Connect Provider where the
1211
Elastic Stack Relying Party will be registered.
@@ -39,8 +38,8 @@ RP that you commonly need to provide for registration are the following:
3938
nor the Elastic Stack implementation impose any constraints on this value.
4039
- `Redirect URI`: This is the URI where the OP will redirect the user's browser after authentication. The
4140
appropriate value for this will depend on your setup and whether or not {kib} sits behind a proxy or
42-
load balancer. It will typically be +$\{kibana-url}/api/security/v1/oidc+ where _$\{kibana-url}_
43-
is the base URL for your {kib} instance. You might also see this called `Callback URI`.
41+
load balancer. It will typically be +$\{kibana-url}/api/security/v1/oidc+ (for the authorization code flow) or +$\{kibana-url}/api/security/v1/oidc/implicit+ (for the implicit flow) where _$\{kibana-url}_ is the base URL for your {kib} instance. You might also see this
42+
called `Callback URI`.
4443

4544
At the end of the registration process, the OP will assign a Client Identifier and a Client Secret for the RP ({stack}) to use.
4645
Note these two values as they will be used in the {es} configuration.
@@ -158,8 +157,8 @@ op.authorization_endpoint::
158157

159158
op.token_endpoint::
160159
The URL for the Token Endpoint in the OpenID Connect Provider. This is the endpoint where
161-
{es} will send a request to exchange the code for an ID Token, in the case where the Authorization Code
162-
flow is used. The value for this setting should be provided by your OpenID Connect Provider.
160+
{es} will send a request to exchange the code for an ID Token. This setting is optional when
161+
you use the implicit flow. The value for this setting should be provided by your OpenID Connect Provider.
163162

164163
op.jwkset_path::
165164
The path to a file or a URL containing a JSON Web Key Set with the key material that the OpenID Connect
@@ -522,23 +521,23 @@ The three additional settings that are required for OpenID Connect support are s
522521

523522
[source, yaml]
524523
------------------------------------------------------------
525-
xpack.security.authProviders: [oidc]
524+
xpack.security.authc.providers: [oidc]
526525
xpack.security.authc.oidc.realm: "oidc1"
527526
server.xsrf.whitelist: [/api/security/v1/oidc]
528527
------------------------------------------------------------
529528

530529
The configuration values used in the example above are:
531530

532-
`xpack.security.authProviders`::
531+
`xpack.security.authc.providers`::
533532
Set this to `[ oidc ]` to instruct {kib} to use OpenID Connect single sign-on as the
534533
authentication method. This instructs Kibana to attempt to initiate an SSO flow
535534
everytime a user attempts to access a URL in Kibana, if the user is not already
536535
authenticated. If you also want to allow users to login with a username and password,
537-
you must enable the `basic` authProvider too. For example:
536+
you must enable the `basic` authentication provider too. For example:
538537

539538
[source, yaml]
540539
------------------------------------------------------------
541-
xpack.security.authProviders: [oidc, basic]
540+
xpack.security.authc.providers: [oidc, basic]
542541
------------------------------------------------------------
543542

544543
This will allow users that haven't already authenticated with OpenID Connect to
@@ -552,8 +551,8 @@ for this Kibana instance.
552551
{kib} has in-built protection against _Cross Site Request Forgery_ attacks, which
553552
is designed to prevent the {kib} server from processing requests that
554553
originated from outside the {kib} application.
555-
In order to support OpenID Connect messages that originate from your
556-
OP or a third party (see <<third-party-login>>, we need to explicitly _whitelist_ the
554+
If you use the authorization code flow, {kib} needs to support unsolicited messages that originate from your
555+
OP or a third party (see <<third-party-login>>). In order to do so, you must explicitly _whitelist_ the
557556
OpenID Connect authentication endpoint within {kib}, so that the {kib} server will
558557
not reject these external messages.
559558

0 commit comments

Comments
 (0)