Full Text

Research Article

SAVIYNT IGA Solution for Simplifying and Streamlining the IT Operations


Abstract

Saviynt Identity Governance and Administration (IGA) ensures that users have seamless access to necessary resources on the cloud, on-premises, or in hybrid environments. Irrespective of whether the critical assets reside on the cloud or on-premises, IGA enables organization to effectively bring together all user and accounts information in a single pane using automation jobs and connections.

 

Keywords: Enterprise Identity Cloud (EIC) converges IGA capabilities and provides predefined connectors that can be configured by administrators and application owners to integrate with external, identity-aware applications, such as REST-based applications, Office 365, Microsoft Azure, and business-critical procurement and sourcing applications such as SAP Ariba. These connectors support capabilities, such as import of identity and access data (full/incremental), account creation and status change (enable/disable), account modification (assign or revoke entitlements, modify account attributes), account deletion based on deprovisioning or access rejection.

 

As part of phase 1B implementation, the ITPN team will focus on creating the connectors for 5 applications – Azure AD, CyberArk, M365, Azure DevOps, and Ariba. This document describes the high-level architecture for the 5 connector applications.

 

The SDD describes design goals and considerations, provides a high-level overview of the system architecture, and describes the data design associated with the system, as well as the human-machine interface and operational scenarios. The high-level system design is further decomposed into low-level detailed design specifications for each system component, including internal communications, software, system integrity controls, and external interfaces.

 

1. Introduction

Saviynt EIC provides predefined connectors that can be configured by administrators and application owners to integrate with external, identity-aware applications, such as Microsoft Active Directory, Salesforce, database and REST-based applications, Workday, Epic, Cerner, Office 365, Google Apps, Amazon AWS, Microsoft Azure, and GitHub. Predefined connectors are also available for on-premises business critical applications, such as SAP, Oracle EBS, and PeopleSoft.

 

Phase 1B is implementing the 3 Out-of-the-box connectors (Azure AD, CyberArk, M365) and 2 custom REST Connector (Azure DevOps, Ariba).




Figure 1: Context diagram.

 

The connectors provide data transfer capability to and from the Saviynt IGA system and the target system. This data transfer would be for either ingesting data into Saviynt for the purposes of governance and certification or for provisioning and de-provisioning users and accounts in the target system.

 

The detail requirements document for each of the connector can be found at the links below.

Azure AD

Azure DevOps

CyberArk PVWA

Microsoft 365

Ariba

 

The first phase of Phase 1B will only focus on importing accounts and users from the target systems. Once the users and accounts are ingested into the Saviynt system, certifications will be performed. Phase 1B will focus on a hybrid of Application Owner/Manager certifications initially.

 

The goal of access certification is to understand who has access to what to strengthen least privilege access model. For that to happen, we need to pull user info, entitlements (roles), and mapping of user-to-roles from the target systems. We need user and related access/permission information.

 

The Phase 1B design is primarily API based. Saviynt IGA would use oAuth2 compliant REST APIs with target systems such as Azure AD, Azure DevOps, M365, CyberArk and Ariba. Each of these target systems support Open APIs that are REST or SCIM (System for Cross-domain Identity Management specification) compliant. Saviynt connectors would store the configuration required for authentication/authorization and calls to get the users, accounts, and entitlements.

 

Wherever possible, the connectors will be supplemented with the scripts needed to maintain them easily.

 

2. Design Considerations

Ariba REST API availability and usage – This was mitigated with the help of Ariba Procurement and Supplier team. The Saviynt REST connector can be used for importing into Saviynt. However, the Master Data API that enables this functionality does not support provisioning of users. The provisioning of users is supported by the Identity Provisioning SAP Ariba SCIM API that is currently in beta and available only to the SAP Task Center use case. This is an early access API with limited availability to a small set of customers. An alternative implementation for future provisioning use cases would be to use the SFTP Connector from Saviynt. This connector can query Saviynt IGA repository and upload a CSV file to target system FTP folder. The SAP scheduled job can then pick it from that SFTP folder.

M365 Agent architecture needs to cover the long-term objectives. It must be maintainable. Where possible PaaS services should be used.

CyberArk Identity Portal Licensing and SCIM API availability. The current installation of the CyberArk Privilege Vault Web Application (PVWA) doesn’t expose the SCIM API. Additionally, licenses must be purchased and SCIM Server must be configured. This is a must for the Saviynt CyberArk SCIM Connector.

