Authentication Setup

Step by Step guide to SSO Setup with OKTA

OvalEdge is a data catalog that creates a comprehensive catalog for all the data sources in an organization. OvalEdge is a web-based application and provides role-based access to various users of the application.

OvalEdge supports a variety of authentication mechanisms like plain old Username and Password, OKTA, Active Directory.

OKTA

  • It's an enterprise-grade, identity management service, built for the cloud, but compatible with many on-premises applications. With Okta, IT can manage any employee's access to any application or device.   
  • Okta features include Provisioning, Single Sign-On (SSO), Active Directory (AD) and LDAP integration, the centralized de-provisioning of users, multi-factor authentication (MFA), mobile identity management, and flexible policies for organization security and control. 
  • For OKTA, OvalEdge uses SAML 2.0 protocol for Single Sign-On into the application. You can use OKTA either for authentication or authentication and authorization. 

SAML 2.0 Introduction

Security Assertion Markup Language (SAML) is an open standard that allows identity providers (IdP) to pass authorization credentials to service providers (SP). The idea is to use one set of credentials to log in to many different websites.

SAML 2.0 Terminologies

  • Assertion – XML passed between the Service provider and identity provider.
  • Assertion Consumer Services (ACS) – Target resources within the SP to where the IDP sends the SAML 2.0 response assertion to.
  • Attribute – Unique information about a user that is passed within an assertion.
  • Identity Provider (IdP) – A trusted entity providing authentication services to the SP on behalf of the user principal.
  • Issuer – A unique string that must match in both the IdP and SP.
  • SAML 2.0 Request – An assertion that the SP passes to the IdP to request a user to be authenticated.
  • SAML 2.0 Response – An assertion that the IDP passes to the SP for an authenticated user.
  • Service Provider – The web application that the user wants to access.

SAML 2.0 Authentication

  • In the first step of SAML 2.0 Authentication, the user tries to access the application/ web service (Service provider). The service provider verifies if the user is already authenticated within the system.

If the user is already authenticated, content can be made available directly to the user. Else, if the user is not authenticated, the service provider starts the authentication process.

  • The service provider determines the identity provider and redirects user requests to that provider i.e. single sign-on service.
  • In the third step of SAML 2.0 authentication, the user browser sends an authentication request to the SSO service.
  • The SSO service returns a request which includes the authentication information needed by the service provider in a SAML 2.0 Response parameter.
  • The SAML 2.0 Response parameter is passed on to the service provider.
  • The service provider processes this response and allows the user to log in and informs where the user-requested resource is.
  • Users can now request the resource he wants.
  • The resource is finally returned.

Configuring Okta SSO

For OKTA integration, OvalEdge needs to be configured using SAML 2.0 authentication. 
  1. Login to OKTA, In Applications, click on Create App Integration. 
  2. Use SAML 2.0
    1-May-06-2022-12-35-12-69-PM
  3. Give the name as OvalEdge and upload the OvalEdge logo
    2-May-06-2022-12-36-51-67-PM
  4. Now configure the SAML Settings
    3-May-06-2022-12-39-16-19-PM
  5. Single Sign-on URL: This should be the URL of your load balancer followed by {context}/saml/SSO
    Note: It should be SSL enabled.
  6. Receipt URL and Destination URL: They should be the Load Balancer DNS or Domain URL but with HTTP
  7. Audience URI (SP Entity ID): Please ensure that you have port 8080 followed by {context}/saml/metadata

Mapping of OKTA fields to OvalEdge

  • Use the following for mapping the attributes:
    4-May-06-2022-12-42-52-85-PM

Please ensure that there is no typo on the following terms:

userId, firstName, lastName, email

  • Mapping the roles will be used to match against the Okta GroupName values and OvalEdge manage roles.
    5-May-06-2022-12-43-49-00-PM

This Prefix must be configured in the OvalEdge Configuration as saml.role.prefix value.

          12
  • Finish the configuration.
    6-4

Group Management in OKTA

7-1

  • The Groups which we have created are displayed as shown below:
    8-1

Note: When we are adding Groups in OKTA, Prefix must be added before group name.

  • If the user is not assigned to any of the groups then the user will get OE_ PUBLIC role by default.

Role Management

The most preferred way of role management is to manage the user and roles management in OKTA. In OE Application create the following Manage roles by mapping to OKTA Groups.

For Example: Manage roles in OKTA group and OvalEdge application are given below: 

OKTA Group OvalEdge Application
Okta.OvalEdge.CSM CSM
Okta.OvalEdge.OE_ADMIN OE_ADMIN
Okta.OvalEdge.OE_PUBLIC OE_PUBLIC
Okta.OvalEdge.OE_XXXXX OE_XXXXX
Okta.OvalEdge.OE_YYYYY OE_YYYYY

The only suffix will be created in the OvalEdge application.

Note: The permission of these roles will be managed in OvalEdge however user/ role management would be done in OKTA. You can use your own naming convention but you have to configure the same in OvalEdge. 

Adding people to the OKTA

We can add users by providing the following information:

9

Assign the user to roles

Roles can be assigned to the users as shown below:

