Skip to content

Commit 2ffc5a0

Browse files
backport ms graph plugin docs to 8.19
1 parent 6fded6c commit 2ffc5a0

8 files changed

+125
-0
lines changed

docs/plugins/authentication.asciidoc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[[authentication]]
2+
== Authentication Plugins
3+
4+
Authentication plugins extend the functionality provided by the built-in {ref}/realms.html
5+
6+
[discrete]
7+
=== Core authentication plugins
8+
9+
<<ms-graph-authz,Microsoft Graph Authz>>::
10+
The Microsoft Graph Authz plugin uses https://learn.microsoft.com/en-us/graph/api/user-list-memberof/[Microsoft Graph] to look up group membership information from Microsoft Entra ID
11+
12+
include::ms-graph-authz.asciidoc[]
Loading
Loading
148 KB
Loading
Loading
Loading

docs/plugins/index.asciidoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ include::repository.asciidoc[]
4747

4848
include::store.asciidoc[]
4949

50+
include::authentication.asciidoc[]
51+
5052
include::integrations.asciidoc[]
5153

5254
include::authors.asciidoc[]

docs/plugins/ms-graph-authz.asciidoc

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
[[ms-graph-authz]]
2+
=== Microsoft Graph Authz
3+
4+
The Microsoft Graph Authz plugin uses https://learn.microsoft.com/en-us/graph/api/user-list-memberof[Microsoft Graph] to look up group membership information from Microsoft Entra ID.
5+
6+
This is primarily intended to work around the Microsoft Entra ID maximum group size limit (see https://learn.microsoft.com/en-us/security/zero-trust/develop/configure-tokens-group-claims-app-roles#group-overages[Group overages]).
7+
8+
:plugin_name: microsoft-graph-authz
9+
include::install_remove.asciidoc[]
10+
11+
[[configure-azure]]
12+
==== Configure Azure
13+
14+
To make API calls to Microsoft Graph, Elasticsearch requires Azure credentials with the correct permissions.
15+
16+
[discrete]
17+
==== Create a custom Azure Application
18+
19+
. Log in to the https://portal.azure.com[Azure portal] and go to Microsoft Entra ID.
20+
. To register a new application, click *Enterprise applications* > *New application*.
21+
. Click *Create your own application*, provide a name, and select the *Integrate any other application you don’t find in the gallery* option.
22+
23+
image::images/01-create-enterprise-application.png["create your own application" page]
24+
25+
[discrete]
26+
==== Configure the custom Application
27+
28+
. In the https://portal.azure.com[Azure portal], go to Microsoft Entra ID.
29+
. Under *App registrations*, select the *All applications* tab, and then find the application created in the previous section.
30+
+
31+
image::images/02-find-app-registration.png[find your app registration]
32+
. Take note of the *Application (client) ID* and *Tenant ID* shown here.
33+
These will be needed to configure Elasticsearch later.
34+
+
35+
image::images/03-get-application-id.png[get your application ID]
36+
. Under *Manage* > *Certificates & secrets*
37+
- Create a new client secret.
38+
- Take note of your new client secret's *Value*.
39+
This is needed later, and is only displayed once.
40+
+
41+
image::images/04-create-client-secret.png[get your client secret]
42+
. Under Manage > API permissions
43+
.. Go to *Add a permission*.
44+
.. Choose *Microsoft Graph*.
45+
.. Choose *Application permissions*.
46+
.. Select `Directory.ReadWrite.All`, `Group.ReadWrite.All`, `User.Read.All`.
47+
.. Note that an Azure Admin will need to approve these permissions before the credentials can be used.
48+
+
49+
image::images/05-configure-api-permissions.png[configure api permissions]
50+
51+
==== Configuration properties
52+
53+
After the plugin is installed, the following configuration settings are available:
54+
55+
xpack.security.authc.realms.microsoft_graph.*.order::
56+
The priority of the realm within the realm chain.
57+
Realms with a lower order are consulted first.
58+
The value must be unique for each realm.
59+
This setting is required.
60+
61+
xpack.security.authc.realms.microsoft_graph.*.tenant_id::
62+
Your Microsoft Entra ID https://learn.microsoft.com/en-us/entra/fundamentals/how-to-find-tenant[Tenant ID].
63+
This setting is required.
64+
65+
xpack.security.authc.realms.microsoft_graph.*.client_id::
66+
The Application ID of the Enterprise Application you registered in the previous section.
67+
This setting is required.
68+
69+
xpack.security.authc.realms.microsoft_graph.*.client_secret::
70+
The client secret value for the Application you registered in the previous section.
71+
This is a sensitive setting, and must be configured in the Elasticsearch keystore.
72+
This setting is required.
73+
74+
xpack.security.authc.realms.microsoft_graph.*.access_token_host::
75+
A Microsoft login URL.
76+
Defaults to `https://login.microsoftonline.com`.
77+
78+
xpack.security.authc.realms.microsoft_graph.*.graph_host::
79+
The Microsoft Graph base address.
80+
Defaults to `https://graph.microsoft.com/v1.0`.
81+
82+
xpack.security.authc.realms.microsoft_graph.*.http_request_timeout::
83+
The timeout for individual Graph HTTP requests.
84+
Defaults to `10s`.
85+
86+
xpack.security.authc.realms.microsoft_graph.*.execution_timeout::
87+
The overall timeout for authorization requests to this plugin.
88+
Defaults to `30s`.
89+
90+
Create a Microsoft Graph realm, following the above settings, then configure an existing realm to delegate to it using `authorization_realms`.
91+
92+
For example, the following configuration authenticates via Microsoft Entra with SAML, and uses the Microsoft Graph plugin to look up group membership:
93+
94+
[source,yaml]
95+
----
96+
xpack.security.authc.realms.saml.kibana-realm:
97+
order: 2
98+
attributes.principal: nameid
99+
attributes.groups: "http://schemas.microsoft.com/ws/2008/06/identity/claims/groups"
100+
idp.metadata.path: "https://login.microsoftonline.com/<Tenant ID>/federationmetadata/2007-06/federationmetadata.xml?appid=<Application_ID>"
101+
idp.entity_id: "https://sts.windows.net/<Tenant_ID>/"
102+
sp.entity_id: "<Kibana_Endpoint_URL>"
103+
sp.acs: "<Kibana_Endpoint_URL>/api/security/saml/callback"
104+
sp.logout: "<Kibana_Endpoint_URL>/logout"
105+
authorization_realms: microsoft_graph1
106+
107+
xpack.security.authc.realms.microsoft_graph.microsoft_graph1:
108+
order: 3
109+
tenant_id: "<Tenant_ID>"
110+
client_id: "<Graph_Application_ID>"
111+
----

0 commit comments

Comments
 (0)