-
Notifications
You must be signed in to change notification settings - Fork 25.7k
add documentation for MS Graph plugin #130703
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 2 commits
1a01d28
425099e
243e5a1
d7d6a90
40645be
a6abff1
3583699
914ab9b
6f0bf3e
7d13d02
4157d99
09d01f6
ed11992
8551266
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,13 @@ | ||||||
| --- | ||||||
| mapped_pages: | ||||||
| - https://www.elastic.co/guide/en/elasticsearch/plugins/current/authentication.html | ||||||
| --- | ||||||
|
|
||||||
| # Authentication Plugins [authentication] | ||||||
|
||||||
| # Authentication Plugins [authentication] | |
| # Authentication plugins [authentication] |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,47 @@ | ||||||||||||||||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||||||||||||||||
| mapped_pages: | ||||||||||||||||||||||||||||||||||||||||
| - https://www.elastic.co/guide/en/elasticsearch/plugins/current/ms-graph-authz-configure-azure.html | ||||||||||||||||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| # Configure Azure [configure-azure] | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| To make API calls to Microsoft Graph, Elasticsearch requires Azure credentials with the correct permissions. | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| ## Create a custom Azure Application | ||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||
| ## Create a custom Azure Application | |
| ## Create a custom Azure application |
richard-dennehy marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
richard-dennehy marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
richard-dennehy marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
richard-dennehy marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
richard-dennehy marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Create a new client secret | |
| - Create a new client secret. |
richard-dennehy marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ordered procedures of more than two items need a numbered list
| 5) Under Manage > API permissions | |
| - Go to “Add a permission” | |
| - Choose “Microsoft Graph” | |
| - Choose “Application permissions” | |
| - Select “Directory.ReadWrite.All, Group.ReadWrite.All, User.Read.All” | |
| - Note that an Azure Admin will need to approve these permissions before the credentials can be used | |
| :::{image} ./images/ms-graph-authz/05-configure-api-permissions.png | |
| :alt: configure api permissions | |
| ::: | |
| 5) Under **Manage** > **API permissions**, do the following: | |
| 1. Go to **Add a permission**. | |
| 2. Choose **Microsoft Graph**. | |
| 3. Choose **Application permissions**. | |
| 4. Select the following permissions: `Directory.ReadWrite.All`, `Group.ReadWrite.All`, and `User.Read.All`. | |
| Note that an Azure Admin will need to approve these permissions before the credentials can be used | |
| :::{image} ./images/ms-graph-authz/05-configure-api-permissions.png | |
| :alt: configure API permissions | |
| ::: |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,54 @@ | ||||||
| --- | ||||||
| mapped_pages: | ||||||
| - https://www.elastic.co/guide/en/elasticsearch/plugins/current/ms-graph-authz-configure-elastic.html | ||||||
| --- | ||||||
|
|
||||||
| # Configuration properties [configuration-properties] | ||||||
|
|
||||||
| Once the plugin is installed, the following configuration settings are available: | ||||||
richard-dennehy marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
|
|
||||||
| `xpack.security.authc.realms.microsoft_graph.*.order` | ||||||
| : 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. | ||||||
|
|
||||||
| `xpack.security.authc.realms.microsoft_graph.*.tenant_id` | ||||||
| : Your Microsoft Entra ID [Tenant ID](https://learn.microsoft.com/en-us/entra/fundamentals/how-to-find-tenant). This setting is required. | ||||||
|
|
||||||
| `xpack.security.authc.realms.microsoft_graph.*.client_id` | ||||||
| : The Application ID of the Enterprise Application you registered in the previous section. This setting is required. | ||||||
|
|
||||||
| `xpack.security.authc.realms.microsoft_graph.*.client_secret` | ||||||
| : 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. | ||||||
|
|
||||||
| `xpack.security.authc.realms.microsoft_graph.*.access_token_host` | ||||||
| : A Microsoft login URL. Defaults to `https://login.microsoftonline.com`. | ||||||
|
|
||||||
| `xpack.security.authc.realms.microsoft_graph.*.graph_host` | ||||||
| : The Microsoft Graph base address. Defaults to `https://graph.microsoft.com/v1.0`. | ||||||
|
|
||||||
| `xpack.security.authc.realms.microsoft_graph.*.http_request_timeout` | ||||||
| : The timeout for individual Graph HTTP requests. Defaults to `10s`. | ||||||
|
|
||||||
| `xpack.security.authc.realms.microsoft_graph.*.execution_timeout` | ||||||
| : The overall timeout for authorization requests to this plugin. Defaults to `30s`. | ||||||
|
|
||||||
| Create a Microsoft Graph realm, following the above settings, then configure an existing realm to delegate to it using `authorization_realms`. | ||||||
|
|
||||||
| For example, to authenticate via Microsoft Entra with SAML and use the Microsoft Graph plugin to look up group membership: | ||||||
|
||||||
| For example, to authenticate via Microsoft Entra with SAML and use the Microsoft Graph plugin to look up group membership: | |
| For example, the following configuration authenticates using Microsoft Entra with SAML, and uses the Microsoft Graph plugin to look up group membership: |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,35 @@ | ||
| --- | ||
| mapped_pages: | ||
| - https://www.elastic.co/guide/en/elasticsearch/plugins/current/ms-graph-authz.html | ||
richard-dennehy marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| --- | ||
|
|
||
| # Microsoft Graph Authz [ms-graph-authz] | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. would be good if this page would call down to the two child pages, e.g. in a new Configuration H2 on this page, just saying "To learn how to configure the Microsoft Graph Authz plugin, refer to ." or something similar. otherwise, it's unclear that there are configs needed unless you're looking at the sidebar. |
||
|
|
||
| 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. | ||
|
|
||
| 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)). | ||
|
|
||
| ## Installation [ms-graph-authz-install] | ||
|
|
||
| This plugin can be installed using the plugin manager: | ||
|
|
||
| ```sh | ||
| sudo bin/elasticsearch-plugin install microsoft-graph-authz | ||
| ``` | ||
|
||
|
|
||
| The plugin must be installed on every node in the cluster, and each node must be restarted after installation. | ||
|
|
||
| You can download this plugin for [offline install](/reference/elasticsearch-plugins/plugin-management-custom-url.md) from [https://artifacts.elastic.co/downloads/elasticsearch-plugins/microsoft-graph-authz/microsoft-graph-authz-{{version}}.zip](https://artifacts.elastic.co/downloads/elasticsearch-plugins/microsoft-graph-authz/microsoft-graph-authz-{{version}}.zip). To verify the `.zip` file, use the [SHA hash](https://artifacts.elastic.co/downloads/elasticsearch-plugins/microsoft-graph-authz/microsoft-graph-authz-{{version}}.zip.sha512) or [ASC key](https://artifacts.elastic.co/downloads/elasticsearch-plugins/microsoft-graph-authz/microsoft-graph-authz-{{version}}.zip.asc). | ||
richard-dennehy marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
|
|
||
| ## Removal [ms-graph-authz-remove] | ||
|
|
||
| The plugin can be removed with the following command: | ||
|
|
||
| ```sh | ||
| sudo bin/elasticsearch-plugin remove microsoft-graph-authz | ||
| ``` | ||
|
|
||
| The node must be stopped before removing the plugin. | ||
|
|
||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.