Implementing AWS Control Tower with AWS IAM Identity Center


OneLogin is an Identity Federation solution that performs Identity and Access Management (IAM) on the AWS cloud. Implementing this solution, you can seamlessly provide appropriate identity safeguards and automation as you scale your AWS Multi-Account environment.

The purpose of this AWS Implementation Guide is to enable every AWS Marketplace customer to activate, deploy and configure OneLogin in their AWS Control Tower environment while taking full advantage of the resources pre-configured by AWS Control Tower as part of the initialization.

Check out this video for a quick overview on OneLogin's integration with AWS Control Tower.

Solution Overview and Features

Cloud user and account setup and access management can quickly get complicated as you build out your AWS environment, but AWS Control Tower provides the easiest path to build a baseline environment based on best industry practices. OneLogin's IAM integrates with AWS's to ensure that your organization has the appropriate identity safeguards and automation as you scale your multi-account, multi-role environment.

OneLogin can help scale your AWS infrastructure securely and seamlessly with:

Architecture Diagram

Implementing strong, scalable IAM is a best practice for security and scalability. OneLogin's Trusted Experiences Platform is built to seamlessly manage all digital identities for your workforce and customers from the cloud. With OneLogin's powerful authentication and role-based user provisioning engine, quickly enable SSO across mobile, web and desktop, enforce MFA and security policies like password complexity and IP restriction, and automate user account provisioning across your corporate applications. OneLogin's automated AWS role provisioning enables organizations to streamline the most complicated of user policies and assign least-privileged policies to hundreds or thousands of permissions. OneLogin also enhances AWS's native security capabilities and is commonly used alongside AWS STS, AWS Organizations, AWS Session Tags, AWS Control Tower, AWS IAM, and Amazon EventBridge.

OneLogin integrates with AWS Control Tower in two ways:

In this document, you can find the implementation guidelines for scenarios where OneLogin and AWS Control Tower are integrated using the AWS IAM Identity Center (successor to AWS SSO). OneLogin provides a sample CloudFormation Template that is used to set up identity federation with OneLogin, as well as to provide guidance on sample AWS IAM Roles and permissions in the different AWS accounts. After AWS Control Tower creates the AWS accounts, OneLogin can perform identity federation via AWS IAM Identity Center or directly to the accounts themselves.

AWS CT - OneLogin to AWS IAM Identity Center (diagram)
In this scenario, OneLogin performs identity federation with IAM Identity Center. An end user would then sign in to the various AWS accounts using IAM Identity Center.

Deployment and Configuration

Creating a OneLogin Contract in AWS

Subscribing to OneLogin on AWS Marketplace

Go to OneLogin in the AWS Marketplace and click Subscribe.

AWS Marketplace - OneLogin (screenshot)

Configuring Your Contract Duration, Renewal and Contract Options

On the next screen, select your desired Contract Duration, Renewal Settings and Contract Options.

AWS Marketplace - OneLogin Options (screenshot)

Creating and Paying For Your Contract

Once you have configured your contract, click Create contract. If you agree to the pricing, click Pay Now when prompted to confirm the contract.

AWS Marketplace - OneLogin Contract (screenshot)

Setting Up Your Account

After confirming you wish to pay now, you're redirected to a sign-up form. Once the form is complete, a OneLogin account is automatically generated for you. You can now sign in to OneLogin.

Connecting OneLogin & AWS Control Tower with AWS IAM Identity Center

This topic describes how to configure OneLogin to provide SSO for AWS Control Tower using AWS IAM Identity Center.

OneLogin Administration

  1. Log in to OneLogin and go to Applications > Applications.
  2. Click Add App, then search for and select SAML Test Connector (Advanced).
    App Search - SAML Test Connector (Advanced) (screenshot)
  3. On the initial Configuration tab, rename the app to AWS Control Tower Demo and click Save.
    App - AWS Control Tower Demo (screenshot)

AWS Control Tower

  1. Open a second tab and navigate to the AWS Control Tower console. Click User and Access on the left-hand side and select View in AWS Single Sign-On to open AWS IAM Identity Center.
    AWS Control Tower (screenshot)
  2. On the Settings page, choose Change next to Identity Source.
  3. On the Change directory page, choose External Identity Provider.
  4. In the Service provider metadata section, click Show Individual Metadata Values
  5. Click the Copy icon next to AWS SSO ACS URL.

OneLogin Administration

  1. Switch back to the OneLogin configuration tab and select Configuration in the left-hand navigation pane.
  2. Paste the AWS SSO ACS URL you copied from IAM Identity Center into the Recipient, ACS (Consumer) URL Validator, and ACS (Consumer) URL fields.
    Important: you MUST modify the URL in the ACS (Consumer) URL Validator using Regular Expressions code. Specifically:
    • Add a ^ character at the beginning.
    • Escape all forward-slashes with a leading backslash.
    Your ACS (Consumer) URL Validator address will look similar to this:
    ACS (Consumer) URL Validator (screenshot)

