Skip to content

Commit b8b903a

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

8 files changed

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

0 commit comments

Comments
 (0)