Skip to content

Commit

Permalink
Updated Docs
Browse files Browse the repository at this point in the history
  • Loading branch information
Tarun committed Jan 3, 2025
1 parent 9edc078 commit 11c710e
Show file tree
Hide file tree
Showing 53 changed files with 2,661 additions and 822 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,41 @@ alt="create-app" /%}

{% image
src="/images/v1.6/deployment/security/auth0/auth-code-flow-2.png"
alt="credentials" /%}
alt="credentials" /%}

After the applying these steps, you can update the configuration of your deployment:

{% inlineCalloutContainer %}
{% inlineCallout
color="violet-70"
icon="celebration"
bold="Docker Security"
href="/deployment/security/auth0/docker" %}
Configure Auth0 SSO for your Docker Deployment.
{% /inlineCallout %}
{% inlineCallout
color="violet-70"
icon="storage"
bold="Bare Metal Security"
href="/deployment/security/auth0/bare-metal" %}
Configure Auth0 SSO for your Bare Metal Deployment.
{% /inlineCallout %}
{% inlineCallout
color="violet-70"
icon="fit_screen"
bold="Kubernetes Security"
href="/deployment/security/auth0/kubernetes" %}
Configure Auth0 SSO for your Kubernetes Deployment.
{% /inlineCallout %}
{% /inlineCalloutContainer %}


{% inlineCalloutContainer %}
{% inlineCallout
color="violet-70"
icon="MdArrowBack"
bold="Auth"
href="/deployment/security/auth0" %}
Go to Auth0 Configuration
{% /inlineCallout %}
{% /inlineCalloutContainer %}
Original file line number Diff line number Diff line change
Expand Up @@ -8,32 +8,72 @@ collate: false

## Update conf/openmetadata.yaml

Once the `Client Id` is generated, add the `Client Id` in `openmetadata.yaml` file in `client_id` field.
In `openmetadata.yaml` file and use the following example as a reference. Replace the placeholder values with the details generated during your Auth0 account and application credentials setup.

```yaml
authenticationConfiguration:
provider: "auth0"
publicKeyUrls:
- "https://parth-panchal.us.auth0.com/.well-known/jwks.json"
- "{your domain}/api/v1/system/config/jwks" #Make sure this URL is always configured to enable JWT tokens
authority: "https://parth-panchal.us.auth0.com/"
clientId: "{Client ID}"
callbackUrl: "http://localhost:8585/callback"
```
Check the more information about environment variable [here](/deployment/security/configuration-parameters).

Then,
- Update `authorizerConfiguration` to add login names of the admin users in `adminPrincipals` section as shown below.
- Update the `principalDomain` to your company domain name.