AWS Control Tower

  1. Return to your AWS Control Tower tab and copy the AWS SSO issuer URL.
    AWS Control Tower - SSO issuer URL (screenshot)

OneLogin Administration

  1. Return to OneLogin and paste the AWS SSO issuer URL you copied into the Audience field.
  2. Scroll down and confirm that SAML nameID format is set to Email, then click Save in upper right.
  3. Under More Actions, click SAML Metadata. This will download the OneLogin SAML metadata file from OneLogin to your computer's downloads folder.
    OneLogin - Download SAML metadata (screenshot)

AWS Control Tower

  1. Switch back to the AWS Control Tower console, click on User and Access on the left, and click View in AWS Single Sign-On to open AWS IAM Identity Center.
  2. Choose Settings in the left panel. Next to Identity source, choose Change.
  3. In the Identity provider metadata section, choose Browse. Search for and upload the metadata file that you downloaded from the OneLogin Portal.
  4. Choose Next: Review, then type CONFIRM in the text box to confirm that you want to change the directory. Click Finish.

Testing Your Configuration

Adding a Test User from OneLogin to AWS

OneLogin Administration

  1. Go to Users at the top navigation bar of your OneLogin admin portal, then select your test user.
  2. In the left-hand navigation pane, select Applications and click the blue + sign to add a new application for this user.
    OneLogin - Add User (screenshot)
  3. Select AWS Control Tower Demo from the drop-down and click Continue. Confirm that the nameID value shown matches the email address of your test user.
    OneLogin - Assign AWS Control Tower Demo (screenshot)
  4. Click Save, then Save User.

AWS Control Tower

  1. Switch back to the AWS Control Tower console. Click User and Access on the left-hand side and choose View in AWS Single Sign-On to open AWS IAM Identity Center.
  2. In the left navigation pane, choose Users, then choose Add User.
  3. in the Username field, enter the email address associated with your OneLogin test user.
  4. Enter that same email address in the Email and Confirm Email Address fields.
  5. Enter any value you like for First Name, Last Name, and Display Name fields, but ensure that they are populated.
  6. Choose Next: Groups and select AWSControlTowerAdmins and AWSLogArchiveAdmins for testing purposes.
  7. Click Add User. If the user is added successfully, your configuration is complete.

Assigning the Test User to an Account

AWS Control Tower

  1. On the AWS Accounts page in the left navigation pane, go to the AWS organization tab. Select the AWS account you want to assign to the user and choose Assign users.
  2. Select the user you created and click Next: Permission sets.
  3. Under Select Permission Sets, select the permission set you want to assign to the user. If you don't have an existing permission set, choose Create New Permission Set. Click Finish.

Testing Your SSO

OneLogin Administration

  1. Select Profile -> App Portal/Home from the top-right corner.
    OneLogin - Profile App Portal
  2. Go to the Company: Everything tab of your app portal.
  3. Click on the AWS Control Tower Demo application. If it doesn't appear, re-confirm that your test user is assigned to the AWS Control Tower Demo application in OneLogin.
  4. Following a set of browser redirects, the AWS access portal appears and you are able to access your AWS Control Tower master or log account based on the OneLogin user authentication.

Optional: Associating a Managed Control Tower Account with OneLogin User

AWS Control Tower

  1. Open the Control Tower console from your master account, go to Account Factory, and click Enroll Account.
    AWS Control Tower - Enroll Account
  2. Select AWS Control Tower Account Factory as the product name and click Launch Product, then provide a name for the product and click Next.
  3. Type in a new SSO user email, account email, and managed OneLogin user details, then click Next.
  4. Click Next and Launch. This step takes about 15-20 minutes to complete; your status will update to SUCCEEDED when it's done, and you can move on to additional steps while it is in progress.
  5. In the meantime, check the email you provided for an invitation email from no-reply@login.awsapps.com, and click Accept Invitation.
  6. Note your User Portal URL (example: https://d-xxxxxx.awsapps.com/start) and your Username.
  7. Open a fresh browser or incognito window and paste your User Portal URL into the address bar. You'll see a series of redirects on your browser to take you to OneLogin.
  8. Enter the OneLogin username created in the previous step. This redirects you to AWS IAM Identity Center.

Supplementary Information


Best Practices

  • Aim for least privileged access to AWS.
  • Think through your AWS IAM roles and permissions.
  • Determine how you would want your AWS IAM structure to look like for the Control Tower created accounts and your production AWS accounts.