The primary goal of this project is to ingest all user accounts and entitlement data from target systems like Microsoft Azure AD, Ariba, CyberArk, M365, and ADO, into Saviynt IGA.

Additionally, once the entitlement data is in Saviynt, the application owners will run certification campaigns to certify the access and entitlements of individuals and groups.

Where possible, the implementation will use Out-of-the-box Connectors. When using REST/SCIM compliant APIs from the target host systems, the implementation will use Saviynt REST connectors. If the implementation is highly complex and is not covered by any of the built-in connectors the implementation will create custom code connectors.

All connector implementations will be documented extensively for usage, maintainability, and extensibility.

All connector JSON files will be stored and versioned in the project GIT repository in Azure DevOps.

All connector JSON files will follow the documentation and best practices guidelines as provided by the Saviynt team.

 

3. Development Methods and Contingencies

The Saviynt connector implementation uses several OOTB connectors. Each of these connectors can be configured to connect to target system REST endpoints. The design involved for this is primarily identifying target system APIs, and how they can be securely accessed from Saviynt. Each of the connectors would be hosted in a connector microservice. Sometimes the connectors do not exactly support the required integration between Saviynt and target systems. In these cases, custom connectors will be developed and hosted in these microservices.

 

 

Figure 2: EIC framework.

 

4. Architectural Strategies

Use of out-of-the-box Saviynt connectors. Wherever possible OOTB connectors are preferred to reduce development timeframes and need to testing custom code.

Use of Saviynt REST connectors for integrating with target systems. Wherever needed Saviynt REST connector should be used to ingest user data from target API systems.

Use of oAuth2 or OpenAI compliant REST/SCIM APIs. Industry standard authentication and swagger enabled protocols are preferrable when consuming REST/SCIM APIs from target systems.

Use of Java for custom connector code. Saviynt uses java jar files for custom connector code. Therefore, we will create connectors using the same Spring Boot libraries.

Use of .NET Web API for Azure DevOps API connectivity. Certain services run using delegated permissions from a service account. These services should be encapsulated in the .NET Web API.

Future connector development will build a gateway of APIs used across multiple connectors. There will be a mix of custom code connectors, REST connectors and OOTB connectors used in future application integrations.

The implementations will use IaaS and PaaS cloud services as needed for the connector integration.

The implementation shall hook on to Saviynt’s internal error handling using the available error and exception sections in the JSON provided for the internal OOTB connectors. When implementing custom connectors, the developer should follow the same error and exception handling patterns.

The system shall scale up and scale out as needed for handling connector traffic from different target systems.

The current state IAM architecture has Saviynt IGA application servers hosted in the AWS cloud with a peering connection between the cloud network and on-premises network. The on-premises Saviynt client interacts with the database and active directory servers.

The future state of the IAM architecture for the downstream systems will onboard the numerous applications like Microsoft 365 SharePoint, and Teams applications, Ariba Procurement and Sourcing applications, CyberArk Password Vault application, Dynamics 365 etc.

 

 

 
 
Figure 3: Actual diagram.

 

5. Goals and Guidelines

The primary goal of this project is to ingest all user accounts and entitlement data from target systems like Microsoft Azure AD, Ariba, CyberArk, M365, and ADO, into Saviynt IGA.

 

Additionally, once the entitlement data is in Saviynt, the application owners will run certification campaigns to certify the access and entitlements of individuals and groups.

 

Where possible, the implementation will use Out-of-the-box Connectors. When using REST/SCIM compliant APIs from the target host systems, the implementation will use Saviynt REST connectors. If the implementation is highly complex and is not covered by any of the built-in connectors the implementation will create custom code connectors.

 

All connector implementations will be documented extensively for usage, maintainability, and extensibility.

 

All connector JSON files will be stored and versioned in the project GIT repository in Azure DevOps.

 

All connector JSON files will follow the documentation and best practices guidelines as provided by the Saviynt team.

 

All connectors will follow the mapping requirements as stated in the business requirements documents.

 

As most of the connector data transfer activity happens behind the scenes during a schedule import job execution, it is important to test the connector configurations and the import jobs for reliability, responsiveness, and durability. The configuration should not result in hung jobs and should fail promptly after a period of execution as mentioned in the timeout period parameter.

 

The connectors are hosted in a microservices container, and these containers are hosted at the edge either in a single tenant or multitenant model. Saviynt services are hosted in a single-tenant edge model. As the number of connectors increases the edge services like container scaling parameters, elastic and RDS databases, MQ topic partitioning should be adjusted to optimize the performance of the Saviynt IGA system. A ticket should be opened with the Saviynt helpdesk to resolve performance related issues.

 