```yaml
{% codeWithLanguageSelector title="Auth Configuration" id="container-1" languagesArray=["implicit","authcode"] theme="dark" %}
```implicit
# Implicit Flow Configuration
authorizerConfiguration:
className: "org.openmetadata.service.security.DefaultAuthorizer"
# JWT Filter
containerRequestFilter: "org.openmetadata.service.security.JwtFilter"
adminPrincipals:
- "user1"
- "user2"
principalDomain: "open-metadata.org"
adminPrincipals:
- "admin" # Administrator email prefix (e.g., "admin" from "[email protected]")
- "user1" # Additional administrator email prefix
- "user2" # Additional administrator email prefix
principalDomain: "open-metadata.org" # Primary domain for your organization (e.g., "yourdomain.com")
principalDomain: "open-metadata.org" # Update with your Domain,The primary domain for the organization (example.com from [email protected]).
authenticationConfiguration:
provider: "auth0" # Authentication provider, set to "auth0"
publicKeyUrls:
- "https://{Auth0 Domain Name}/.well-known/jwks.json" # Replace {Auth0 Domain Name} with your Auth0 domain
- "{Your OMD Server URL}/api/v1/system/config/jwks" # Replace {Your OMD Server URL} with your OpenMetadata server URL
authority: "https://{Your Auth0 Domain}" # Base URL of your Auth0 domain
clientId: "{Client ID}" # Auth0 Client ID for your application
callbackUrl: "http://localhost:8585/callback" # Callback URL for OpenMetadata authentication
clientType: "public" # Set to "public" for implicit flow
```
```authcode
# Auth Code Flow Configuration
authorizerConfiguration:
className: "org.openmetadata.service.security.DefaultAuthorizer"
containerRequestFilter: "org.openmetadata.service.security.JwtFilter"
adminPrincipals:
- "admin" # Administrator email prefix (e.g., "admin" from "[email protected]")
- "user1" # Additional administrator email prefix
- "user2" # Additional administrator email prefix
principalDomain: "open-metadata.org" # Primary domain for your organization (e.g., "yourdomain.com")
authenticationConfiguration:
provider: "auth0" # Authentication provider, set to "auth0"
publicKeyUrls:
- "https://{Auth0 Domain Name}/.well-known/jwks.json" # Replace {Auth0 Domain Name} with your Auth0 domain
- "{Your OMD Server URL}/api/v1/system/config/jwks" # Replace {Your OMD Server URL} with your OpenMetadata server URL
authority: "https://{Your Auth0 Domain}" # Base URL of your Auth0 domain
clientId: "{Client ID}" # Auth0 Client ID for your application
callbackUrl: "http://localhost:8585/callback" # Callback URL for OpenMetadata authentication
clientType: "confidential" # Set to "confidential" for auth code flow
oidcConfiguration:
id: "{Client ID}" # Auth0 Client ID for your application
type: "auth0" # Ensure this matches your provider type
secret: "{Client Secret}" # Auth0 Client Secret for your application
discoveryUri: "https://{Auth0 Domain Name}/.well-known/openid-configuration"
# Discovery URI for OpenID configuration; replace {Auth0 Domain Name} with your Auth0 domain
callbackUrl: "http://localhost:8585/callback" # Callback URL for OpenMetadata authentication
serverUrl: "http://localhost:8585" # OpenMetadata server URL; update for production environments
```
{% /codeWithLanguageSelector %}

{% partial file="/v1.6/deployment/configure-ingestion.md" /%}

{% inlineCalloutContainer %}
{% inlineCallout
color="violet-70"
icon="MdArrowBack"
bold="Auth"
href="/deployment/security/auth0" %}
Go to Auth0 Configuration
{% /inlineCallout %}
{% /inlineCalloutContainer %}
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,68 @@ To enable security for the Docker deployment, follow the next steps:

## 1. Create an .env file

Create an `openmetadata_auth0.env` file and add the following contents as an example. Use the information
generated when setting up the account.
Create an `openmetadata_auth0.env` file and use the following example as a reference. Replace the placeholder values with the details generated during your Auth0 account and application credentials setup.

```shell
# OpenMetadata Server Authentication Configuration
Check the more information about environment variable [here](/deployment/security/configuration-parameters).


{% codeWithLanguageSelector title="Auth Configuration" id="container-1" languagesArray=["implicit","authcode"] theme="dark" %}

```implicit
# Implicit Flow
AUTHORIZER_CLASS_NAME=org.openmetadata.service.security.DefaultAuthorizer
AUTHORIZER_REQUEST_FILTER=org.openmetadata.service.security.JwtFilter
AUTHORIZER_ADMIN_PRINCIPALS=[admin] # Your `name` from [email protected]
AUTHORIZER_PRINCIPAL_DOMAIN=open-metadata.org # Update with your domain
AUTHORIZER_ADMIN_PRINCIPALS=[admin] # john.doe from [email protected]
AUTHORIZER_PRINCIPAL_DOMAIN=open-metadata.org # Update with your Domain,The primary domain for the organization (example.com from [email protected]).
AUTHENTICATION_PROVIDER=auth0
AUTHENTICATION_PUBLIC_KEYS=[{Domain}/.well-known/jwks.json,{your domain}/api/v1/system/config/jwks] # Update with your Domain and Make sure this "/api/v1/system/config/jwks" is always configured to enable JWT tokens
AUTHENTICATION_AUTHORITY={Domain} # The base URL of the authentication provider.
AUTHENTICATION_CLIENT_ID={Client ID} # Update with your Client ID
AUTHENTICATION_CALLBACK_URL=http://localhost:8585/callback
AUTHENTICATION_CLIENT_TYPE= public
```

