Introduction

I hope you are doing well. In this article, we are going to understand how more than one application connects with a common interface application using Single Sign On. In this case study, we are using Cognito for authentication and authorization. This scenario is used mostly in most enterprises to avoid sign-in the application and to keep the common guard rails.

In today's world, each application has its own subsystem, and the enterprise has to manage multiple applications for daily routine business cases.

For example, Enterprise has HRMS, IT ticket system, and Code Repo, etc., In earlier days, we maintained credentials in each system, and the user also had to keep the same credentials in all systems, or else he needed to remember all off the top of their head.

On top of that, we are going to look at how to avoid redundant logic in multiple applications so that we can avoid engineering and maintenance work.

Scope

Problem Statement of Common Interface Architecture with SSO

Currently one of the real-time business cases, we have multiple applications in which we need the same sort of functionality in more than one application, and the data is also somewhat the same. In the case of following the legacy approach, we have to make a development effort in both the application for the same piece of work. The drawbacks of this approach which we are facing as rightly bindied with application, follow the same sort of legacy approaches.

Solution

High-Level Architecture

High-Level Architecture

Low-Level Components Design

Low-Level Components Design

Process flow Common Interface Architecture with SSO

System Component

# Component Name Component Task or what it does in this architecture
1 Cognito It's one of the AWS services that offers to develop authentication flows using social providers such as Facebook, Google, and Amazon and provides fine-grained access control to mobile and web applications.
2 Rest API - Python The Rest API is written with the Mimimal API approach using Python
3 API Gateway This acts as a gateway or gatekeeper for external calls before connecting the actual interface.
4 Amplify AWS Amplify is a set of tools that can be used by front-end developers to build full-stack applications on AWS. This greatly reduces human effort to create a mobile/web backend and visually create a frontend UI abstracting most of the cloud services, making it easy for frontend developers with little Cloud experience.
5 AppSync Single point of contact for development and endpoint
6 S3 Blob storage which is used to store static files
7 Lamda To implement some small sort of lightweight functionality

Tech Stacks

RealTime Scenarios

Advantages / Disadvantages of using AWS

Conclusion

The common interface architecture with a single sign-on gives a valuable add-on, such as keeping the common workflow in a single place of truth, which eventually does not require login again. since the consumer already signed in from a native application. On top of this approach, we can increase the scalability and agility, and this type of interface acts as a product selling point.