Single Sign On

Single Sign On Integration Guide

Last updated:October 24, 2024

Imagine a world where one set of credentials gives you access to multiple applications. That’s the convenience Single Sign-On (SSO) brings. It simplifies user experience, reduces password fatigue, and enhances security.

What makes OAuth OpenID Connect special?
OAuth OpenID Connect is the engine that powers SSO. It’s an authentication standard built on OAuth 2.0. Unlike SAML, which uses XML, OAuth OpenID Connect uses JSON. This makes it lightweight and perfect for the web. It verifies user identity and gathers basic profile information in a secure and efficient manner.
Why are SSO and OAuth OpenID Connect the perfect pair?
When you log into one application using SSO with OAuth OpenID Connect, you’re authenticated across all connected applications. It’s seamless, efficient, and the future of authentication.

Use cases

User login

Authenticate swiftly and securely with your trusted identity provider. Experience a seamless login process, bypassing the need to remember another set of credentials. Enjoy the enhanced security provided by your identity provider’s robust authentication measures. This is the convenience and security of Single Sign-On.


How it works

User-Browser Interaction

Initiate authorization

Redirect the user to the identity provider's page.

Application-Server Interaction

Acquire access token

Request an access token post successful authorization.

Application-Server Interaction

Retrieve user information

Use the access token to fetch user information and decide to grant the user access.


1. Initiate authorization

This step occurs in the user’s browser.

  • Initiate Authorization: Your application redirects the user’s browser to the identity provider’s authorization endpoint (/v2/authorize).
  • User Login: The user enters their credentials and logs in on the identity provider’s page.
  • Two-Factor Authentication (2FA): If enabled, the user completes the second factor (e.g., entering a code sent to their mobile device).
  • Return to Application: Post successful login and 2FA verification, the user’s browser is redirected back to your application using the predefined redirect URL.
When integrating with our SSO application based on OpenID Connect, it is crucial to obtain explicit end-user consent before including Personally Identifiable Information (PII) such as name and preferred_username in the /sso/v2/userinfo response. This consent is automatically integrated during the authorization flow when the scope=openid profile is requested. External applications should ensure they comply with this process to maintain user trust and data privacy.

Show request parameters

Sample request:

Language:
curl -G https://eu-test.oppwa.com/sso/v2/authorize \
 -d "client_id=8a829418504762810150482b9432129d" \
 -d "redirect_uri=https://docs.oppwa.com/tutorials/openid" \
 -d "scope=openid" \
 -d "response_type=code" \
 -d "login_hint=8ac7a4c79394bdc801939736f17e063d" \
 -d "state=1e692915-fa4d-4ad8-adf4-ba889b4b2ae3"

Try it Out

2. Acquire access token

This step is handled by your application’s server.

  • Acquire Access Token: Your application makes a request to the identity provider’s token endpoint (/v2/token) and receives an access token.

Show request parameters

Show response parameters

Sample request:

Language:
curl https://eu-test.oppwa.com/sso/v2/token \
 -d "code=" \
 -d "redirect_uri=https://docs.oppwa.com/tutorials/openid" \
 -d "scope=openid" \
 -d "grant_type=authorization_code" \
 -H "Authorization: Basic OGE4Mjk0MTg1MDQ3NjI4MTAxNTA0ODJiOTQzMjEyOWQ6cDBLdVNFU0pmLUpBWnl0NXN1UVY="

Try it Out

3. Retrieve user information

This step is also handled by your application’s server.

  • Retrieve User Information: Your application uses the access token to query the identity provider’s user information endpoint (/v2/userinfo).
  • User Login Confirmation: Based on the received information and your application’s rules, decide whether to grant the user access.

Show request parameters

Show response parameters

Sample request:

Language:
curl -G https://eu-test.oppwa.com/sso/v2/userinfo \
 \
 -H "Authorization: Bearer <access-token>"

Try it Out


See also