```authcode
# Auth Code Flow
AUTHORIZER_CLASS_NAME=org.openmetadata.service.security.DefaultAuthorizer
AUTHORIZER_REQUEST_FILTER=org.openmetadata.service.security.JwtFilter
AUTHORIZER_ADMIN_PRINCIPALS=[admin] # john.doe from [email protected]
AUTHORIZER_PRINCIPAL_DOMAIN=open-metadata.org # Update with your Domain,The primary domain for the organization (example.com from [email protected]).
AUTHENTICATION_PROVIDER=auth0
AUTHENTICATION_PUBLIC_KEYS=[{Domain}/.well-known/jwks.json,{your domain}/api/v1/system/config/jwks] # Update with your Domain and Make sure this "/api/v1/system/config/jwks" is always configured to enable JWT tokens
AUTHENTICATION_PUBLIC_KEYS=[{Domain}/.well-known/jwks.json,{your domain}/api/v1/system/config/jwks] # Update with your Domain and Make sure this "/api/v1/system/config/jwks" is always configured to enable JWT tokens
AUTHENTICATION_AUTHORITY={Domain} # The base URL of the authentication provider.
AUTHENTICATION_CLIENT_ID={Client ID} # Update with your Client ID
AUTHENTICATION_CALLBACK_URL=http://localhost:8585/callback
AUTHENTICATION_CLIENT_TYPE= confidential
OIDC_CLIENT_ID={Client ID} # Update with your Client ID
OIDC_TYPE=auth0
OIDC_CLIENT_SECRET={Client Secret} # Update with your Client Secret
OIDC_DISCOVERY_URI: http://{Domain}/.well-known/openid-configuration # Update with your Domain
OIDC_CALLBACK: ${OIDC_CALLBACK:-"http://localhost:8585/callback"}
AUTHENTICATION_AUTHORITY={Domain} # Update with your Domain
AUTHENTICATION_CLIENT_ID={Client ID} # Update with your Client ID
AUTHENTICATION_CALLBACK_URL=http://localhost:8585/callback
```

{% /codeWithLanguageSelector %}



## 2. Start Docker

```commandline
docker compose --env-file ~/openmetadata_auth0.env up -d
```

{% partial file="/v1.6/deployment/configure-ingestion.md" /%}


{% inlineCalloutContainer %}
{% inlineCallout
color="violet-70"
icon="MdArrowBack"
bold="Auth"
href="/deployment/security/auth0" %}
Go to Auth0 Configuration
{% /inlineCallout %}
{% /inlineCalloutContainer %}
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,14 @@ After the applying these steps, you can update the configuration of your deploym
href="/deployment/security/auth0/kubernetes" %}
Configure Auth0 SSO for your Kubernetes Deployment.
{% /inlineCallout %}
{% /inlineCalloutContainer %}

{% inlineCalloutContainer %}
{% inlineCallout
color="violet-70"
icon="MdArrowBack"
bold="Auth"
href="/deployment/security/auth0" %}
Go to Auth0 Configuration
{% /inlineCallout %}
{% /inlineCalloutContainer %}
Original file line number Diff line number Diff line change
Expand Up @@ -7,27 +7,83 @@ collate: false
# Auth0 SSO for Kubernetes

