Centralize IAM by integrating Okta with AWS IAM Identity Center via SAML and SCIM.

Centralize IAM by integrating Okta with AWS IAM Identity Center via SAML and SCIM.

Table of Contents

Introduction

With the rise of SaaS offerings and cloud platforms like AWS, employees have to juggle an ever-growing collection of tools to get their day-to-day work done. As a result, identity management becomes cluttered, permission management grows increasingly opaque, and weak access controls heighten the risk of insider threats and ultimately leaving companies exposed.

In environments like this, having a central identity and access management solution becomes critical. It ensures a strong security posture, simplifies user and access administration, and provides better visibility into processes and user activity.

One widely adopted solution for centralized identity and access management is Okta. As a cloud-native identity platform, Okta serves as a trusted identity provider for thousands of organizations, enabling secure access to applications and infrastructure. Okta’s strengths include robust single sign-on (SSO), lifecycle management, and a large catalog of pre-built application integrations that support standards such as SAML, OIDC, and SCIM. These capabilities allow administrators to centrally manage users and groups in Okta and seamlessly provision access across downstream platforms using Okta-driven policies.

One popular Okta integration is AWS IAM Identity Center (formerly AWS SSO). AWS IAM Identity Center provides centralized workforce access to multiple AWS accounts and cloud applications. While it includes a built-in user directory, its true value is unlocked when paired with an external identity provider like Okta. By using SAML for authentication and SCIM for user and group provisioning, Okta can synchronize identities into AWS IAM Identity Center, dramatically simplifying identity and access management for AWS environments. AWS permissions can then be mapped directly to Okta groups and attributes, creating a clean, scalable, and auditable access model.

In this blog post, I’ll walk through the process of configuring Okta as the identity provider for AWS IAM Identity Center. We’ll set up the Okta application integration, enable SSO and SCIM provisioning, synchronize users and groups, and establish a unified IAM strategy across your AWS cloud environment.

Workflow

I’ll start by introducing the infrastructure we’ll build throughout this blog post. The architecture diagram below provides a high-level overview of the components involved and the workflow we’ll implement step by step. Our objective is to integrate Okta with AWS IAM Identity Center by using an Okta application integration, SAML-based single sign-on (SSO), and SCIM provisioning for identity synchronization.

Architecture

  1. We begin by configuring AWS IAM Identity Center and setting up a new identity source. By default, Identity Center uses its internal directory, but in this setup we will configure Okta as the external identity provider.

  2. Next, we’ll create an application integration for AWS IAM Identity Center in Okta. This application will allow us to assign Okta users and groups and grant them access to AWS through AWS IAM Identity Center.

  3. After creating the Okta application integration, we’ll configure SSO between Okta and AWS IAM Identity Center using SAML. This enables users to authenticate to AWS IAM Identity Center through Okta, leveraging Okta as the central authentication authority.

  4. With SSO in place, we’ll create a few identities in Okta to demonstrate the integration. We’ll create a group in Okta, assign it to the AWS IAM Identity Center application, and then create a sample user and add that user to the group. This approach allows us to manage AWS access centrally through Okta groups instead of individual user assignments.

  5. To make these identities available in AWS, we’ll configure SCIM provisioning between Okta and AWS IAM Identity Center. This ensures that users and groups created and assigned in Okta are automatically synchronized into AWS.

  6. Once the identities are synced, we’ll create Permission Sets in AWS IAM Identity Center and map the synchronized Okta groups to Permission Sets and AWS accounts within our organization. This ensures that users who belong to the sample Okta group automatically receive the appropriate permissions when accessing AWS through SSO.

  7. After the group and Permission Set assignments are complete, we’ll switch to the end-user experience. We’ll sign in to Okta as our test user and launch AWS IAM Identity Center via the Okta application to initiate an SSO login.

  8. Finally, once authenticated, we’ll access the AWS Management Console for one of the accounts using the configured Permission Sets, confirming that the Okta-to–AWS IAM Identity Center integration is functioning end to end.

Setup SSO with SAML

Start by enabling IAM Identity Center. Log in to the AWS Console, choose your preferred region, search for AWS IAM Identity Center, and click Enable.

AWS Identity Center Enable

Once IAM Identity Center is active, change the identity source. Open Settings from the left-hand menu, scroll down, and open the Identity source tab. Select ActionChange identity source.

AWS Identity Center Change Source

In the new window, choose External identity provider and continue with Next.

AWS Identity Center External Provider

You will now see the AWS configuration details required for the external identity provider.

Download the metadata file to simplify the setup in Okta and note the AWS access portal sign-in URL.

Leave the AWS Console open and switch to Okta.

AWS Identity Center Download Metadata

Open the Admin Console in Okta. Scroll to Setting up Single Sign-on and click Add App under Add an app to use Single Sign-On.

Okta Set SSO

The application catalog opens. Search for AWS and select AWS IAM Identity Center. Click Add Integration.

Okta App Catalog

In the application Settings, select SAML 2.0 as the sign-on method.

Copy the Metadata URL, open it in your browser, and save it as metadata.xml.

Okta Metadata URL

Open the Sign On tab. Click Edit next to Settings. Scroll to Advanced Sign-on Settings and paste:

  • AWS SSO ACS URL
  • AWS SSO issuer URL

