6.9 Enabling HTTPS & SSO for OpenMetadata
This section provides step-by-step instructions for configuring HTTPS and Single Sign-On (SSO) in OpenMetadata.
- Generate or Obtain a Keystore.
For production environments, use an X.509 certificate from a trusted Certificate Authority (CA) and import it into a Java Keystore. For testing or development, you can create a self-signed certificate.
To create a self-signed certificate, run the following command:
keytool -ext SAN=<IP/HOST> -keystore openmetadata.keystore.jks -alias <ALIAS> -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -genkey -validity 365Note:
- SAN (Subject Alternative Name): Ensure the SAN matches the host or IP.
- Alias: Use a meaningful alias for the certificate.
- Password: Choose a secure password.
Example:
keytool -ext SAN=IP:100.76.164.165 -keystore openmetadata.keystore.jks -alias localhost -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -genkey -validity 365 - Move the Keystore. After generating the keystore, move the file to the OpenMetadata configuration directory:
<OM-INSTALL-DIR>/openmetadata-1.3.0/conf - Export the Certificate. You can either create a certificate separately and add it to the keystore, or extract it directly from the keystore using this command:
keytool -exportcert -keystore openmetadata.keystore.jks -alias <ALIAS> -file <CERT NAME>Alternatively, use a UI tool for exporting the certificate.
- Import the Certificate to the Java Truststore.To add the certificate to Java’s cacerts truststore, run the following command:
keytool -importcert -file <cert-file> -cacerts -alias <ALIAS> - Update the OpenMetadata SSL Configuration. To do so:
- Modify the OpenMetadata configuration file located at:
<OM-INSTALL-DIR>/openmetadata-1.3.0/conf/openmetadata.yaml - In the
serversection, ensure theapplicationConnectorssection includes the following HTTPS configuration:server: applicationConnectors: - type: https port: ${SERVER_PORT:-8585} keyStorePath: ./conf/openmetadata.keystore.jks keyStorePassword: password123 keyStoreType: JKS certAlias: om_als supportedProtocols: [TLSv1.2, TLSv1.5] excludedProtocols: [SSL, SSLv2, SSLv2Hello, SSLv3]Note:
- keyStorePath: Ensure the path points to the correct keystore file.
- keyStorePassword: Enter the password for your keystore.
- Modify the OpenMetadata configuration file located at:
- Update the SSO Configuration. To do so:
- If you are using Single Sign-On (SSO), locate the
authenticationConfigurationsection and configure the SSO provider details:authenticationConfiguration: provider: ${AUTHENTICATION_PROVIDER:-"custom-oidc"} responseType: ${AUTHENTICATION_RESPONSE_TYPE:-id_token} providerName: ${CUSTOM_OIDC_AUTHENTICATION_PROVIDER_NAME:-"Oracle"} publicKeyUrls: - "https://idcs-e1cc81fab76840ff92e07aa94c413b76.identity.pint.oc9qadev.com:443/admin/v1/SigningCert/jwk" - "https://100.76.147.137:8585/api/v1/system/config/jwks" authority: ${AUTHENTICATION_AUTHORITY:-https://idcs-e1cc81fab76840ff92e07aa94c413b76.identity.pint.oc9qadev.com} clientId: ${AUTHENTICATION_CLIENT_ID:-"e8e56537bb6047e7a0a70565a1f64239"} callbackUrl: ${AUTHENTICATION_CALLBACK_URL:-"https://100.76.147.137:8585/callback"} jwtPrincipalClaims: ${AUTHENTICATION_JWT_PRINCIPAL_CLAIMS:-[email,preferred_username,sub]} enableSelfSignup: ${AUTHENTICATION_ENABLE_SELF_SIGNUP:-true} - Replace the placeholders with your provider-specific values, such as:
- AUTHENTICATION_AUTHORITY: The URL for your SSO provider.
- AUTHENTICATION_CLIENT_ID: The client ID for your application.
- AUTHENTICATION_CALLBACK_URL: The callback URL for your application.
- If you are using Single Sign-On (SSO), locate the
- Update Pipeline Service Client Configuration for HTTPS. To do so:
- In the OpenMetadata configuration file, verify the
pipelineServiceClientConfigurationsection is updated for HTTPS:pipelineServiceClientConfiguration: enabled: ${PIPELINE_SERVICE_CLIENT_ENABLED:-true} className: ${PIPELINE_SERVICE_CLIENT_CLASS_NAME:-"org.openmetadata.service.clients.pipeline.airflow.AirflowRESTClient"} apiEndpoint: ${PIPELINE_SERVICE_CLIENT_ENDPOINT:-https://localhost:8080} metadataApiEndpoint: ${SERVER_HOST_API_URL:-https://100.76.147.137:8585/api} verifySSL: ${PIPELINE_SERVICE_CLIENT_VERIFY_SSL:-"validate"} sslConfig: certificatePath: ${PIPELINE_SERVICE_CLIENT_SSL_CERT_PATH:-"/scratch/openmetadata-ins-dir/openmetadata-1.3.0/conf/om.cer"} - Ensure the following:
- PIPELINE_SERVICE_CLIENT_ENDPOINT: Set to https://.
- SERVER_HOST_API_URL: Points to the HTTPS API endpoint for OpenMetadata.
- PIPELINE_SERVICE_CLIENT_SSL_CERT_PATH: Ensure the correct SSL certificate path is specified.
- In the OpenMetadata configuration file, verify the
- Update STSA Configuration. To do so, modify the OpenMetadata URL in the EST configuration file to use the HTTPS URL.
- Start Services and Verify. To do so:
- After all configurations are updated, restart the OpenMetadata and STSA services.
- Verify that both the connection and integration are functioning correctly.
Note:
If using a self-signed certificate, browsers may display a warning. For production environments, always use certificates signed by a trusted Certificate Authority (CA).