Skip to content

Commit f416fcf

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

8 files changed

+112
-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: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
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+
. Click "Enterprise applications" and then "New application" to register a 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”, then the “All applications” tab, 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 - these will be needed to configure Elasticsearch later.
33+
+
34+
image::images/03-get-application-id.png[get your application ID]
35+
. Under Manage > Certificates & secrets
36+
- Create a new client secret
37+
- Take note of the Value - this is needed later, and is only shown once
38+
+
39+
image::images/04-create-client-secret.png[get your client secret]
40+
. Under Manage > API permissions
41+
- Go to “Add a permission”
42+
- Choose “Microsoft Graph”
43+
- Choose “Application permissions”
44+
- Select “Directory.ReadWrite.All, Group.ReadWrite.All, User.Read.All”
45+
- Note that an Azure Admin will need to approve these permissions before the credentials can be used
46+
+
47+
image::images/05-configure-api-permissions.png[configure api permissions]
48+
49+
==== Configuration properties
50+
51+
Once the plugin is installed, the following configuration settings are available:
52+
53+
xpack.security.authc.realms.microsoft_graph.*.order::
54+
The priority of the realm within the realm chain. Realms with a lower order are consulted first. The value must be unique for each realm. This setting is required.
55+
56+
xpack.security.authc.realms.microsoft_graph.*.tenant_id::
57+
Your Microsoft Entra ID https://learn.microsoft.com/en-us/entra/fundamentals/how-to-find-tenant[Tenant ID]. This setting is required.
58+
59+
xpack.security.authc.realms.microsoft_graph.*.client_id::
60+
The Application ID of the Enterprise Application you registered in the previous section. This setting is required.
61+
62+
xpack.security.authc.realms.microsoft_graph.*.client_secret::
63+
The client secret value for the Application you registered in the previous section. This is a sensitive setting, and must be configured in the Elasticsearch keystore. This setting is required.
64+
65+
xpack.security.authc.realms.microsoft_graph.*.access_token_host::
66+
A Microsoft login URL. Defaults to `https://login.microsoftonline.com`.
67+
68+
xpack.security.authc.realms.microsoft_graph.*.graph_host::
69+
The Microsoft Graph base address. Defaults to `https://graph.microsoft.com/v1.0`.
70+
71+
xpack.security.authc.realms.microsoft_graph.*.http_request_timeout::
72+
The timeout for individual Graph HTTP requests. Defaults to `10s`.
73+
74+
xpack.security.authc.realms.microsoft_graph.*.execution_timeout::
75+
The overall timeout for authorization requests to this plugin. Defaults to `30s`.
76+
77+
Create a Microsoft Graph realm, following the above settings, then configure an existing realm to delegate to it using `authorization_realms`.
78+
79+
For example, to authenticate via Microsoft Entra with SAML and use the Microsoft Graph plugin to look up group membership:
80+
81+
[source,yaml]
82+
----
83+
xpack.security.authc.realms.saml.kibana-realm:
84+
order: 2
85+
attributes.principal: nameid
86+
attributes.groups: "http://schemas.microsoft.com/ws/2008/06/identity/claims/groups"
87+
idp.metadata.path: "https://login.microsoftonline.com/<Tenant ID>/federationmetadata/2007-06/federationmetadata.xml?appid=<Application_ID>"
88+
idp.entity_id: "https://sts.windows.net/<Tenant_ID>/"
89+
sp.entity_id: "<Kibana_Endpoint_URL>"
90+
sp.acs: "<Kibana_Endpoint_URL>/api/security/saml/callback"
91+
sp.logout: "<Kibana_Endpoint_URL>/logout"
92+
authorization_realms: microsoft_graph1
93+
94+
xpack.security.authc.realms.microsoft_graph.microsoft_graph1:
95+
order: 3
96+
tenant_id: "<Tenant_ID>"
97+
client_id: "<Graph_Application_ID>"
98+
----

0 commit comments

Comments
 (0)