10

  • The application username can be changed by the edit icon.
    11-1

OvalEdge Configuration

A. On Windows

Open the oasis.properties file located under the Apache Tomcat’s webapps/ovaledge/WEB-INF/classes folder and edit the samlHTTPMetadataProvider, entityBaseURL (Web URL), related envs and save it.

13

This would be fetched under the OKTA – Created Application’s Sign On Tab - Identity Provider Metadata URL.

OKTAClick on View IdP metadata, and the XML file is displayed. 

OKTA2

OVALEDGE_SECURITY_TYPE: Ovaledge Security Type needs to be of type saml

set CATALINA_OPTS="-DOVALEDGE_SECURITY_TYPE=saml"

Note: Configure setenv.bat file with this command in Apache tomcat bin

  • Use setenv.bat (if doesn’t exist, create one) located under the bin folder of the tomcat to pass the security type as saml.
    15

If configured with a service account:

Open Service’s properties, Under the Java tab, Add the following environment variable in the java options. Apply, save and restart the tomcat.

-DOVALEDGE_SECURITY_TYPE=saml

16

  • Change the Security type to db mode if you don’t want to have SAML Authentication.
-DOVALEDGE_SECURITY_TYPE=db

B. On Linux

Open the oasis.properties file located under the Apache Tomcat’s webapps/ovaledge/WEB-INF/classes directory and edit the samlHTTPMetadataProvider, entityBaseURL (Web URL), related environments and save it.

17

  • Use setenv.sh (if doesn’t exist, create one) located under bin directory of the tomcat to pass the security type as saml.
    18
export CATALINA_OPTS="-DOVALEDGE_SECURITY_TYPE=saml"
  • Start the Tomcat Server.

C. On Containerized Platform

Pass the following Environmental Variables in YAML and run the Docker Container.

OVALEDGE_SAML_META_DATA= IdP Metadata URL

OVALEDGE_SECURITY_TYPE=saml  #keep db to switch into DB auth mode

SAML_METADATA_TYPE=url

entityBaseURL=https://fg.ovaledge.net/ovaledge #web URL to access the application

ENTITY_BASE_ISLB=false  #give true if ovaledge is having external load balancer DNS

ENTITY_BASE_PROTOCOL=https

ENTITY_BASE_HOST=fg.ovaledge.net

ENTITY_BASE_PORT=443

ENTITY_BASE_CONTEXTPATH=/ovaledge

ENTITY_BASE_PORT_INURL=false

19

D. On Orchestration Platform

Pass the following Environmental Variables in YAML and Create the Kubernetes Deployment.

OVALEDGE_SAML_META_DATA= IdP Metadata URL

OVALEDGE_SECURITY_TYPE=saml  #keep db to switch into DB auth mode

SAML_METADATA_TYPE=url

entityBaseURL=https://fg.ovaledge.net/ovaledge

ENTITY_BASE_ISLB=false  #give true if ovaledge is having external load balancer DNS

ENTITY_BASE_PROTOCOL=https

ENTITY_BASE_HOST=fg.ovaledge.net

ENTITY_BASE_PORT=443

ENTITY_BASE_CONTEXTPATH=/ovaledge

ENTITY_BASE_PORT_INURL=false

20

Helm Chart Update

  1. Take the Identity Provider metadata URL from the OKTA portal, refer the below screenshot
  2. Open the values.yaml file and add the following environment variables under dbdetails tag
    1. OVALEDGE_SAML_META_DATA: <IdP Metadata URL>
    2. OVALEDGE_SECURITY_TYPE: saml  
    3. SAML_METADATA_TYPE: url
    4. entityBaseURL: https://<domain> 
    5. ENTITY_BASE_ISLB: true 
    6. ENTITY_BASE_PROTOCOL: https
    7. ENTITY_BASE_HOST: <domain>
    8. ENTITY_BASE_PORT: 443
    9. ENTITY_BASE_CONTEXTPATH: /
    10. ENTITY_BASE_PORT_INURL: false
  3. Save the values.yaml file and re-install the OvalEdge helm chart

Testing the Roles with REMOTE and HYBRID SAML 2.0 Type

  1. With Hybrid, The Directory Users would get the role from the OvalEdge Application.
  2. With Remote, The Directory Users would get the role from OKTA.

For the first time, User logged in with Admin Role can go to Configuration and specify the Job Parameter.

OvalEdge SAML 2.0 Type as HYBRID

SAMLConfig2Update them and Reload the Configuration.

New Users logged in with the domain would get the initial role as OE_PUBLIC, as the roles are coming in through the application.

For REMOTE SAML 2.0 Type

  • Change the OvalEdge SAML 2.0 Type to REMOTE from HYBRID in the “Configuration” through the admin user and click on “Reload the Configuration”.
    SAMLConfig3
  • Admin users can customize the Roles by clicking on Manage Roles under Security Tab.
    Manage Users
  • After adding the roles, it would appear for logged in users in User Manager’s Users and Roles as shown below:
    User Roles
    Now you have connected your OKTA with the Ovaledge application.

Copyright © 2019, OvalEdge LLC, Peachtree Corners GA USA