The following worked with Elastic Cloud, Elasticsearch & Kibana v7.6.0. It should be pretty close for other kinds of deployments. Before starting, make sure you have the right license level that allows SAML.
-
Navigate to the SAML apps section of the admin console
-
Click the Add button and choose to "Add custom SAML app"
-
Write down the Entity ID and download the Idp metadata file
-
Choose application name, description and add logo
-
In the "Service Provider Details" screen add the following:
- ACS URL:
https://<kibana url>:9243/api/security/v1/saml
- Entity ID:
https://<kibana url>:9243/
- Start URL:
https://<kibana url>:9243/
- Name ID: Basic Information | Primary Email
- Name ID Format: Email
- ACS URL:
-
Skip attribute mapping and click "Finished"
-
Enable SAML app to be in "On for everyone" status
-
Rename the metadata file to
metadata.xml
-
Place the file in folder named
saml
-
Compress the folder into zip file.
-
Navigate to the custom plugins section under your Elastic account
-
Add a new plugin:
- Plugin name:
<whatever you like, e.g gsuite-saml>
- Version:
*
- Description:
<whatever you like>
- Plugin name:
-
Upload the zip file created above
-
In Kibana navigate to: Managment -> Security -> Role mappings
-
Create a new role mapping:
- Roles: Whatever roles you need
- Add the following mapping rule:
- User filed:
realm.name
- Type:
text
- Value: <realm name from elasticsearch.yml. e.g
gsuite
>
- User filed:
- Under the Elasticsearch deployment configuration go Edit screen
- Enable the
gsuite-saml
plugin under "Elasticsearch plugins and settings" - Paste the content of
elasticsearch.yml
to "User setting overrides" in the Elasticsearch section - Paste the content of
kibana.yml
to "User setting overrides" in the Kibana section - Click Save and wait for the re-deloyment to finish successfully
If everything went smooth, you should be able to point your browser to Kibana and get authenticated with your Google account.
@sirachv your method worked great for us. Thank you for the tip!