Check the Helm information [here](https://artifacthub.io/packages/search?repo=open-metadata).
Check the more information about environment variable [here](/deployment/security/configuration-parameters).

Once the `Client Id` is generated, see the snippet below for an example of where to
place the client id value and update the authorizer configurations in the `values.yaml`.
Here is an example for reference, showing where to place the values in the `values.yaml` file after setting up your Auth0 account and obtaining the application credentials.

{% codeWithLanguageSelector title="Auth Configuration" id="container-1" languagesArray=["implicit","authcode"] theme="dark" %}

```implicit
# Public Flow
```yaml
openmetadata:
config:
authorizer:
className: "org.openmetadata.service.security.DefaultAuthorizer"
containerRequestFilter: "org.openmetadata.service.security.JwtFilter"
initialAdmins:
- "suresh"
principalDomain: "open-metadata.org"
initialAdmins: # john.doe from [email protected]
- "admin"
- "user1"
- "user2"
principalDomain: "open-metadata.org" # Update with your Domain,The primary domain for the organization (example.com from [email protected]).
authentication:
clientType: public
provider: "auth0"
publicKeys:
- "{your domain}/api/v1/system/config/jwks" # Update with your Domain and Make sure this "/api/v1/system/config/jwks" is always configured to enable JWT tokens
- "{Auth0 Domain Name}/.well-known/jwks.json"
authority: "https://parth-panchal.us.auth0.com/"
authority: "{Your Auth0 Domain}" # The base URL of the authentication provider.
clientId: "{Client ID}"
callbackUrl: "http://localhost:8585/callback"
```

```authcode
# Auth Code Flow
openmetadata:
config:
authorizer:
className: "org.openmetadata.service.security.DefaultAuthorizer"
containerRequestFilter: "org.openmetadata.service.security.JwtFilter"
initialAdmins: # john.doe from [email protected]
- "admin"
- "user1"
- "user2"
principalDomain: "open-metadata.org" # Update with your Domain,The primary domain for the organization (example.com from [email protected]).
authentication:
clientType: confidential
provider: "auth0"
publicKeys: # List of URLs providing public keys for verifying JWT tokens.
- "{Your Domain}/api/v1/system/config/jwks" # Update with your Domain and Make sure this "/api/v1/system/config/jwks" is always configured to enable JWT tokens
- "{Auth0 Domain Name}/.well-known/jwks.json
authority: "{Your Auth0 Domain}" # The base URL of the authentication provider.
clientId: "{Client ID}" # Update your Client ID
callbackUrl: "http://localhost:8585/callback"
oidcConfiguration:
oidcType: "Auth0"
clientId:
secretRef: oidc-secrets
secretKey: openmetadata-oidc-client-id
clientSecret:
secretRef: oidc-secrets
secretKey: openmetadata-oidc-client-secret
discoveryUri: "{Domain name}/.well-known/openid-configuration" # Update your Auth0 Domain
callbackUrl: http://localhost:8585/callback
serverUrl: http://localhost:8585
```

{% /codeWithLanguageSelector %}

{% partial file="/v1.6/deployment/configure-ingestion.md" /%}

{% inlineCalloutContainer %}
{% inlineCallout
color="violet-70"
icon="MdArrowBack"
bold="Auth"
href="/deployment/security/auth0" %}
Go to Auth0 Configuration
{% /inlineCallout %}
{% /inlineCalloutContainer %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
title: Auth0 SSO for Docker
slug: /deployment/security/azure/auth-code-flow
collate: false
---

# Auth Code Flow


### Step 1: App Registrations

- Provide an Application Name for registration.
- Provide a redirect URL as a Auth Code Flow.
- Click on Register.

{% image src="/images/v1.6/deployment/security/azure/create-web-registration.png" alt="create-app" /%}



### Step 2: Where to Find the Credentials

- The `Client ID` and the `Tenant ID` are displayed in the Overview section of the registered application.

{% image src="/images/v1.6/deployment/security/azure/web-client-secret.png" alt="create-app" /%}

- When passing the details for `authority`, the `Tenant ID` is added to the URL as shown in the example
below. `https://login.microsoftonline.com/TenantID`

```commandline
"authority": "https://login.microsoftonline.com/c11234b7c-b1b2-9854-0mn1-56abh3dea295"
```

{% partial file="/v1.6/deployment/configure-ingestion.md" /%}


{% inlineCalloutContainer %}
{% inlineCallout
color="violet-70"
icon="celebration"
bold="Docker Security"
href="/deployment/security/azure/docker" %}
Configure Azure SSO for your Docker Deployment.
{% /inlineCallout %}
{% inlineCallout
color="violet-70"
icon="storage"
bold="Bare Metal Security"
href="/deployment/security/azure/bare-metal" %}
Configure Azure SSO for your Bare Metal Deployment.
{% /inlineCallout %}
{% inlineCallout
color="violet-70"
icon="fit_screen"
bold="Kubernetes Security"
href="/deployment/security/azure/kubernetes" %}
Configure Azure SSO for your Kubernetes Deployment.
{% /inlineCallout %}
{% /inlineCalloutContainer %}


{% inlineCalloutContainer %}
{% inlineCallout
color="violet-70"
icon="MdArrowBack"
bold="Azure"
href="/deployment/security/azure" %}
Go to Azure Configuration
{% /inlineCallout %}
{% /inlineCalloutContainer %}
Loading

0 comments on commit 11c710e

Please sign in to comment.