Skip to content

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

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

richard-dennehy
Copy link
Contributor

@richard-dennehy richard-dennehy commented Jul 7, 2025

Add documentation for the plugin introduced in #128396

This will need a manual backport to 8.19

@richard-dennehy richard-dennehy added >docs General docs changes :Security/Authentication Logging in, Usernames/passwords, Realms (Native/LDAP/AD/SAML/PKI/etc) Team:Security Meta label for security team labels Jul 7, 2025
Copy link
Contributor

github-actions bot commented Jul 7, 2025

@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-docs (Team:Docs)

@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-security (Team:Security)


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).
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's difficult for me to verify this link as I don't think we've published any artifacts yet 🤔

Copy link
Contributor

@shainaraskas shainaraskas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a few suggestions

@@ -0,0 +1,13 @@
---
mapped_pages:
- https://www.elastic.co/guide/en/elasticsearch/plugins/current/authentication.html
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if these plugins are only available as of 9.1, we should state that. this docs set is only applicable to a 9+ context which is why we wouldn't have 8.19 listed as well

Suggested change
- https://www.elastic.co/guide/en/elasticsearch/plugins/current/authentication.html
- https://www.elastic.co/guide/en/elasticsearch/plugins/current/authentication.html
applies_to:
stack: ga 9.1

@@ -0,0 +1,35 @@
---
mapped_pages:
- https://www.elastic.co/guide/en/elasticsearch/plugins/current/ms-graph-authz.html
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- https://www.elastic.co/guide/en/elasticsearch/plugins/current/ms-graph-authz.html
- https://www.elastic.co/guide/en/elasticsearch/plugins/current/ms-graph-authz.html
applies_to:
stack: ga 9.1

Comment on lines +14 to +18
This plugin can be installed using the plugin manager:

```sh
sudo bin/elasticsearch-plugin install microsoft-graph-authz
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this plugin work for all deployment types, or just self-managed vanilla elasticsearch?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've been testing with Elastic Cloud, but it should work with any other deployment type


# Authentication Plugins [authentication]

Authentication plugins extend the functionality provided by the built-in [authentication realms](docs-content://deploy-manage/users-roles/cluster-or-deployment-auth/authentication-realms.md)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Authentication plugins extend the functionality provided by the built-in [authentication realms](docs-content://deploy-manage/users-roles/cluster-or-deployment-auth/authentication-realms.md)
Authentication plugins extend the functionality provided by the built-in [authentication realms](docs-content://deploy-manage/users-roles/cluster-or-deployment-auth/authentication-realms.md).


## Create a custom Azure Application

1) Log in to the [Azure portal](https://portal.azure.com) and go to Microsoft Entra ID
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1) Log in to the [Azure portal](https://portal.azure.com) and go to Microsoft Entra ID
1) Log in to the [Azure portal](https://portal.azure.com) and go to Microsoft Entra ID.

:::
4) Under Manage > Certificates & secrets
- Create a new client secret
- Take note of the Value - this is needed later, and is only shown once
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Take note of the Value - this is needed later, and is only shown once
- Take note of you new client secret's **Value**. This is needed later, and is only displayed once.

:alt: get your application ID
:::
4) Under Manage > Certificates & secrets
- Create a new client secret
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Create a new client secret
- Create a new client secret.

Comment on lines 39 to 47
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
:::
Copy link
Contributor

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

Suggested change
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
:::


# Configuration properties [configuration-properties]

Once the plugin is installed, the following configuration settings are available:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Once the plugin is installed, the following configuration settings are available:
After the plugin is installed, the following configuration settings are available:


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:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
>docs General docs changes :Security/Authentication Logging in, Usernames/passwords, Realms (Native/LDAP/AD/SAML/PKI/etc) Team:Docs Meta label for docs team Team:Security Meta label for security team v9.1.1 v9.2.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants