2022-03-10 08:59:13 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								description: >-
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  This document will explain how to create an Okta app and configure it for
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  OAuth. This will generate the information required for Single Sign On with
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Okta.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Copy of Create Server Credentials
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Step 1: Create an Okta Account
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Go to [Create Okta Account ](https://developer.okta.com/signup/ ). 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Provide the required input and click on **Sign Up** . 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Else you can **continue with Google or GitHub** . 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Step 2: Create the OIDC App Integration.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Once done with **Signup/Sign in** , you will be redirected to the **Getting Started**  page in Okta. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Click on **Applications -> Applications**  in the left navigation panel. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Click on the **Create App Integration**  button. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Step 3: Configuring the App
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Once you are in the **Create a new app integration**  page, select **OIDC - OpenID Connect** . 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Next, select the **Application type -> Single-Page Application** . 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Once selected, click **Next** . 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  From the **General Settings**  page,& #x20 ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  *  Enter an **App integration name** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  *  Select the following in **Grant type** :
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  **Authorization Code**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  **Refresh Token** - For the refresh token behavior, it is recommended to select the option to 'Rotate token after every use'.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  **Implicit (hybrid)** - Select the options to allow ID Token and Access Token with implicit grant type.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  *  Enter the **Sign-in redirect URIs** 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-30 21:52:53 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    *  [http://localhost:8585/signin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      \
							 
						 
					
						
							
								
									
										
										
										
											2022-03-10 08:59:13 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								      http://localhost:8585](http://localhost:8585/signinhttp://localhost:8585)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  *  Enter the **Sign-out redirect URIs** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  *  Enter the **Base URIs** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  *  Select the required option for **Controlled access** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Click **Save** . 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  The app is now configured. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Step 4: Add Authorization Server to get the Issuer URL
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								It is recommended to create a separate authorization server for different applications. The authorization server needs an endpoint, which'll be the Issuer URL.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Click on **Security -> API**  in the left navigation panel. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  From the **Authorization Servers**  tab, click on **Add Authorization Server**  button. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Enter a Name and Description.& #x20 ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  While creating the authorization server, an **Audience**  must be provided for the server. The Audience is the **Client ID**  of the single page application that was created. Refer the next [Step 7 ](okta-server-creds.md#step-7-where-to-find-the-credentials ) to locate the Client ID. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  **Save** the changes. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This will generate the Issuer URL.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Step 5: Create a Default Scope
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  To create a default scope from **Security -> API** , click on the required **Authorization Server** . 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  In the resulting page, click on the **Scopes**  tab 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Click on **Add Scope**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Set as a **Default Scope** . 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Step 6: Add New Access Policy and Rule
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  From **Security -> API** , click on the required **Authorization Server**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Navigate to the **Access Policies Tab**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Click on **Add New Access Policy**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  To create a policy, add a Name and Description. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Assign the policy to the required clients. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Add a new **Rule**  inside the policy as required. Rules can be created with just a few grant type details, such as Client Credentials, Authorization Code, Device Authorization, and Token Exchange. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Click on **Create Rule**  to save the changes. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Step 7: Where to Find the Credentials
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Once the app is configured, the **Client ID**  can be used. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  You can also go to **Application -> Application**  as in step 2. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  You should be able to see your application in the list. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Click on your application. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  You will find your **Client ID**  and **Okta domain** . 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  The **Client authentication**  is enabled by default. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  By clicking on the Edit ** ** option for General Settings, you can deselect the option for **User consent** . Save the changes. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Click on the **Sign On**  tab from the top navigation bar. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Click on Edit for **OpenID Connect ID Token** . 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  For **Issuer** , change from the Dynamic (based on request domain) option to the **Okta URL**  option. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  The **Audience**  is the same as the Client ID. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 . png > )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Step 8: Adding the Details in openmetadata-security.yaml
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Once the **Client ID** , ** ** and **Issuer URL**  are generated, add those details in the openmetadata-security.yaml file in the respective fields. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```yaml
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								authorizerConfiguration:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  className: "org.openmetadata.catalog.security.DefaultAuthorizer"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  containerRequestFilter: "org.openmetadata.catalog.security.JwtFilter"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  adminPrincipals:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  "< username > "
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  botPrincipals:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  "ingestion-bot"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  "< Ingestion  Client  ID > "
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  principalDomain: "open-metadata.org"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								authenticationConfiguration:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  provider: "okta"
							 
						 
					
						
							
								
									
										
										
										
											2022-03-30 21:52:53 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  publicKeyUrls:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  "{ISSUER_URL}/v1/keys"
							 
						 
					
						
							
								
									
										
										
										
											2022-03-10 08:59:13 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  authority: "{ISSUER_URL}"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  clientId: "{CLIENT_ID - SPA APP}"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  callbackUrl: "http://localhost:8585/callback"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```