Performance requirements are the defined scalability or responsiveness expectations of specific workloads that are processed on a system.

 

 


Figure 4: SAVIANT cloud architecture.

 

6. System Architecture and Architecture Design

Saviynt EIC provides predefined connectors that can be configured by administrators and application owners to integrate with external, identity-aware applications, such as Microsoft Active Directory, Salesforce, database and REST-based applications, Workday, Epic, Cerner, Office 365, Google Apps, Amazon AWS, Microsoft Azure, and GitHub. Predefined connectors are also available for on-premises business critical applications, such as SAP, Oracle EBS, and PeopleSoft.

 

Standard connectors support capabilities, such as import of identity and access data (full/incremental), password synchronization, account creation and status change (enable/disable), account modification (assign or revoke entitlements, modify account attributes), account deletion based on deprovisioning or access rejection, password management, and management of AD/LDAP groups.

 

The above diagram depicts the Saviynt connector architecture for Azure AD, CyberArk, Azure DevOps, Ariba, and M365.

 

At the onset, an azure app registration with proper application permissions to graph and office 365 APIs is provisioned. Azure acts as the Identity provider for Office 365, Azure AD, CyberArk, and Azure DevOps Saviynt connectors. Ariba Connector uses SAP Ariba’s own Identity provider.

 

 


Figure 5:
Future state architecture.

 

The following interfaces are used for the connectors below.

1)Azure AD – oAuth2 REST using the Graph APIs

2)Azure DevOps – oAuth2 REST using the VSTS APIs

3)CyberArk – oAuth2 SCIM API

4)M365 – oAuth2 REST using Graph and Office 365 APIs

 

Ariba – oAuth2 using the Ariba OpenAI.

 


Figure 6:
Connector architecture.

 

The general connector architecture is a pattern taken from the API gateway book. Each connector has a security system which acts as an application wrapper for the target system API connection. The application wrapper is called an endpoint. It provides an interface to configure the authentication, authorization, and search API calls to the target application.

A Security System represents the connection between EIC and the target application.

 

A Connected Application is the target application for which EIC manages the identity repository.

 

An Endpoint is an instance of an application within the context of a security system. A Connector is a software component that enables communication between EIC and Azure through the Azure Management API.

 

Import Job is a background scheduled job using crontab to import or provision data from the Azure AD system.

 

7. Azure AD and DEVOPS Connector Architecture

 

 


Figure 7:
Azure IDP authentication.

EIC for Azure AD delivers comprehensive security management, governance, and intelligence for Azure AD accounts by continuously scanning objects, such as users, roles, groups, and applications, for any risky misconfiguration or unauthorized user access.

 

The above architecture diagram illustrates Saviynt’s Azure Connector architecture and communication with Azure AD. The right-side depicts the Azure and left side depicts the EIC. Azure AD Connector is used for reconciliation of all the users and accounts. Azure Management API is used for integration between EIC and Azure AD. Saviynt uses the Azure IDP to authenticate and authorize users based on the permissions granted to the tenant associated with the Saviynt connector registration. Once the AuthN/AuthZ routine is completed the subsequent calls to the graph API are performed using the access/refresh token procured from the authentication calls.

 

Azure AD connectors are triggered by import jobs. Azure AD import jobs perform the following:

On the first day: Saviynt import job performs a full import of objects (accounts, access, or users) to bring in all existing records from the Azure application to EIC. As part of this process, the records that are deleted in the target system are also identified and marked as inactive. Microsoft Graph API is used to keep track of users and groups imported from Azure AD to EIC. After it does a full import of users and groups, it stores a delta token in EIC.

 

On the nth day: After the first full import, an incremental import job for bringing in only the changes that are made in the target application after the last full import, is run. From the next run onwards, only the Azure AD objects that have been added, modified, or deleted after the first import operation are fetched for importing.

 

During incremental import, Microsoft Graph API uses the delta token to check and verify the users that are newly imported after the first full import. It skips already imported users and groups, and only imports the newly added users or groups after the full import to EIC. The incremental import performs an import of updated users and groups and newly added/removed users and groups to EIC. The incremental import job is run daily.

 

8. References

  1. https://savantwealth.com/our-process/

  2. https://www.saviantconsulting.com/blog/bi-maturity-model.aspx