mirror of
				https://github.com/open-metadata/OpenMetadata.git
				synced 2025-10-31 10:39:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			111 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Basic Authentication
 | |
| slug: /deployment/security/basic-auth
 | |
| ---
 | |
| 
 | |
| # UserName/Password Login
 | |
| 
 | |
| Out of the box, OpenMetadata comes with a Username & Password Login Mechanism.
 | |
| 
 | |
| The default Username and Password for Login are:
 | |
| 
 | |
| ```commandline
 | |
| Username - admin
 | |
| Password - admin
 | |
| ```
 | |
| 
 | |
| {%important%}
 | |
| 
 | |
| 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.
 | |
| 
 | |
| {%/important%}
 | |
| 
 | |
| # Setting up Basic Auth Manually
 | |
| 
 | |
| Below are the required steps to set up the Basic Login:
 | |
| 
 | |
| ## Set up Configurations in openmetadata.yaml
 | |
| 
 | |
| ### Authentication Configuration
 | |
| 
 | |
| The following configuration controls the auth mechanism for OpenMetadata. Update the mentioned fields as required.
 | |
| 
 | |
| ```yaml
 | |
| authenticationConfiguration:
 | |
|   provider: ${AUTHENTICATION_PROVIDER:-basic}
 | |
|   publicKeyUrls: ${AUTHENTICATION_PUBLIC_KEYS:-[{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
 | |
|   authority: ${AUTHENTICATION_AUTHORITY:-https://accounts.google.com}
 | |
|   enableSelfSignup : ${AUTHENTICATION_ENABLE_SELF_SIGNUP:-true}
 | |
| ```
 | |
| 
 | |
| For the Basic auth we need to set:
 | |
|  
 | |
| -  `provider`: basic
 | |
| -  `publicKeyUrls`: {http|https}://{your_domain}:{port}}/api/v1/system/config/jwks
 | |
| -  `authority`: {your_domain}
 | |
| -  `enableSelfSignup`: This flag indicates if users can come and signup by themselves on the OM
 | |
| 
 | |
| ### Authorizer Configuration
 | |
| 
 | |
| This configuration controls the authorizer for OpenMetadata:
 | |
| 
 | |
| ```yaml
 | |
| authorizerConfiguration:
 | |
|   adminPrincipals: ${AUTHORIZER_ADMIN_PRINCIPALS:-[admin]}
 | |
|   allowedEmailRegistrationDomains: ${AUTHORIZER_ALLOWED_REGISTRATION_DOMAIN:-["all"]}
 | |
|   principalDomain: ${AUTHORIZER_PRINCIPAL_DOMAIN:-"openmetadata.org"}
 | |
| ```
 | |
| 
 | |
| For the Basic auth we need to set:
 | |
| 
 | |
| - `adminPrincipals`: admin usernames to bootstrap the server with, comma-separated values.
 | |
| - `allowedEmailRegistrationDomains`: This controls what all domain are allowed for email registration can be your {principalDomain} as well, for example gmail.com, outlook.comm etc.
 | |
| - `principalDomain`: This controls what all domain are allowed for email registration, for example gmail.com, outlook.comm etc.
 | |
| 
 | |
| {%note%}
 | |
| 
 | |
| Please note the following are the formats to bootstrap admins on server startup: `[admin1,admin2,admin3]`
 | |
| 
 | |
| This works for SMTP-enabled servers, Login Password for these are generated randomly and sent to the mail `adminName`@`principalDomain`. 
 | |
| 
 | |
| If SMTP is not enabled for OpenMetadata, please use the below method to create admin users: `[admin1:password1,admin2:password2,admin3:password3]`
 | |
| 
 | |
| This allows to bootstrap the server with given password, later on can be changed by specific users by visiting profile page.
 | |
| 
 | |
| {%/note%}
 | |
| 
 | |
| ## Metadata Ingestion
 | |
| 
 | |
| For ingesting metadata when Basic Auth is enabled, it is mandatory to configure the `ingestion-bot` account with the JWT 
 | |
| configuration. To know how to enable it, you can follow the documentation of [Enable JWT Tokens](/deployment/security/enable-jwt-tokens).
 | |
| 
 | |
| 
 | |
| ### Setting up SMTP Server
 | |
| 
 | |
| Basic Authentication is successfully set. For a better login experience, we can also set up the SMTP server to allow the 
 | |
| users to Reset Password, Account Status Updates, etc. as well.
 | |
| 
 | |
| ```yaml
 | |
| email:
 | |
|   emailingEntity: ${OM_EMAIL_ENTITY:-"OpenMetadata"} -> Company Name (Optional)
 | |
|   supportUrl: ${OM_SUPPORT_URL:-"https://slack.open-metadata.org"} -> SupportUrl (Optional)
 | |
|   enableSmtpServer : ${AUTHORIZER_ENABLE_SMTP:-false} -> True/False
 | |
|   openMetadataUrl: ${OPENMETADATA_SERVER_URL:-""} -> {http/https}://{your_domain}
 | |
|   senderMail: ${OPENMETADATA_SMTP_SENDER_MAIL:-""} -> Sender's email
 | |
|   serverEndpoint: ${SMTP_SERVER_ENDPOINT:-""} -> (Ex :- smtp.gmail.com)
 | |
|   serverPort: ${SMTP_SERVER_PORT:-""} -> (SSL/TLS port)
 | |
|   username: ${SMTP_SERVER_USERNAME:-""} -> (SMTP Server Username)
 | |
|   password: ${SMTP_SERVER_PWD:-""} -> (SMTP Server Password)
 | |
|   transportationStrategy: ${SMTP_SERVER_STRATEGY:-"SMTP_TLS"}
 | |
| ```
 | |
| 
 | |
| Following are valid value for transportation strategy:
 | |
| 
 | |
| - `SMTP`: If SMTP port is 25 use this
 | |
| - `SMTPS`: If SMTP port is 465 use this
 | |
| - `SMTP_TLS`: If SMTP port is 587 use this
 | |
| 
 | |
| {% partial file="/v1.5/deployment/configure-ingestion.md" /%}
 | 
