mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-07-09 18:21:23 +00:00

* DOCS - Prepare 1.7 Release and 1.8 SNAPSHOT * DOCS - Prepare 1.7 Release and 1.8 SNAPSHOT
121 lines
5.4 KiB
Markdown
121 lines
5.4 KiB
Markdown
---
|
|
title: SAML AWS SSO
|
|
slug: /deployment/security/saml/aws
|
|
collate: false
|
|
---
|
|
|
|
# SAML AWS SSO
|
|
|
|
Follow the sections in this guide to set up AWS SSO using SAML.
|
|
|
|
{% note %}
|
|
|
|
Security requirements for your **production** environment:
|
|
- **DELETE** the admin default account shipped by OM.
|
|
- **UPDATE** the Private / Public keys used for the [JWT Tokens](/deployment/security/enable-jwt-tokens) in case it is enabled.
|
|
|
|
{% /note %}
|
|
|
|
## Create OpenMetadata application
|
|
|
|
### Step 1: Configure a new Application in AWS Console
|
|
|
|
- Login to [AWS Console](https://aws.amazon.com/console/) as an administrator and search for IAM Identity Center.
|
|
|
|
{% image src="/images/v1.8/deployment/security/saml/aws/saml-aws-1.png" alt="IAM-Identity-Center" /%}
|
|
|
|
- Click on `Choose your identity source` and configure as per security requirements.
|
|
|
|
{% image src="/images/v1.8/deployment/security/saml/aws/saml-aws-2.png" alt="identity-source" /%}
|
|
|
|
- After identity source is set up successfully, goto step 2 and click on `Manage Access to application` and add all the required users who need access to application.
|
|
|
|
{% image src="/images/v1.8/deployment/security/saml/aws/saml-aws-3.png" alt="manage-access" /%}
|
|
|
|
- Click on `Set up Identity Center enabled applications`, and click `Add application`, and select `Add custom SAML 2.0 application`.
|
|
|
|
{% image src="/images/v1.8/deployment/security/saml/aws/saml-aws-4.png" alt="saml-application" /%}
|
|
|
|
- Set Display Name to `OpenMetadata` , and download the metadata xml file and save it someplace safe, it is needed to setup OM Server
|
|
|
|
{% image src="/images/v1.8/deployment/security/saml/aws/saml-aws-5.png" alt="metadata-xml" /%}
|
|
|
|
- Click on `Manage assignments to your cloud applications` and select `OpenMetadata` from list of applications.
|
|
|
|
- Click on `Actions` and select `Edit Configurations` from list. Populate the shown values replacing `localhost:8585` with your `{domain}:{port}` and Submit.
|
|
|
|
{% image src="/images/v1.8/deployment/security/saml/aws/saml-aws-6.png" alt="edit-configuration" /%}
|
|
|
|
- Click on `Actions` again and select `Edit Attribute Mapping` from list. Populate the values as shown below and submit
|
|
|
|
{% image src="/images/v1.8/deployment/security/saml/aws/saml-aws-7.png" alt="edit-attribute" /%}
|
|
|
|
|
|
### Step 2: Setup `OpenMetadata Server`
|
|
|
|
- Open the downloaded metadata xml file, and populate the following properties in `openmetadata.yml`
|
|
```yaml
|
|
samlConfiguration:
|
|
debugMode: ${SAML_DEBUG_MODE:-false}
|
|
idp:
|
|
entityId: ${SAML_IDP_ENTITY_ID:-"https://mocksaml.com/api/saml/sso"}
|
|
ssoLoginUrl: ${SAML_IDP_SSO_LOGIN_URL:-"https://saml.example.com/entityid"}
|
|
idpX509Certificate: ${SAML_IDP_CERTIFICATE:-""}
|
|
authorityUrl: ${SAML_AUTHORITY_URL:-"http://localhost:8585/api/v1/saml/login"}
|
|
nameId: ${SAML_IDP_NAME_ID:-"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"}
|
|
sp:
|
|
entityId: ${SAML_SP_ENTITY_ID:-"http://localhost:8585/api/v1/saml/acs"}
|
|
acs: ${SAML_SP_ACS:-"http://localhost:8585/api/v1/saml/acs"}
|
|
spX509Certificate: ${SAML_SP_CERTIFICATE:-""}
|
|
callback: ${SAML_SP_CALLBACK:-"http://localhost:8585/saml/callback"}
|
|
security:
|
|
strictMode: ${SAML_STRICT_MODE:-false}
|
|
tokenValidity: ${SAML_SP_TOKEN_VALIDITY:-"3600"}
|
|
sendEncryptedNameId: ${SAML_SEND_ENCRYPTED_NAME_ID:-false}
|
|
sendSignedAuthRequest: ${SAML_SEND_SIGNED_AUTH_REQUEST:-false}
|
|
signSpMetadata: ${SAML_SIGNED_SP_METADATA:-false}
|
|
wantMessagesSigned: ${SAML_WANT_MESSAGE_SIGNED:-false}
|
|
wantAssertionsSigned: ${SAML_WANT_ASSERTION_SIGNED:-false}
|
|
wantAssertionEncrypted: ${SAML_WANT_ASSERTION_ENCRYPTED:-false}
|
|
wantNameIdEncrypted: ${SAML_WANT_NAME_ID_ENCRYPTED:-false}
|
|
keyStoreFilePath: ${SAML_KEYSTORE_FILE_PATH:-""}
|
|
keyStoreAlias: ${SAML_KEYSTORE_ALIAS:-""}
|
|
keyStorePassword: ${SAML_KEYSTORE_PASSWORD:-""}
|
|
```
|
|
|
|
- Populate the above config from [xml metadata](/deployment/security/saml/xml_file)
|
|
|
|
{% image src="/images/v1.8/deployment/security/saml/aws/saml-aws-8.png" alt="populate-metadata" /%}
|
|
|
|
- IDP Config
|
|
`entityID` -> Populate it from Metadata XML Entity ID
|
|
`HTTP-Redirect SSO Login URL` -> always select HTTP-Redirect Url for SSO Login Url
|
|
`X509 Certificate` -> This is also available in the IDP XML.
|
|
`NameIDFormat` -> from MetadataXML NameIDFormat
|
|
`authorityUrl` -> set as {http}/{https}://{domain}:{port}/api/v1/saml/login
|
|
|
|
- SP Config
|
|
`entityId` -> -> set as {http}/{https}://{domain}:{port}/api/v1/saml/acs
|
|
`acs` -> Assertion Consumer Url , set as {http}/{https}://{domain}:{port}/api/v1/saml/acs
|
|
`spX509Certificate` -> set to your X509 Signing Key
|
|
`callback` -> set as {http}/{https}://{domain}/api/v1/saml/callback
|
|
|
|
- Security Parameters can be configured in case we want to have signed or encrypted or both assertions.
|
|
In any case we decided to use above config for security then it is mandatory to provide keystore config,
|
|
from where the system can load the signing certificate or Private Key for encryption.
|
|
|
|
### Step 3: Setup JWT Configuration
|
|
|
|
- Follow the guide here for JWT Configuration [Enable JWT Token](/deployment/security/enable-jwt-tokens).
|
|
|
|
{% note %}
|
|
|
|
Security requirements for your **production** environment:
|
|
- **UPDATE** the Private / Public keys used for the [JWT Tokens](/deployment/security/enable-jwt-tokens) the ones shipped with OM are for POC only.
|
|
|
|
{% /note %}
|
|
|
|
### Step 4: Start the server
|
|
|
|
- Set up for SAML is done, you should be routed to your IDP on trying to Sign-in.
|