Introduction

In the realm of the web, it’s common to seamlessly transition between different web applications without the need to repeatedly input our user credentials. Take, for instance, the scenario where we’re on our bank’s website and wish to access our rewards points. When the bank’s website redirects us to the rewards point platform hosted by a third-party application, we’re not prompted to enter any login details. This seamless access experience is what’s commonly known as single sign-on (SSO).

In its simplest terms, single sign-on (SSO) entails signing in just once using your credentials and thereafter, gaining access to other web applications without the hassle of re-entering your login information. The initial web application where you logged in with your credentials employs certain techniques to facilitate this seamless access across different web applications. In this article, the focus is on different SSO techniques across channels (browser and mobile app) using modern Identity and Access Management (IAM) technology, Okta.

Scope

There are primarily two industry-approved solution mechanisms to implement SSO — Security Assertion Markup Language (SAML) and OAuth-OIDC. OAuth-OIDC is the newer pattern out of these two, while SAML is something that has existed for decades. There are several technologies that are available to facilitate SSO — this includes Ping Identity, Azure Active Directory, Okta, Auth0, etc. This article demonstrates how using Okta SSO can be accomplished across web applications and mobile devices.

For each of the scenarios described below, a configuration app needs to be created in the Okta admin console to import service provider (SP) metadata information and also to share identity provider (IDP) Okta’s metadata information with a service provider (SP). The reference links provided below from the Okta website cover that. This documentation skips that generic IDP-SP SAML metadata exchange part and focuses on the actual process flow for each of the use cases. Likewise, the metadata configuration in the SP website or the configuration of the OAuth-OIDC app is also skipped. In the following sections, we will discuss Okta-based SSO techniques for 3 common use cases.

Website → Website SSO Using SAML

In this approach, the user first logs in to the identity provider website (e.g., your bank). After that, the user clicks on a link/tab/button on the website to access a different website (e.g., rewards point website) in a new browser tab or within the webpage of the main website through an embedded iFrame.

Native Mobile App → Website SSO Using SAML

This is a special access pattern. In this case, the user has logged in to a mobile app (e.g. bank’s native mobile app). However, the web app they want to access (e.g., rewards points) does not have a native mobile app. In that case, the SSO needs to happen from the mobile app to a browser-based web application. To enable single sign-on (SSO), the identity provider mobile app initiates the process by launching an embedded browser web-view within the mobile app itself. This embedded browser facilitates the SSO process, seamlessly connecting the user from the mobile app to the browser-based web application.

Native Mobile App → Native Mobile App SSO using OAuth-OIDC

In this particular use case, the objective is to achieve single sign-on (SSO) from one native mobile app to another native mobile app on a mobile device. Unlike the previous scenarios where SAML was utilized for SSO, this approach relies on the OAuth-OIDC pattern.

Conclusion

Even though single sign-on (SSO) has existed in web platforms for decades, the techniques of implementation are evolving with the emergence of new solution providers as well as the need to implement such a solution across various web access channels (browser and native mobile app). In this article, we demonstrated techniques on how to implement SSO across browser-based websites and native mobile apps using the modern identity & access management solution Okta.

References

  1. https://developer.okta.com/docs/guides/build-sso-integration/saml2/main/
  2. https://help.okta.com/en-us/content/topics/apps/apps-about-saml.htm?cshid=ext-apps-about-saml
  3. https://developer.okta.com/docs/guides/configure-native-sso/main/
  4. https://developer.okta.com/docs/guides/session-cookie/main/
  5. https://developer.okta.com/docs/api/openapi/okta-management/management/tag/Session/