Set Application username format to Okta username. Click Save.

Okta SSO Settings

Return to the AWS Console. Upload the Okta metadata file in the External Identity Provider configuration window.

Click Next to complete the SAML setup.

AWS Upload Metadata

Identity synchronization with SCIM

With SSO configured, the next step is to enable automated user and group synchronization using SCIM. In AWS IAM Identity Center, click Enable next to the Automatic provisioning banner.

AWS Identity Center Enable SCIM

A window titled Inbound automatic provisioning will appear. Copy both the SCIM endpoint and Access token.

Warning

The Access token is displayed only once. Record it securely.

AWS Identity Center Get SCIM Information

Return to Okta and open the AWS IAM Identity Center application. Select the Provisioning tab, click on Configure API Integration, and enter the following:

  • Base URL → the SCIM endpoint
  • API Token → the Access token

Click Save.

Okta Enable SCIM

Next, configure the To App provisioning settings. These settings define how users and groups are synchronized from Okta to AWS. Enable Create Users, Update User Attributes, and Deactivate to ensure full lifecycle management for identities provisioned into AWS IAM Identity Center.

Okta Provisioning Settings

Create Groups and Users

In this step, we will create a user and a group in Okta, assign the user to the group, assign the group to the AWS IAM Identity Center application, and trigger provisioning into AWS.

Start by opening the Okta Admin Console. Under Add users to Okta, click Import From and select Add user directly.

Okta Add User

Create a new user named Okta Demo, then click Save to complete the user creation.

Okta Okta Demo User

Next, navigate to group management. In the Admin Console, open the Directory menu on the left-hand side and select Groups. In the groups view, click Add group to create a new Okta group and name it AWS-ReadOnly.

Okta AWS-ReadOnly Group

Assign the user OktaDemo to the newly created AWS-ReadOnly group.

Okta Assign User

Verify that the user is now a member of the group.

Okta User Assigned

Next, return to the Okta AWS IAM Identity Center application and open the Assignments tab. Click Assign and select Assign to Groups, then choose the AWS-ReadOnly group.

Okta AWS Assign Group

The AWS-ReadOnly group is now assigned to the AWS IAM Identity Center application.

Okta AWS Group Assigned

To synchronize identities to AWS, open the Push Groups tab and click Push Groups. Select the AWS-ReadOnly group to begin provisioning.

The Push Status will change to Pushing. Once the status updates to Active, the users and groups have been successfully synchronized with AWS IAM Identity Center.

Okta Push Group

Assign Permissions

After SCIM provisioning completes, the AWS-ReadOnly group and the user Okta Demo will appear in AWS IAM Identity Center.

AWS Identity Center Group

You should also see the user Okta Demo appear in the AWS IAM Identity Center Console.

AWS Identity Center User

To grant AWS access, create a permission set. In IAM Identity Center, open Permission sets and click Create permission set. Select the AWS-managed permission set ReadOnlyAccess and finalize creation.

AWS Identity Center Create Permission Set

You should now see a new ReadOnlyAccess permission set in the list.

AWS Identity Center Read Only Permission Set

Next, assign this permission set to an AWS account. Go to AWS accounts, select the target account (for example AWSDemo), and click Assign users or groups.

AWS Identity Center Assign Permission Set and Group

A new window will open up. Select the AWS-ReadOnly group and click Next.

AWS Identity Center Assign Group

Next, select the ReadOnlyAccess permission set and click Next to review.

Members of the AWS-ReadOnly group now have read-only access to the AWSDemo account.

AWS Identity Center Assign Permission Set

To test the setup, log in with the Okta Demo user in Okta and open the Application Console. You should see the AWS IAM Identity Center application. Clicking it should redirect you to AWS IAM Identity Center.

Okta App Console

The user will see the AWSDemo account with the ReadOnlyAccess permission set assigned.

AWS Identity Center Login

Summary

Congratulations! You’ve successfully configured SSO with SAML and enabled automatic identity synchronization using SCIM. With this setup, you can fully leverage centralized identity management in Okta, streamline your Identity and Access Management processes, and strengthen the overall security posture of your environment.

I hope this walkthrough was helpful and that you picked up something new along the way. I’d love to hear your feedback and am happy to answer any questions you may have.

— Hendrik


Title Photo by SKINT on Unsplash

Related Posts

Serverless Jenkins on ECS Fargate: Part 1

Serverless Jenkins on ECS Fargate: Part 1

This is the first post of a three-post series. In this series, I would like to show you how you can leverage AWS Fargate and Terraform to deploy a serverless as well as fault-tolerant, highly available, and scalable Jenkins Controller/Agent deployment pipeline.

Read More
Build a Site-to-Site IPSec VPN with Public Encryption Domain

Build a Site-to-Site IPSec VPN with Public Encryption Domain

In this blog post, I would like to show you how you can leverage tools like pfSense and VNS3 in combination with Terraform to build a Site-to-Site IPSec VPN connection between AWS and on-premises networks with a public encryption domain.

Read More
Build Golden AMIs with Packer and AWS CodePipeline

Build Golden AMIs with Packer and AWS CodePipeline

In this blog post, I would like to demonstrate how you can leverage AWS CodePipeline and AWS Stepfunctions, along with Terraform and Packer, to establish a fully automated pipeline for creating Golden AMIs.

Read More