AWS Sso Ug
AWS Sso Ug
User Guide
AWS Single Sign-On User Guide
Amazon's trademarks and trade dress may not be used in connection with any product or service that is not
Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or
discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may
or may not be affiliated with, connected to, or sponsored by Amazon.
AWS Single Sign-On User Guide
Table of Contents
What is AWS Single Sign-On? .............................................................................................................. 1
AWS SSO features ...................................................................................................................... 1
Getting started .................................................................................................................................. 3
AWS SSO prerequisites ............................................................................................................... 3
Step 1: Enable AWS SSO ............................................................................................................. 4
Step 2: Choose your identity source (optional) ............................................................................... 4
Step 3: Set up SSO to your AWS accounts (optional) ...................................................................... 5
Step 4: Set up SSO to your applications (optional) ......................................................................... 5
Key AWS SSO concepts ....................................................................................................................... 6
Users, groups, and provisioning ................................................................................................... 6
User name and email address uniqueness ............................................................................. 6
Groups .............................................................................................................................. 6
User and group provisioning ................................................................................................ 6
AWS SSO-integrated application enablement ................................................................................ 7
Considerations for sharing identity information in AWS accounts .............................................. 7
Enable AWS SSO-integrated applications in AWS accounts ...................................................... 7
SAML federation ........................................................................................................................ 8
User authentications ................................................................................................................... 8
Authentication sessions ....................................................................................................... 8
Permission sets .......................................................................................................................... 9
Delegating permission set administration .............................................................................. 9
Use cases ........................................................................................................................................ 11
Enable SSO access to your AWS applications ............................................................................... 11
Configure my AWS application in a standalone AWS account .................................................. 11
AWS SSO is currently not configured in my organization ....................................................... 11
AWS SSO is currently configured in my organization ............................................................. 12
Manage your identity source .............................................................................................................. 13
Considerations for changing your identity source ......................................................................... 13
Changing between AWS SSO and Active Directory ................................................................ 13
Changing between AWS SSO and an external identity provider (IdP) ....................................... 13
Changing from one external IdP to another external IdP ....................................................... 14
Changing between Microsoft AD and an external IdP ............................................................ 14
Change your identity source ...................................................................................................... 14
Manage identities in AWS SSO ................................................................................................... 15
Provisioning when users are in AWS SSO ............................................................................. 15
Add users ........................................................................................................................ 15
Add groups ...................................................................................................................... 16
Add users to groups ......................................................................................................... 16
Edit user properties .......................................................................................................... 17
Disable a user .................................................................................................................. 17
Reset a user password ...................................................................................................... 17
Password requirements ..................................................................................................... 18
Supported user and group attributes .................................................................................. 18
Using predefined attributes for access control ...................................................................... 19
Connect to your Microsoft AD directory ...................................................................................... 20
Provisioning when users come from Active Directory ............................................................ 20
Connect AWS SSO to an AWS Managed Microsoft AD directory .............................................. 21
Connect AWS SSO to a self-managed Active Directory .......................................................... 21
Attribute mappings .......................................................................................................... 22
Connect to your external identity provider .................................................................................. 25
Provisioning when users come from an external identity provider ........................................... 26
How to connect to an external identity provider ................................................................... 26
SCIM profile and SAML 2.0 implementation ......................................................................... 27
Supported identity providers ............................................................................................. 32
iii
AWS Single Sign-On User Guide
iv
AWS Single Sign-On User Guide
v
AWS Single Sign-On User Guide
Active Directory “Domain Users” group does not properly sync into AWS SSO ................................. 137
Invalid MFA credentials error .................................................................................................... 137
I get a 'An unexpected error has occurred' message when I attempt to register or sign in using an
authenticator app ................................................................................................................... 137
Document history ........................................................................................................................... 138
AWS glossary ................................................................................................................................. 140
vi
AWS Single Sign-On User Guide
AWS SSO features
AWS SSO is integrated deeply with AWS Organizations and AWS API operations, unlike other cloud
native SSO solutions. AWS SSO natively integrates with AWS Organizations and enumerates all your
AWS accounts. If you have organized your accounts under organizational units (OUs) you will see them
displayed that way within the AWS SSO console. That way you can quickly discover your AWS accounts,
deploy common sets of permissions, and manage access from a central location.
AWS SSO makes it simple for you to manage SSO across all your AWS accounts, cloud applications, AWS
SSO-integrated applications, and custom SAML 2.0–based applications, without custom scripts or third-
party SSO solutions. Use the AWS SSO console to quickly assign which users should have one-click access
to only the applications that you've authorized for their personalized end-user portal.
When you enable the service for the first time, we create a default store for you in AWS SSO. You can use
this store to manage your users and groups directly in the console. Or, if you prefer, you can connect to
an existing AWS Managed Microsoft AD directory and manage your users with standard Active Directory
management tools provided in Windows Server. You can also provision users and groups from an
external identity provider into AWS SSO and manage access permissions in the AWS SSO console. If you
choose to manage your users in AWS SSO, you can quickly create users and then easily organize them
into groups, all within the console.
AWS SSO is integrated with Microsoft AD through the AWS Directory Service. That means your
employees can sign in to your AWS SSO user portal using their corporate Active Directory credentials. To
grant Active Directory users access to accounts and applications, you simply add them to the appropriate
Active Directory groups. For example, you can grant the DevOps group SSO access to your production
AWS accounts. Users added to the DevOps group are then granted SSO access to these AWS accounts
automatically. This automation makes it easy to onboard new users and give existing users access to new
accounts and applications quickly.
AWS SSO supports commonly used cloud applications such as Salesforce, Box, and Office 365. This
cuts the time needed to set up these applications for SSO by providing application integration
1
AWS Single Sign-On User Guide
AWS SSO features
instructions. These instructions act as guard rails to help administrators set up and troubleshoot these
SSO configurations. This eliminates the need for administrators to learn the configuration nuances of
each cloud application.
With AWS SSO, you can enable a highly available SSO service with just a few clicks. There is no additional
infrastructure to deploy or AWS account to set up. AWS SSO is a highly available and a completely secure
infrastructure that scales to your needs and does not require software or hardware to manage. AWS SSO
records all sign-in activity in AWS CloudTrail, giving you the visibility to monitor and audit SSO activity in
one place.
Enabling AWS SSO, including enabling AWS Organizations, has no impact on the users, roles, or policies
that you’re already managing in IAM. You can continue to use your existing access management
processes and tools as your organization adopts AWS SSO.
You can add any AWS account managed using AWS Organizations to AWS SSO. Both AWS SSO and AWS
Organizations are available at no additional cost.
2
AWS Single Sign-On User Guide
AWS SSO prerequisites
Getting started
In this getting started exercise, you enable AWS Single Sign-On, and then can optionally connect your
directory, set up SSO to your AWS accounts, and/or set up SSO to your cloud applications. Although not
required, we recommend that you review Understanding key AWS Single Sign-On concepts (p. 6)
before you begin using the console so that you are familiar with the core features and terminology.
Topics
• AWS SSO prerequisites (p. 3)
• Enable AWS SSO (p. 4)
• Choose your identity source (p. 4)
• Set up SSO to your AWS accounts (p. 5)
• Set up SSO to your applications (p. 5)
• Have first set up the AWS Organizations service and have All features set to enabled. For more
information about this setting, see Enabling All Features in Your Organization in the AWS
Organizations User Guide.
• Sign in with the AWS Organizations management account credentials before you begin setting up
AWS SSO. These credentials are required to enable AWS SSO. For more information, see Creating and
Managing an AWS Organization in the AWS Organizations User Guide. You cannot set up AWS SSO
while signed in with credentials from an Organization’s member account.
• Have chosen an identity source to determine which pool of users has SSO access to the user portal. If
you choose to use the default AWS SSO identity source for your user store, no prerequisite tasks are
required. The AWS SSO store is created by default once you enable AWS SSO and is immediately ready
for use. There is no cost for using this store. Alternatively, you can choose to Connect to your external
identity provider (p. 25) using Azure Active Directory. If you choose to connect to an existing Active
Directory for your user store, you must have the following:
• An existing AD Connector or AWS Managed Microsoft AD directory set up in AWS Directory Service,
and it must reside within your organization's management account. You can connect only one AWS
Managed Microsoft AD directory at a time. However, you can change it to a different AWS Managed
Microsoft AD directory or change it back to an AWS SSO store at any time. For more information, see
Create a AWS Managed Microsoft AD Directory in the AWS Directory Service Administration Guide.
• You must set up AWS SSO in the Region where your AWS Managed Microsoft AD directory is set up.
AWS SSO stores the assignment data in the same Region as the directory. To administer AWS SSO,
you should switch to the Region where you have setup AWS SSO. Also, note that AWS SSO’s user
portal uses the same access URL as your connected directory.
• If you currently filter access to specific Amazon Web Service (AWS) domains or URL endpoints using
a web content filtering solution such as next-generation firewalls (NGFW) or secure web gateways
(SWG), you must add the following domains and/or URL endpoints to you web-content filtering
solution allow-lists in order for AWS SSO to work properly:
3
AWS Single Sign-On User Guide
Step 1: Enable AWS SSO
We highly recommend that before you enable AWS SSO that you first check to see if your AWS account
is approaching the quota limit for IAM roles. For more information, see IAM object quotas. If you are
nearing the quota limit, you should consider increasing the quota, otherwise you may have issues with
AWS SSO as you provision permission sets to accounts that have exceeded the IAM role limit.
1. Sign in to the AWS Management Console with your AWS Organizations management account
credentials.
2. Open the AWS SSO console.
3. Choose Enable AWS SSO.
4. If you have not yet set up AWS Organizations, you will be prompted to create an organization.
Choose Create AWS organization to complete this process.
AWS SSO provides users in this identity source with a personalized user portal from which they can easily
launch multiple AWS accounts or cloud applications. Users sign in to the portal using their corporate
credentials or with credentials they set up in AWS SSO. Once they sign in, they have one-click access to
all applications and AWS accounts that you have previously authorized.
Depending on which identity source type you are trying to set up, review the topics below for guidance:
4
AWS Single Sign-On User Guide
Step 3: Set up SSO to your AWS accounts (optional)
For more information about supported identity source types, see Manage your identity source (p. 13).
Users within these accounts see only the AWS account icon (for example, Development) that they've
been assigned from within their user portal. When they choose the icon, they can then choose which IAM
role they want to use when signing in to the AWS Management Console for that AWS account.
To get started assigning SSO access to your AWS accounts, see Assign user access (p. 52).
For more information about supported application types, see Manage SSO to your
applications (p. 66).
After you follow the guidance in the topic, you will have successfully configured AWS SSO and set up
a trust with your service provider. Your users can now access these applications from within their user
portal based on the permissions you assigned.
5
AWS Single Sign-On User Guide
Users, groups, and provisioning
Topics
• Users, groups, and provisioning (p. 6)
• AWS SSO-integrated application enablement (p. 7)
• SAML federation (p. 8)
• User authentications (p. 8)
• Permission sets (p. 9)
Groups
Groups are a logical combination of users that you define. You can create groups and add users to the
groups. AWS SSO does not support adding a group to a group (nested groups). Groups are useful when
assigning access to AWS accounts and applications. Rather than assign each user individually, you give
permissions to a group. Later, as you add or remove users from a group, the user dynamically gets or
loses access to accounts and applications that you assigned to the group.
Provisioning in AWS SSO varies based on the identity source you use. For more information, see Manage
your identity source (p. 13).
6
AWS Single Sign-On User Guide
AWS SSO-integrated application enablement
To enable this capability, AWS SSO provides an identity store which contains user and group attributes,
excluding sign-in credentials.
You can use either of the following methods to keep the users and groups in your AWS SSO identity
store updated:
• Use the AWS SSO identity store as your main identity source. If you choose this method, you manage
your users and groups from within the AWS SSO console or AWS CLI.
• Set up provisioning (synchronization) of users and groups coming from either of the following identity
sources to your AWS SSO identity store:
• Active Directory - For more information, see Connect to your Microsoft AD directory (p. 20).
• External identity provider - For more information, see Connect to your external identity
provider (p. 25).
If you choose the provisioning method, you continue managing your users and groups from within
your identity source and those changes would get synced to the AWS SSO identity store.
Regardless of which identity source you choose, AWS SSO has the ability to share the user and group
information with AWS SSO integrated applications. This capability makes it possible to connect an
identity source to AWS SSO once and then share identity information with multiple applications in the
AWS Cloud. This eliminates the need to set up federation and identity provisioning with each application
independently. This sharing feature also makes it easy to give your workforce (employees) access to
many applications in different AWS accounts.
To control access to this information, you have two options. First, you can choose to enable access in
only the AWS Organizations management account or in all AWS Organizations accounts. Second, you
can use service control policies (SCPs) to control which applications can access the information in which
AWS Organizations accounts. For example, if you enable access in the AWS Organizations management
account only, then applications in member accounts have no access to the information. However, if you
enable access in all accounts, you can use SCPs to disallow access by all applications except those you
want to permit.
7
AWS Single Sign-On User Guide
SAML federation
If you enabled AWS SSO prior to November 25, 2019, AWS SSO disables the use of integrated
applications in all AWS Organizations accounts. To use AWS SSO-integrated applications, you must
enable them in the management account and optionally enable them in member accounts. If you enable
them in the management account only, you can enable them in member accounts in the future. To
enable these applications, use the Enable access option in the AWS SSO Settings page in the AWS SSO-
integrated applications section.
SAML federation
AWS SSO supports identity federation with SAML (Security Assertion Markup Language) 2.0. SAML 2.0 is
an industry standard used for securely exchanging SAML assertions that pass information about a user
between a SAML authority (called an identity provider or IdP), and a SAML consumer (called a service
provider or SP). AWS SSO service uses this information to provide federated single sign-on (SSO) for
those users who are authorized to use applications within the AWS SSO user portal.
AWS SSO adds SAML IdP capabilities to either your AWS Managed Microsoft AD or your AWS SSO store.
Users can then SSO into services that support SAML, including the AWS Management Console and
third-party applications such as Office 365, SAP Concur, and Salesforce. At this time, AWS SSO does not
support other directory types or IdPs.
User authentications
A user signs in to the user portal using their user name. When they do, AWS SSO redirects the request to
the AWS SSO authentication service based on the directory associated with the user email address. Once
authenticated, users have SSO access to any of the AWS accounts and third-party software-as-a-service
(SaaS) applications that show up in the portal without additional sign-in prompts. This means that users
no longer need to keep track of multiple account credentials for the various assigned AWS applications
that they use on a daily basis.
Authentication sessions
The are two types of authentication sessions maintained by AWS SSO: one to represent the users’
sign in to AWS SSO, and another to represent the users’ access to AWS SSO-integrated applications,
such as Amazon SageMaker Studio or Amazon Managed Service for Grafana. Each time a user signs
in to AWS SSO, a sign in session is created with an 8-hour lifetime. Each time the user accesses an
AWS SSO-enabled application, the AWS SSO sign in session is used to obtain an AWS SSO application
session for that application. AWS SSO application sessions have a refreshable 1-hour lifetime – that is,
AWS SSO application sessions are automatically refreshed every hour as long as the AWS SSO sign in
session from which they were obtained is still valid. When the user uses AWS SSO to access the AWS
Management Console or CLI, the AWS SSO sign in session is used to obtain an IAM session, as specified in
the corresponding AWS SSO permission set (more specifically, AWS SSO assumes an IAM role, which AWS
SSO manages, in the target account).
When you disable or delete a user in AWS SSO, that user will immediately be prevented from signing
in to create new AWS SSO sign in sessions. AWS SSO sign in sessions are cached for one hour, which
means that when you disable or delete a user while they have an active AWS SSO sign in session, their
existing SSO sign in session will continue for up to an hour, depending on when the sign in session was
last refreshed. During this time, the user can initiate new AWS SSO application and IAM role sessions.
After the AWS SSO sign in session expires, the user can no longer initiate new AWS SSO application or
IAM role sessions. However, AWS SSO application sessions can also be cached for up to an hour, such that
the user may retain access to an AWS SSO-integrated application for up to an hour after the AWS SSO
sign in session has expired. Any existing IAM role sessions will continue based on the duration configured
in the AWS SSO permission set (admin-configurable, up to 12 hours).
8
AWS Single Sign-On User Guide
Permission sets
User experience / system behavior Time after SSO user is disabled / deleted
User can no longer sign in to AWS SSO; user None (effective immediately)
cannot obtain a new AWS SSO sign in session
User can no longer access any AWS SSO- Up to 2 hours (up to 1 hour for AWS SSO sign in
integrated applications (all app sessions are session expiry, plus up to 1 hour for AWS SSO app
terminated) session expiry)
User can no longer access any AWS accounts Up to 13 hours (up to 1 hour for AWS SSO
through AWS SSO sign in session expiry, plus up to 12 hours for
administrator-configured IAM role session expiry
per the AWS SSO session duration settings for the
permission set)
For more information about sessions, see Set session duration (p. 55).
Permission sets
A permission set is a collection of administrator-defined policies that AWS SSO uses to determine a user's
effective permissions to access a given AWS account. Permission sets can contain either AWS managed
policies or custom policies that are stored in AWS SSO. Policies are essentially documents that act as
containers for one or more permission statements. These statements represent individual access controls
(allow or deny) for various tasks that determine what tasks users can or cannot perform within the AWS
account.
Permission sets are stored in AWS SSO and are only used for AWS accounts. They are not used to manage
access to cloud applications. Permission sets ultimately get created as IAM roles in a given AWS account,
with trust policies that allow users to assume the role through AWS SSO.
You can use any of the following three methods to create these kinds of policies.
• (Recommended) Create permission sets in AWS SSO, each with a different policy, and assign the
permission sets to different users or groups. This enables you to manage administrative permissions
for users that sign in using your chosen AWS SSO identity source.
• Create custom policies in IAM, and then attach them to IAM roles that your administrators assume.
This enables IAM users or IAM federated users to assume the role to get their assigned AWS SSO
administrative permissions.
• Create custom policies in IAM, and then attach them to IAM users that you use for AWS SSO
administrator purposes. This enables you to give individual IAM users specific AWS SSO administrative
permissions.
9
AWS Single Sign-On User Guide
Delegating permission set administration
Important
AWS SSO resource ARNs are case sensitive.
The following shows the proper case for referencing the AWS SSO permission set and account resource
types.
10
AWS Single Sign-On User Guide
Enable SSO access to your AWS applications
Use cases
Review the following use case to determine how best to use AWS SSO for your business needs.
Topics
• Enable SSO access to your AWS applications (Application admin role) (p. 11)
• Should you create a test or production environment in your own separate AWS organization?
• Is AWS SSO already enabled in your AWS organization? Do you have permissions to enable AWS SSO in
the management account of AWS Organizations?
If they are not already enabled, AWS SSO and AWS Organizations can be enabled automatically during
the process of setting up some AWS applications (for example Amazon Managed Service for Grafana
does this). If your AWS application does not provide the option to enable them, you’ll need to first setup
AWS Organizations and AWS SSO before you can provide SSO access to your application.
If you do have sufficient permissions to enable AWS SSO within your AWS organization, do so first, then
proceed with the application setup. For more information, see Enable AWS SSO (p. 4).
11
AWS Single Sign-On User Guide
AWS SSO is currently configured in my organization
12
AWS Single Sign-On User Guide
Considerations for changing your identity source
You can have only one identity source per AWS organization. You can choose one of the following as
your identity source:
• AWS SSO identity store – When you enable AWS SSO for the first time, it is automatically configured
with an AWS SSO identity store as your default identity source. This is where you create your users and
groups, and assign their level of access to your AWS accounts and applications.
• Active Directory – Choose this option if you want to continue managing users in either your self-
managed Active Directory (AD) or your AWS Managed Microsoft AD directory using AWS Directory
Service.
• External identity provider – Choose this option if you prefer to manage users in an external identity
provider (IdP) such as Okta or Azure Active Directory.
Note
AWS SSO does not support SAMBA4-based Simple AD as an identity source.
Topics
• Considerations for changing your identity source (p. 13)
• Change your identity source (p. 14)
• Manage identities in AWS SSO (p. 15)
• Connect to your Microsoft AD directory (p. 20)
• Connect to your external identity provider (p. 25)
For information about how AWS SSO provisions users and groups, see Connect to your Microsoft AD
directory (p. 20).
13
AWS Single Sign-On User Guide
Changing from one external IdP to another external IdP
IdP. Any unmatched users and groups are unusable. If you switch from an external IdP to AWS SSO, AWS
SSO preserves all users, groups, and entitlements. If any of the users previously had passwords in AWS
SSO, then those users can continue signing in with their old passwords. The administrator must force a
password reset for users that came from the external IdP and that did not previously exist in AWS SSO.
For information about how AWS SSO provisions users and groups, see Connect to your external identity
provider (p. 25).
For information about how AWS SSO provisions users and groups, see Connect to your external identity
provider (p. 25).
For information about how AWS SSO provisions users and groups, see Connect to your Microsoft AD
directory (p. 20).
14
AWS Single Sign-On User Guide
Manage identities in AWS SSO
If you prefer to manage users in AWS Managed Microsoft AD, you can discontinue use of your AWS SSO
store at any time and instead connect AWS SSO to your Microsoft AD using AWS Directory Service. For
more information, see Connect to your Microsoft AD directory (p. 20).
If you prefer to manage users in an external identity provider (IdP), you can connect AWS SSO to your
IdP and enable automatic provisioning. For more information, see Connect to your external identity
provider (p. 25).
Note
When identities are deleted in the AWS SSO store, corresponding assignments also get deleted
in AWS SSO. However in Microsoft AD, when identities are deleted (either in AD or the synced in
identities), corresponding assignments are not deleted.
Topics
• Add users (p. 15)
• Add groups (p. 16)
• Add users to groups (p. 16)
• Edit user properties (p. 17)
• Disable a user (p. 17)
• Reset a user password (p. 17)
• Password requirements for the AWS SSO identity store (p. 18)
• Supported user and group attributes (p. 18)
• Using predefined attributes from the AWS SSO identity store for access control in AWS (p. 19)
Add users
Users and groups that you create in your AWS SSO store are available in AWS SSO only. Use the
following procedure to add users to your AWS SSO store.
To add a user
15
AWS Single Sign-On User Guide
Add groups
2. Choose Users.
3. Choose Add user and provide the following required information:
a. Username – This user name will be required to sign in to the user portal and cannot be changed
later.
b. Password – Choose from one of the following choices to send the user's password.
i. Send an email to the user with password setup instructions – This option automatically
sends the user an email addressed from Amazon Web Services. The email invites the user
on behalf of your company to access the AWS SSO user portal.
ii. Generate a one-time password that you can share with the user – This option provides
you with the user portal URL and password details that you can manually send to the user
from your email address.
c. Email address – The value you provide here must be unique.
d. Confirm email address
e. First name – You must enter a name here for automatic provisioning to work. For more
information, see Automatic provisioning (p. 27).
f. Last name – You must enter a name here for automatic provisioning to work.
g. Display name
Note
(Optional) You can provide additional attributes such as Employee ID and Office
365 Immutable ID to help map the user's identity in AWS SSO with certain business
applications that the user needs to use.
4. Choose Next: Groups.
5. Select one or more groups that you want the user to be a member of. Then choose Add user.
Add groups
Use the following procedure to add groups to your AWS SSO store.
To add a group
16
AWS Single Sign-On User Guide
Edit user properties
5. On the Add users to group page, locate the users you want to add as members. Then select the
check box next to each of them.
6. Choose Add user.
Disable a user
When you disable a user, you cannot edit their user details, reset their password, add the user to a group,
or view their group membership. Use the following procedure to disable a user in your AWS SSO store.
Note
When you disable or delete a user in AWS SSO, that user will immediately be prevented from
signing in to the user portal and will not be able to create new AWS SSO sign in sessions. For
more information, see Authentication sessions (p. 8).
To disable a user
17
AWS Single Sign-On User Guide
Password requirements
a. Send an email to the user with instructions to reset the password – This option automatically
sends the user an email addressed from Amazon Web Services that walks them through how to
reset their password.
Warning
As a security best practice, verify that the email address for this user is correct prior
to selecting this option. If this password reset email were to be sent to an incorrect or
misconfigured email address, a malicious recipient could use it to gain unauthorized
access to your AWS environment.
b. Generate a one-time password and share the password with the user – This option provides
you with the password details that you can manually send to the user from your email address.
Note
These requirements apply only to users created in the AWS SSO identity store. If you have
configured an identity source other than AWS SSO for authentication, such as Active Directory
or an external identity provider, the password policies for your users are defined and enforced in
those systems, not in AWS SSO.
Because AWS SSO supports SCIM for automatic provisioning use cases, the AWS SSO identity store
supports all of the same user and group attributes that are listed in the SCIM specification, with a few
exceptions. The following sections describe which attributes AWS SSO does not support.
18
AWS Single Sign-On User Guide
Using predefined attributes for access control
User objects
All attributes from the SCIM user schema (https://tools.ietf.org/html/rfc7643#section-8.3) are
supported in the AWS SSO identity store EXCEPT the following:
• password
• ims
• photos
• entitlements
• x509Certificates
Group objects
All attributes from the SCIM group schema (https://tools.ietf.org/html/rfc7643#section-8.4) are
supported.
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject","s3:GetObjectVersion"],
"Resource":["arn:aws:s3:::mybucket/*"],
"Condition": {
"StringEquals": {
"identitystore:UserId": [
"<UserId>"
]
},
"Null": {
"identitystore:UserId": "false"
}
}
19
AWS Single Sign-On User Guide
Connect to your Microsoft AD directory
]
}
AWS Directory Service helps you to set up and run a standalone AWS Managed Microsoft AD directory
hosted in the AWS Cloud. You can also use AWS Directory Service to connect your AWS resources with an
existing self-managed AD. To configure AWS Directory Service to work with your self-managed AD, you
must first set up trust relationships to extend authentication to the cloud.
AWS SSO uses the connection provided by AWS Directory Service to perform pass-through
authentication to the source AD instance, leveraging the Kerberos protocol. When you use AWS Managed
Microsoft AD as your identity source, AWS SSO can work with users from AWS Managed Microsoft AD
or from any domain connected through an AD trust. If you want to locate your users in four or more
domains, users must use the DOMAIN\user syntax as their user name when performing sign-ins to AWS
SSO.
Notes
• As a prerequisite step, make sure your AD Connector or AWS Managed Microsoft AD directory
in AWS Directory Service resides within your AWS Organizations management account. For
more information, see AWS SSO prerequisites (p. 3).
• AWS SSO does not support SAMBA 4-based Simple AD as a connected directory.
How It Works
AWS SSO refreshes the AD-based identity data in the identity store using the following process.
Creation
When users or groups are assigned to AWS resources or applications using the AWS console or
entitlement API calls, the users, groups and membership information are periodically synchronized
into the AWS SSO identity store. Users or groups added to AWS SSO assignments will usually appear
in the AWS identity store within two hours, but may take longer based on the amount of data being
synchronized. Only users and groups that are directly assigned access, or are members of a group that is
assigned access, are synchronized.
Groups that are members of assigned groups (called nested groups) are also written to the identity store.
Users that are members of nested groups are “flattened,” meaning they are added to the parent group
in the AWS SSO identity store. This allows AWS SSO administrators to use only the parent group for
authorization.
20
AWS Single Sign-On User Guide
Connect AWS SSO to an AWS
Managed Microsoft AD directory
If a user accesses AWS SSO before their user object has been synchronized for the first time, that
user’s identity store object is created on demand using just-in-time (JIT) provisioning. Users created
by JIT provisioning are not synchronized unless they have directly assigned or group-based AWS SSO
entitlements. Group memberships for JIT-provisioned users are unavailable until after synchronization.
Update
The identity data in the AWS SSO identity store stays fresh by periodically reading data from the source
AD. Identity data changed in AD will usually appear in the AWS identity store within four hours, but may
take longer based on the amount of data being synchronized.
User and group objects and their memberships are created or updated in AWS SSO to map to the
corresponding objects in the source AD. For user attributes, only the subset of attributes listed in the
Attribute Mapping section of the AWS SSO console are updated in AWS SSO. In addition, user attributes
are updated with each user authentication event.
Deletion
Users and groups are deleted from the AWS SSO identity store when the corresponding user or group
objects are deleted from the source AD.
For more information above provisioning, see User and group provisioning (p. 6).
Topics
• Connect AWS SSO to an AWS Managed Microsoft AD directory (p. 21)
• Connect AWS SSO to a self-managed Active Directory (p. 21)
• Attribute mappings (p. 22)
21
AWS Single Sign-On User Guide
Attribute mappings
• Create a two-way trust relationship – When two-way trust relationships are created between AWS
Managed Microsoft AD and a self-managed AD, users in your self-managed AD can sign in with their
corporate credentials to various AWS services and business applications. One-way trusts do not work
with AWS SSO. For more information about setting up a two-way trust, see When to Create a Trust
Relationship in the AWS Directory Service Administration Guide.
• Create an AD Connector – AD Connector is a directory gateway that can redirect directory requests
to your self-managed AD without caching any information in the cloud. For more information, see
Connect to a Directory in the AWS Directory Service Administration Guide.
Note
If you are connecting AWS SSO to an AD Connector directory, any future user password resets
must be done from within AD. This means that users will not be able to reset their passwords
from the user portal.
Note
AWS SSO does not work with SAMBA4-based Simple AD directories.
Attribute mappings
Attribute mappings are used to map attribute types that exist in AWS SSO with like attributes in an AWS
Managed Microsoft AD directory. AWS SSO retrieves user attributes from your Microsoft AD directory
and maps them to AWS SSO user attributes. These AWS SSO user attribute mappings are also used for
generating SAML assertions for your cloud applications. Each cloud application determines the list of
SAML attributes it needs for successful single sign-on.
AWS SSO prefills a set of attributes for you under the Attribute mappings tab found on your
application's configuration page. AWS SSO uses these user attributes to populate SAML assertions (as
SAML attributes) that are sent to the cloud application. These user attributes are in turn retrieved from
your Microsoft AD directory. For more information, see Map attributes in your application to AWS SSO
attributes (p. 77).
AWS SSO also manages a set of attributes for you under the Attribute mappings section of your
directory configuration page. For more information, see Map attributes in AWS SSO to attributes in your
AWS Managed Microsoft AD directory (p. 25).
${dir:email}
${dir:displayname}
${dir:distinguishedName}
${dir:firstname}
${dir:guid}
${dir:initials}
${dir:lastname}
${dir:proxyAddresses}
22
AWS Single Sign-On User Guide
Attribute mappings
${dir:proxyAddresses:smtp}
${dir:proxyAddresses:SMTP}
${dir:windowsUpn}
You can specify any combination of supported Microsoft AD directory attributes to map to a
single attribute in AWS SSO. For example, you could choose the preferredUsername attribute
under the User attribute in AWS SSO column. Then map it to either ${dir:displayname}
or ${dir:lastname}${dir:firstname } or any single supported attribute or any arbitrary
combination of supported attributes.
${user:AD_GUID}
${user:email}
${user:familyName}
${user:givenName}
${user:middleName}
${user:name}
${user:preferredUsername}
${user:subject}
${user:groups}
${path:userName}
${path:name.familyName}
${path:name.givenName}
${path:displayName}
23
AWS Single Sign-On User Guide
Attribute mappings
${path:nickName}
${path:emails[primary eq true].value}
${path:addresses[type eq "work"].streetAddress}
${path:addresses[type eq "work"].locality}
${path:addresses[type eq "work"].region}
${path:addresses[type eq "work"].postalCode}
${path:addresses[type eq "work"].country}
${path:addresses[type eq "work"].formatted}
${path:phoneNumbers[type eq "work"].value}
${path:userType}
${path:title}
${path:locale}
${path:timezone}
${path:enterprise.employeeNumber}
${path:enterprise.costCenter}
${path:enterprise.organization}
${path:enterprise.division}
${path:enterprise.department}
${path:enterprise.manager.value}
Default mappings
The following table shows the default mappings for user attributes in AWS SSO to the user attributes
in your AWS Managed Microsoft AD directory. At this time, AWS SSO only supports the list of attributes
shown in the User attribute in AWS SSO column.
AD_GUID ${dir:guid}
email * ${dir:windowsUpn}
familyName ${dir:lastname}
givenName ${dir:firstname}
middleName ${dir:initials}
name ${dir:displayname}
24
AWS Single Sign-On User Guide
Connect to your external identity provider
preferredUsername ${dir:displayname}
subject ${dir:windowsUpn}
* The email attribute in AWS SSO must be unique within the directory. Otherwise, the JIT login process
could fail.
You can change the default mappings or add more attributes to the SAML assertion based on your
requirements. For example, assume that your cloud application requires the users email in the
User.Email SAML attribute. In addition, assume that email messages are stored in the windowsUpn
attribute in your Microsoft AD directory. To achieve this mapping, you must make changes in the
following two places in the AWS SSO console:
1. On the Directory page, under the Attribute mappings section, you would need to map the user
attribute email to the ${dir:windowsUpn} attribute (in the Maps to this attribute in your
directory column)
2. On the Applications page, choose the application from the table. Choose the Attribute mappings
tab. Then map the User.Email attribute to the ${user:email} attribute (in the Maps to this string
value or user attribute in AWS SSO column).
Please note that you must supply each directory attribute in the form ${dir:AttributeName}. For
example, the firstname attribute in your Microsoft AD directory becomes ${dir:firstname}. It is
important that every directory attribute have an actual value assigned. Attributes missing a value after
${dir: will cause user sign-in issues.
25
AWS Single Sign-On User Guide
Provisioning when users come
from an external identity provider
For example, you can connect an external IdP such as Okta or Azure Active Directory (AD), to AWS SSO.
Your users can then sign in to the AWS SSO user portal with their existing Okta or Azure credentials.
In addition, you can assign access permissions centrally for your users across all the accounts and
applications in your AWS organization. In addition, developers can simply sign in to the AWS Command
Line Interface (AWS CLI) using their existing credentials, and benefit from automatic short-term
credential generation and rotation.
The SAML protocol does not provide a way to query the IdP to learn about users and groups. Therefore,
you must make AWS SSO aware of those users and groups by provisioning them into AWS SSO.
a. Under Service provider metadata, for AWS SSO SAML metadata, choose Download metadata
file to download the metadata file and save it on your system. The AWS SSO SAML metadata
file is required by your external identity provider.
b. Under Identity provider metadata, choose Browse, and locate the metadata file that you
downloaded from your external identity provider. Then upload the file. This metadata file
contains the necessary public x509 certificate used to trust messages that are sent from the IdP.
c. Choose Next: Review.
Important
Changing your source to or from Active Directory removes all existing user and group
assignments. You must manually reapply assignments after you have successfully changed
your source.
5. After you read the disclaimer and are ready to proceed, enter ACCEPT.
6. Choose Change identity source.
Topics
• SCIM profile and SAML 2.0 implementation (p. 27)
• Supported identity providers (p. 32)
• Other identity providers (p. 49)
26
AWS Single Sign-On User Guide
SCIM profile and SAML 2.0 implementation
AWS SSO adds SAML IdP capabilities to your AWS SSO store, AWS Managed Microsoft AD, or to an
external identity provider. Users can then SSO into services that support SAML, including the AWS
Management Console and third-party applications such as Microsoft 365, Concur, and Salesforce.
The SAML protocol however does not provide a way to query the IdP to learn about users and groups.
Therefore, you must make AWS SSO aware of those users and groups by provisioning them into AWS
SSO.
SCIM profile
AWS SSO provides support for the System for Cross-domain Identity Management (SCIM) v2.0 standard.
SCIM keeps your AWS SSO identities in sync with identities from your IdP. This includes any provisioning,
updates, and deprovisioning of users between your IdP and AWS SSO.
For more information about how to implement SCIM, see Automatic provisioning (p. 27). For
additional details about AWS SSO’s SCIM implementation, see the AWS SSO SCIM Implementation
Developer Guide.
Topics
• Automatic provisioning (p. 27)
• Manual provisioning (p. 30)
• Manage SAML 2.0 certificates (p. 30)
Automatic provisioning
AWS SSO supports automatic provisioning (synchronization) of user and group information from your
identity provider (IdP) into AWS SSO using the System for Cross-domain Identity Management (SCIM)
v2.0 protocol. When you configure SCIM synchronization, you create a mapping of your identity provider
(IdP) user attributes to the named attributes in AWS SSO. This causes the expected attributes to match
between AWS SSO and your IdP. You configure this connection in your IdP using your SCIM endpoint for
AWS SSO and a bearer token that you create in AWS SSO.
Topics
• Considerations for using automatic provisioning (p. 28)
• How to enable automatic provisioning (p. 28)
• How to disable automatic provisioning (p. 29)
• How to generate a new access token (p. 29)
• How to delete an access token (p. 29)
• How to rotate an access token (p. 30)
27
AWS Single Sign-On User Guide
SCIM profile and SAML 2.0 implementation
• If you are provisioning a primary email address, this attribute value must be unique for each user. In
some IdPs, the primary email address might not be a real email address. For example, it might be a
Universal Principal Name (UPN) that only looks like an email. These IdPs may have a secondary or
“other” email address that contains the user’s real email address. You must configure SCIM in your IdP
to map the non-Null unique email address to the AWS SSO primary email address attribute. And you
must map the users non-Null unique sign-in identifier to the AWS SSO user name attribute. Check to
see whether your IdP has a single value that is both the sign-in identifier and the user’s email name. If
so, you can map that IdP field to both the AWS SSO primary email and the AWS SSO user name.
• For SCIM synchronization to work, every user must have a First name, Last name, Username and
Display name value specified. If any of these values are missing from a user, that user will not be
provisioned.
• The following special characters are invalid when used in attributes that are synchronized with SCIM:
<>;:%
• If you need to use third-party applications, you will first need to map the outbound SAML subject
attribute to the user name attribute. If the third-party application needs a routable email address, you
must provide the email attribute to your IdP.
• SCIM provisioning and update intervals are controlled by your identity provider. Changes to users and
groups in your identity provider are only reflected in AWS SSO after your identity provider sends those
changes to AWS SSO. Check with your identity provider for details on the frequency of user and group
updates.
• Currently, multivalue attributes (such as multiple emails or phone numbers for a given user) are not
provisioned with SCIM. Attempts to synchronize multivalue attributes into AWS SSO with SCIM will
fail. To avoid failures, ensure that only a single value is passed for each attribute. If you have users with
multivalue attributes, remove or modify the duplicate attribute mappings in SCIM at your IdP for the
connection to AWS SSO.
• Verify that the externalId SCIM mapping at your IdP corresponds to a value that is unique, always
present, and least likely to change for your users. For example, your IdP might provide a guaranteed
objectId or other identifier that’s not affected by changes to user attributes like name and email. If
so, you can map that value to the SCIM externalId field. This ensures that your users won’t lose AWS
entitlements, assignments, or permissions if you need to change their name or email.
• Users who have not yet been assigned to an application or AWS account cannot be provisioned into
AWS SSO. To synchronize users and groups, make sure that they are assigned to the application or
other setup that represents your IdP’s connection to AWS SSO.
For more information about AWS SSO’s SCIM implementation, see the AWS SSO SCIM Implementation
Developer Guide.
1. After you have completed the prerequisites, open the AWS SSO console.
28
AWS Single Sign-On User Guide
SCIM profile and SAML 2.0 implementation
a. SCIM endpoint
b. Access token
5. Choose Close.
Once you have completed this procedure, you must configure automatic provisioning in your IdP. For
more information, see Supported identity providers (p. 32).
1. In the AWS SSO console, choose Settings in the left navigation pane.
2. On the Settings page, under the Identity source section, next to Provisioning, choose View details.
3. On the Automatic provisioning page, choose Disable automatic provisioning.
4. In the Disable automatic provisioning dialog box, review the information, type DISABLE, and then
choose Disable automatic provisioning.
1. In the AWS SSO console, choose Settings in the left navigation pane.
2. On the Settings page, under the Identity source section, next to Provisioning, choose View details.
3. On the Automatic provisioning page, under Access tokens, choose Generate new token.
4. In the Generate new access token dialog box, under Access token, choose Show token.
1. In the AWS SSO console, choose Settings in the left navigation pane.
2. On the Settings page, under the Identity source section, next to Provisioning, choose View details.
3. On the Automatic provisioning page, under Access tokens, next to the access token you want to
delete, choose Delete.
4. In the Delete access token dialog box, review the information, type DELETE, and then choose Delete
access token.
29
AWS Single Sign-On User Guide
SCIM profile and SAML 2.0 implementation
1. In the AWS SSO console, choose Settings in the left navigation pane.
2. On the Settings page, under the Identity source section, next to Provisioning, choose View details.
3. On the Automatic provisioning page, under Access tokens, make a note of the token ID of the
token you want to rotate.
4. Follow the steps in How to generate a new access token (p. 29) to create a new token. If you have
already created the maximum number of SCIM access tokens, you will first need to delete one of the
existing tokens.
5. Go to your identity provider's website and configure the new access token for SCIM provisioning, and
then test connectivity to AWS SSO using the new SCIM access token. Once you've confirmed that
provisioning is working successfully using the new token, continue to the next step in this procedure.
6. Follow the steps in How to delete an access token (p. 29) to delete the old access token you noted
earlier. You can also use the token’s creation date as a hint for which token to remove.
Manual provisioning
Some IdPs do not have System for Cross-domain Identity Management (SCIM) support or have an
incompatible SCIM implementation. In those cases, you can manually provision users through the AWS
SSO console. When you add users to AWS SSO, ensure that you set the user name to be identical to the
user name that you have in your IdP. At a minimum, you must have a unique email address and user
name. For more information, see User name and email address uniqueness (p. 6).
You must also manage all groups manually in AWS SSO. To do this, you create the groups and add them
using the AWS SSO console. For more information, see Groups (p. 6).
As an AWS SSO administrator, you'll occasionally need to replace older IdP certificates with newer ones.
For example, you might need to replace an IdP certificate when the expiration date on the certificate
approaches. The process of replacing an older certificate with a newer one is referred to as certificate
rotation.
Topics
• Rotate a SAML 2.0 certificate (p. 30)
• Certificate expiration status indicators (p. 32)
30
AWS Single Sign-On User Guide
SCIM profile and SAML 2.0 implementation
You should also consider that some IdPs might not support multiple certificates. In this case, the act of
rotating certificates with these IdPs might mean a temporary service disruption for your users. Service is
restored when the trust with that IdP has been successfully reestablished. Plan this operation carefully
during off peak hours if possible.
Note
As a security best practice, upon any signs of compromise or mishandling of an existing SAML
certificate, you should immediately remove and rotate the certificate.
Rotating an AWS SSO certificate is a multistep process that involves the following:
Use all of the following procedures to complete the certificate rotation process while avoiding any
authentication downtime.
Go to the IdP website and download their SAML 2.0 certificate. Make sure that the certificate file is
downloaded in PEM encoded format. Most providers allow you to create multiple SAML 2.0 certificates in
the IdP. It is likely that these will be marked as disabled or inactive.
Use the following procedure to import the new certificate using the AWS SSO console.
At this point, AWS SSO will trust all incoming SAML messages signed from both of the certificates that
you have imported.
Go back to the IdP website and mark the new certificate that you created earlier as primary or active. At
this point all SAML messages signed by the IdP should be using the new certificate.
Use the following procedure to complete the certificate rotation process for your IdP. There must always
be at least one valid certificate listed, and it cannot be removed.
Note
Make sure that your identity provider is no longer signing SAML responses with this certificate
before deleting it.
1. On the Manage SAML 2.0 certificates page, choose the certificate that you want to delete. Choose
Delete.
2. In the Delete SAML 2.0 certificate dialog box, type DELETE to confirm, and then choose Delete.
3. Return to the IdP’s website and perform the necessary steps to remove the older inactive certificate.
31
AWS Single Sign-On User Guide
Supported identity providers
Topics
• Azure AD (p. 32)
• Okta (p. 35)
• OneLogin (p. 39)
• Ping Identity (p. 42)
Azure AD
AWS SSO supports automatic provisioning (synchronization) of user and group information from Azure
AD into AWS SSO using the System for Cross-domain Identity Management (SCIM) v2.0 protocol. You
configure this connection in Azure AD using your SCIM endpoint for AWS SSO and a bearer token that is
created automatically by AWS SSO. When you configure SCIM synchronization, you create a mapping of
your user attributes in Azure AD to the named attributes in AWS SSO. This causes the expected attributes
to match between AWS SSO and your IdP.
The following steps walk you through how to enable automatic provisioning of users and groups from
Azure AD to AWS SSO using the AWS Single Sign-On app in the Azure AD Application Gallery and the
SCIM protocol.
Note
Before you begin deploying SCIM, we recommend that you first review Considerations for using
automatic provisioning (p. 28), and then continue reviewing Prerequisites (p. 32) and
Additional considerations (p. 33) in the next sections.
Prerequisites
You will need the following before you can get started:
• An Azure AD tenant. For more information, see Quickstart: Set up a tenant on Microsoft's website.
32
AWS Single Sign-On User Guide
Supported identity providers
• An AWS SSO-enabled account (free). For more information, see Enable AWS SSO.
• A SAML connection from your Azure AD account to AWS SSO, as described in Tutorial: Azure Active
Directory single sign-on (SSO) integration with AWS Single Sign-On on Microsoft's website.
Important
Make sure that all users in Azure AD have filled out First name, Last name, and Display name
values in their user properties. Otherwise, automatic provisioning won't work with Azure AD.
Additional considerations
If an attribute is removed from a user in Azure AD, that attribute will not be removed from the
corresponding user in AWS SSO. This is a known limitation in Azure AD. If an attribute is changed to a
different (non-empty) value on a user, that change will be synchronized to AWS SSO.
With Azure AD, you have two different ways to configure ABAC for use with AWS SSO. Choose either of
the following methods.
This method can be used when you need to define which attributes in Azure AD can be used by AWS SSO
to manage access to your AWS resources. Once defined, Azure AD sends these attributes to AWS SSO
through SAML assertions. You will then need to Create a permission set (p. 53) in AWS SSO to manage
access based on the attributes you passed from Azure AD.
Before you begin this procedure, you first need to enable the Attributes for access control (p. 59)
feature. For more information about how to do this, see Enable and configure attributes for access
control (p. 60).
1. While signed into the Azure portal, navigate to Azure Active Directory, Enterprise applications.
Search for the name of the application that you created previously to form your SAML connection.
Then choose the application.
2. Choose Single sign-on.
3. In the User Attributes & Claims section, choose Edit.
4. On the User Attributes & Claims page, do the following:
33
AWS Single Sign-On User Guide
Supported identity providers
With this method, you use the Attributes for access control (p. 59) feature in AWS SSO to pass an
Attribute element with the Name attribute set to https://aws.amazon.com/SAML/Attributes/
AccessControl:{TagKey}. You can use this element to pass attributes as session tags in the SAML
assertion. For more information about session tags, see Passing session tags in AWS STS in the IAM User
Guide.
To pass attributes as session tags, include the AttributeValue element that specifies the value of the
tag. For example, to pass the tag key-value pair CostCenter = blue, use the following attribute:
<saml:AttributeStatement>
<saml:Attribute Name="https://aws.amazon.com/SAML/Attributes/AccessControl:CostCenter">
<saml:AttributeValue>blue
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
If you need to add multiple attributes, include a separate Attribute element for each tag.
Troubleshooting
The following can help you troubleshoot some common issues you might encounter while setting up
automatic provisioning with Azure AD.
This might be due to a syntax issue that AWS SSO has flagged when a new user is being added to AWS
SSO. You can confirm this by checking the Azure audit logs for failed events, such as an 'Export'. The
Status Reason for this event will state:
{"schema":["urn:ietf:params:scim:api:messages:2.0:Error"],"detail":"Request is unparsable,
syntactically incorrect, or violates schema.","status":"400"}
You can also check AWS CloudTrail for the failed event. This can be done by searching in the Event
History console of CloudTrail using the following filter:
"eventName":"CreateUser"
"errorCode": "ValidationException",
"errorMessage": "Currently list attributes only allow single item“
Ultimately, this exception means that one of the values passed from Azure contained more values than
anticipated. The solution here is to review the attributes of the user in Azure AD, ensuring that none
34
AWS Single Sign-On User Guide
Supported identity providers
contain duplicate values. One common example of duplicate values is having multiple values present for
contact numbers such as mobile, work, and fax. Although separate values, they are all passed to AWS
SSO under the single parent attribute phoneNumbers.
Okta
AWS SSO supports automatic provisioning (synchronization) of user and group information from
Okta into AWS SSO using the System for Cross-domain Identity Management (SCIM) v2.0 protocol. To
configure this connection in Okta, you use your SCIM endpoint for AWS SSO and a bearer token that is
created automatically by AWS SSO. When you configure SCIM synchronization, you create a mapping of
your user attributes in Okta to the named attributes in AWS SSO. This causes the expected attributes to
match between AWS SSO and your IdP.
Okta supports the following provisioning features when connected to AWS SSO through SCIM:
• Create users – Users assigned to the AWS SSO application in Okta will be provisioned in AWS SSO.
• Update user attributes – Attribute changes for users who are assigned to the AWS SSO application in
Okta will be updated in AWS SSO.
• Deactivate users – Users who are unassigned from the AWS SSO application in Okta will be disabled in
AWS SSO.
• Group push – Groups (and their members) in Okta are synchronized to AWS SSO.
The following steps walk you through how to enable automatic provisioning of users and groups from
Okta to AWS SSO using the SCIM protocol.
Note
Before you begin deploying SCIM, we recommend that you first review the Considerations for
using automatic provisioning (p. 28). Then continue reviewing additional considerations in
the next section.
Topics
• Additional considerations (p. 35)
• Prerequisites (p. 36)
• Step 1: Enable provisioning in AWS SSO (p. 36)
• Step 2: Configure provisioning in Okta (p. 36)
• Step 3: Assign access for users and groups in Okta (p. 37)
• (Optional) Step 4: Configure user attributes in Okta for access control in AWS SSO (p. 37)
• (Optional) Passing attributes for access control (p. 38)
• Troubleshooting (p. 38)
Additional considerations
The following are important considerations about Okta that can affect how you implement provisioning
with AWS SSO.
• Using the same Okta group for both assignments and group push is not currently supported. To
maintain consistent group memberships between Okta and AWS SSO, you need to create a separate
group and configure it to push groups to AWS SSO.
• If you update a user’s address you must have streetAddress, city, state, zipCode and the
countryCode value specified. If any of these values are not specified for the Okta user at the time of
synchronization, the user or changes to the user will not be provisioned.
• Entitlements and role attributes are not supported and cannot be synced to AWS SSO.
35
AWS Single Sign-On User Guide
Supported identity providers
Prerequisites
You will need the following before you can get started:
• An Okta account (free trial) with Okta's AWS Single Sign-On application installed. Note also that
for paid Okta products, you might need to confirm that your Okta license supports “lifecycle
management” or similar capabilities that enable outbound provisioning. These features might be
necessary to configure SCIM from Okta to AWS SSO.
• A SAML connection from your Okta account to AWS SSO, as described in How to Configure SAML 2.0
for AWS Single Sign-On.
• An AWS SSO-enabled account (free). For more information, see Enable AWS SSO.
1. After you have completed the prerequisites, open the AWS SSO console.
2. Choose Settings in the left navigation pane.
3. On the Settings page, under Identity source, next to Provisioning, choose Enable automatic
provisioning. This immediately enables automatic provisioning in AWS SSO and displays the
necessary endpoint and access token information.
4. In the Inbound automatic provisioning dialog box, copy each of the values for the following
options. You will need to paste these in later when you configure provisioning in your IdP.
a. SCIM endpoint
b. Access token
5. Choose Close.
You have set up provisioning in the AWS SSO console. Now you need to do the remaining tasks using the
Okta user interface as described in the following procedures.
1. In a separate browser window, log in to the Okta admin portal and navigate to the AWS Single Sign-
On app.
2. On the AWS Single Sign-On app page, choose the Provisioning tab, and then choose Integration.
3. Choose Configure API Integration, and then select the check box next to Enable API integration to
enable provisioning.
4. In the previous procedure you copied the SCIM endpoint value in AWS SSO. Paste that value into the
Base URL field in Okta. Make sure that you remove the trailing forward slash at the end of the URL.
Also, in the previous procedure you copied the Access token value in AWS SSO. Paste that value into
the API Token field in Okta.
5. Choose Test API Credentials to verify the credentials entered are valid.
6. Choose Save.
7. Under Settings, choose To App, choose Edit, and then select the Enable check box for each of the
Provisioning Features you want to enable.
36
AWS Single Sign-On User Guide
Supported identity providers
8. Choose Save.
By default, no users or groups are assigned to your Okta AWS Single Sign-On app. Therefore you must
complete the next procedure to begin synchronizing users and groups to AWS SSO.
After you complete this step and the first synchronization with SCIM is completed, the users and groups
that you have assigned appear in AWS SSO. Those users are able to access the AWS SSO user portal using
their Okta credentials.
1. In the AWS Single Sign-On app page, choose the Assignments tab.
2. In the Assignments page, choose Assign, and then choose Assign to People.
3. Choose the Okta user or users whom you want to assign access to the AWS Single Sign-On app.
Choose Assign, choose Save and Go Back, and then choose Done. This starts the process of
provisioning the user or users into AWS SSO.
1. On the AWS Single Sign-On app page, choose the Assignments tab.
2. In the Assignments page, choose Assign, and then choose Assign to Groups.
3. Choose the Okta group or groups that you want to assign access to the AWS Single Sign-On
app. Choose Assign, choose Save and Go Back, and then choose Done. This starts the process of
provisioning the users in the group into AWS SSO.
4. Choose the Push Groups tab, choose the Okta group or groups that you chose in the previous
step. Then choose Save. The group you choose must be different from the group assigned to the
application. The group status changes to Active after the group and its members have successfully
been pushed to AWS SSO.
To grant your Okta users access to AWS accounts and cloud applications, complete the following
applicable procedures from the AWS SSO console:
• To grant access to AWS accounts, see Assign user access (p. 52).
• To grant access to cloud applications, see Assign user access (p. 76).
(Optional) Step 4: Configure user attributes in Okta for access control in AWS
SSO
This is an optional procedure for Okta should you choose to configure attributes you will use in AWS
SSO to manage access to your AWS resources. The attributes you define in Okta will be passed in a SAML
assertion to AWS SSO, you will then create a permission set in AWS SSO to manage access based on the
attributes you passed from Okta.
Before you begin this procedure, you first need to enable the Attributes for access control (p. 59)
feature. For more information about how to do this, see Enable and configure attributes for access
control (p. 60).
37
AWS Single Sign-On User Guide
Supported identity providers
1. In a separate browser window, log in to the Okta admin portal and navigate to the AWS Single Sign-
On app.
2. On the AWS Single Sign-On app page, choose the Sign On tab, and then choose Edit.
3. In the SAML section, expand Attributes (Optional).
4. In the Attribute Statements (optional) section, do the following for each attribute where you will
use AWS SSO for access control:
To pass attributes as session tags, include the AttributeValue element that specifies the value of the
tag. For example, to pass the tag key-value pair CostCenter = blue, use the following attribute.
<saml:AttributeStatement>
<saml:Attribute Name="https://aws.amazon.com/SAML/Attributes/AccessControl:CostCenter">
<saml:AttributeValue>blue
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
If you need to add multiple attributes, include a separate Attribute element for each tag.
Troubleshooting
The following can help you troubleshoot some common issues you might encounter while setting up
automatic provisioning with Okta.
The SCIM endpoint URL that you pasted into Base URL likely contains a trailing forward slash (/).
Remove the forward slash from the SCIM endpoint URL before pasting into Base URL. For example,
https://scim.us-east-2.amazonaws.com/xxxxxxxx-xxxx-xxxxx-xxxxxx-xxxx/scim/v2.
After you have started synchronization, you might see the following error:
38
AWS Single Sign-On User Guide
Supported identity providers
Automatic profile push of <user> to app AWS Single Sign-On failed: Error while trying to
push profile update for <user>@Corp.Example.com: Bad Request. Errors reported by remote
server: Request is unparsable, syntactically incorrect, or violates schema.
• Every user must have a First name, Last name, Username, and Display name value specified. If any of
these values are missing from a user, that user will not be provisioned.
• Usernames should be mapped to attributes that are unique within your directory in Okta.
• The following special characters must not be used in attributes that are synchronized with SCIM: <>;:
%
• If you update a user’s address you must have streetAddress, city, state, zipCode and the
countryCode value specified. If any of these values are not specified for the Okta user at the time of
synchronization, the user or changes to the user will not be provisioned.
OneLogin
AWS SSO supports automatic provisioning (synchronization) of user and group information from
OneLogin into AWS SSO using the System for Cross-domain Identity Management (SCIM) v2.0 protocol.
You configure this connection in OneLogin, using your SCIM endpoint for AWS SSO and a bearer token
that is created automatically by AWS SSO. When you configure SCIM synchronization, you create a
mapping of your user attributes in OneLogin to the named attributes in AWS SSO. This causes the
expected attributes to match between AWS SSO and OneLogin.
The following steps walk you through how to enable automatic provisioning of users and groups from
OneLogin to AWS SSO using the SCIM protocol.
Note
Before you begin deploying SCIM, we recommend that you first review the Considerations for
using automatic provisioning (p. 28).
Topics
• Prerequisites (p. 39)
• Step 1: Enable provisioning in AWS SSO (p. 39)
• Step 2: Configure provisioning in OneLogin (p. 40)
• (Optional) Step 3: Configure user attributes in OneLogin for access control in AWS SSO (p. 41)
• (Optional) Passing attributes for access control (p. 41)
• Troubleshooting (p. 41)
Prerequisites
You will need the following before you can get started:
• A OneLogin account. If you do not have an existing account, you may be able to obtain a free trial or
developer account from the OneLogin website.
• An AWS SSO-enabled account (free). For more information, see Enable AWS SSO.
• A SAML connection from your OneLogin account to AWS SSO. For more information, see Enabling
Single Sign-On Between OneLogin and AWS on the AWS Partner Network Blog.
39
AWS Single Sign-On User Guide
Supported identity providers
1. After you have completed the prerequisites, open the AWS SSO console.
2. Choose Settings in the left navigation pane.
3. On the Settings page, under Identity source, next to Provisioning, choose Enable automatic
provisioning. This immediately enables automatic provisioning in AWS SSO and displays the
necessary endpoint and access token information.
4. In the Inbound automatic provisioning dialog box, copy each of the values for the following
options. You will need to paste these in later when you configure provisioning in your IdP.
a. SCIM endpoint
b. Access token
5. Choose Close.
You have now set up provisioning in the AWS SSO console. Now you need to do the remaining tasks
using the OneLogin admin console as described in the following procedure.
40
AWS Single Sign-On User Guide
Supported identity providers
Before you begin this procedure, you must first enable the Attributes for access control (p. 59)
feature. For more information about how to do this, see Enable and configure attributes for access
control (p. 60).
a. Choose +.
b. In Field name, enter https://aws.amazon.com/SAML/Attributes/
AccessControl:AttributeName, and replace AttributeName with the name of the
attribute you are expecting in AWS SSO. For example, https://aws.amazon.com/SAML/
Attributes/AccessControl:Department.
c. Under Flags, check the box next to Include in SAML assertion, and choose Save.
d. In the Value field, use the drop-down list to choose the OneLogin user attributes. For example,
Department.
4. Choose Save.
To pass attributes as session tags, include the AttributeValue element that specifies the value of the
tag. For example, to pass the tag key-value pair CostCenter = blue, use the following attribute.
<saml:AttributeStatement>
<saml:Attribute Name="https://aws.amazon.com/SAML/Attributes/AccessControl:CostCenter">
<saml:AttributeValue>blue
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
If you need to add multiple attributes, include a separate Attribute element for each tag.
Troubleshooting
The following can help you troubleshoot some common issues you might encounter while setting up
automatic provisioning with OneLogin.
41
AWS Single Sign-On User Guide
Supported identity providers
By default, groups may not be provisioned from OneLogin to AWS SSO. Ensure that you’ve enabled
group provisioning for your AWS SSO application in OneLogin. To do this, sign in to the OneLogin admin
console, and check to make sure that the Include in User Provisioning option is selected under the
properties of the AWS SSO application (AWS SSO application > Parameters > Groups). For more details
on how to create groups in OneLogin, including how to synchronize OneLogin roles as groups in SCIM,
please see the OneLogin website.
Nothing is synchronized from OneLogin to AWS SSO, despite all settings being correct
In addition to the note above regarding admin approval, you will need to Reapply entitlement
mappings for many configuration changes to take effect. This can be found in Applications >
Applications > AWS SSO application > More Actions. You can see details and logs for most actions in
OneLogin, including synchronization events, under Activity > Events.
I’ve deleted or disabled a group in OneLogin, but it still appears in AWS SSO
OneLogin currently does not support the SCIM DELETE operation for groups, which means that the
group will continue to exist in AWS SSO. You must therefore remove the group from AWS SSO directly to
ensure that any corresponding permissions in AWS SSO for that group are removed.
I deleted a group in AWS SSO without first deleting it from OneLogin and now I’m having user/group
sync issues
To remedy this situation, first ensure that you do not have any redundant group provisioning rules or
configurations in OneLogin. For example, a group directly assigned to an application along with a rule
that publishes to the same group. Next, delete any undesirable groups in AWS SSO. Finally, in OneLogin,
Refresh the entitlements (AWS SSO App > Provisioning > Entitlements), and then Reapply entitlement
mappings (AWS SSO App > More Actions). To avoid this issue in the future, first make the change to
stop provisioning the group in OneLogin, then delete the group from AWS SSO.
Ping Identity
The following Ping Identity products have been tested with AWS SSO.
Topics
• PingFederate (p. 42)
• PingOne (p. 46)
PingFederate
AWS SSO supports automatic provisioning (synchronization) of user and group information from the
PingFederate product by Ping Identity (hereafter “Ping”) into AWS SSO. This provisioning uses the
System for Cross-domain Identity Management (SCIM) v2.0 protocol. You configure this connection
in PingFederate using your AWS SSO SCIM endpoint and access token. When you configure SCIM
synchronization, you create a mapping of your user attributes in PingFederate to the named attributes in
AWS SSO. This causes the expected attributes to match between AWS SSO and PingFederate.
This guide is based on PingFederate version 10.2. Steps for other versions may vary. Contact Ping for
more information about how to configure provisioning to AWS SSO for other versions of PingFederate.
The following steps walk you through how to enable automatic provisioning of users and groups from
PingFederate to AWS SSO using the SCIM protocol.
Note
Before you begin deploying SCIM, we recommend that you first review the Considerations for
using automatic provisioning (p. 28). Then continue reviewing additional considerations in
the next section.
42
AWS Single Sign-On User Guide
Supported identity providers
Topics
• Prerequisites (p. 43)
• Additional considerations (p. 43)
• Step 1: Enable provisioning in AWS SSO (p. 43)
• Step 2: Configure provisioning in PingFederate (p. 44)
• (Optional) Step 3: Configure user attributes in PingFederate for access control in AWS SSO (p. 45)
• (Optional) Passing attributes for access control (p. 46)
Prerequisites
You will need the following before you can get started:
• A working PingFederate server. If you do not have an existing PingFederate server, you might be able
to obtain a free trial or developer account from the Ping Identity website. The trial includes licenses
and software downloads and associated documentation.
• A copy of the PingFederate AWS Single Sign-On Connector software installed on your PingFederate
server. For more information about how to obtain this software, see AWS Single Sign-On Connector on
the Ping Identity website.
• An AWS SSO-enabled account (free). For more information, see Enable AWS SSO.
• A SAML connection from your PingFederate instance to AWS SSO. For instructions on how to configure
this connection, see the PingFederate documentation. In summary, the recommended path is to use
the AWS Single Sign-On Connector to configure "Browser SSO" in PingFederate, using the “download"
and "import" metadata features on both ends to exchange SAML metadata between PingFederate and
AWS SSO.
Additional considerations
The following are important considerations about PingFederate that can affect how you implement
provisioning with AWS SSO.
• If an attribute (such as a phone number) is removed from a user in the data store configured in
PingFederate, that attribute will not be removed from the corresponding user in AWS SSO. This is
a known limitation in PingFederate’s provisioner implementation. If an attribute is changed to a
different (non-empty) value on a user, that change will be synchronized to AWS SSO.
In this first step, you use the AWS SSO console to enable automatic provisioning.
1. After you have completed the prerequisites, open the AWS SSO console.
2. Choose Settings in the left navigation pane.
3. On the Settings page, under Identity source, next to Provisioning, choose Enable automatic
provisioning. This immediately enables automatic provisioning in AWS SSO and displays the
necessary endpoint and access token information.
4. In the Inbound automatic provisioning dialog box, copy each of the values for the following
options. You will need to paste these in later when you configure provisioning in your IdP.
a. SCIM endpoint
b. Access token
5. Choose Close.
43
AWS Single Sign-On User Guide
Supported identity providers
Now that you have set up provisioning in the AWS SSO console, you must complete the remaining tasks
using the PingFederate administrative console., The steps are described in the following procedure.
Use the following procedure in the PingFederate administrative console to enable integration
between AWS SSO and the AWS Single Sign-On Connector. This procedure assumes that you have
already installed the AWS Single Sign-On Connector software. If you have not yet done so, refer to
Prerequisites (p. 43), and then complete this procedure to configure SCIM provisioning.
Important
If your PingFederate server has not been previously configured for outbound SCIM provisioning,
you may need to make a configuration file change to enable provisioning. For more information,
see Ping documentation. In summary, you must modify the pf.provisioner.mode setting
in the pingfederate-<version>/pingfederate/bin/run.properties file to a value other than
OFF (which is the default), and restart the server if currently running. For example, you may
choose to use STANDALONE if you don’t currently have a high-availability configuration with
PingFederate.
44
AWS Single Sign-On User Guide
Supported identity providers
d. In Groups > Group DN, specify a single group that contains all of the groups that you want to
provision to AWS SSO. In many cases, this may be the same DN as you specified in the Users
section. Enter Nested Search and Filter values as required.
13. On the Attribute Mapping page, ensure the following, and then click Next:
(Optional) Step 3: Configure user attributes in PingFederate for access control in AWS SSO
This is an optional procedure for PingFederate should you choose to configure attributes you will use in
AWS SSO to manage access to your AWS resources. The attributes that you define in PingFederate will
be passed in a SAML assertion to AWS SSO. You will then create a permission set in AWS SSO to manage
access based on the attributes you passed from PingFederate.
Before you begin this procedure, you must first enable the Attributes for access control (p. 59)
feature. For more information about how to do this, see Enable and configure attributes for access
control (p. 60).
45
AWS Single Sign-On User Guide
Supported identity providers
8. On the Authentication Source Mapping page, choose the Adapter Instance configured with your
application.
9. On the Attribute Contract Fulfillment page, choose the Source (data store) and Value (data
store attribute) for the Attribute Contract https://aws.amazon.com/SAML/Attributes/
AccessControl:Department.
Note
If you have not yet configured a data source, you will need to do so now. See the Ping
product documentation for information on how to choose and configure a data source in
PingFederate.
10. Click Next repeatedly until you arrive on the Activation & Summary page, and then click Save.
You can optionally use the Attributes for access control (p. 59) feature in AWS SSO to pass an
Attribute element with the Name attribute set to https://aws.amazon.com/SAML/Attributes/
AccessControl:{TagKey}. This element allows you to pass attributes as session tags in the SAML
assertion. For more information about session tags, see Passing session tags in AWS STS in the IAM User
Guide.
To pass attributes as session tags, include the AttributeValue element that specifies the value of the
tag. For example, to pass the tag key-value pair CostCenter = blue, use the following attribute.
<saml:AttributeStatement>
<saml:Attribute Name="https://aws.amazon.com/SAML/Attributes/AccessControl:CostCenter">
<saml:AttributeValue>blue
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
If you need to add multiple attributes, include a separate Attribute element for each tag.
PingOne
AWS SSO supports automatic provisioning (synchronization) of user information from the PingOne
product by Ping Identity (hereafter “Ping”) into AWS SSO. This provisioning uses the System for Cross-
domain Identity Management (SCIM) v2.0 protocol. You configure this connection in PingOne using
your AWS SSO SCIM endpoint and access token. When you configure SCIM synchronization, you create
a mapping of your user attributes in PingOne to the named attributes in AWS SSO. This causes the
expected attributes to match between AWS SSO and PingOne.
This guide is based on PingOne as of October 2020. Steps for newer versions may vary. Contact Ping for
more information about how to configure provisioning to AWS SSO for other versions of PingOne. This
guide also contains a few notes regarding configuration of user authentication through SAML.
The following steps walk you through how to enable automatic provisioning of users from PingOne to
AWS SSO using the SCIM protocol.
Note
Before you begin deploying SCIM, we recommend that you first review the Considerations for
using automatic provisioning (p. 28). Then continue reviewing additional considerations in
the next section.
Topics
• Prerequisites (p. 47)
• Additional considerations (p. 47)
• Step 1: Enable provisioning in AWS SSO (p. 47)
46
AWS Single Sign-On User Guide
Supported identity providers
Prerequisites
You will need the following before you can get started:
• A PingOne subscription or free trial, with both federated authentication and provisioning capabilities.
For more information about how to obtain a free trial, see the Ping Identity website.
• An AWS SSO-enabled account (free). For more information, see Enable AWS SSO.
• The PingOne AWS Single Sign-On application added to your PingOne admin portal. You can obtain
the PingOne AWS Single Sign-On application from the PingOne Application Catalog. For general
information, see Add an application from the Application Catalog on the Ping Identity website.
• A SAML connection from your PingOne instance to AWS SSO. After the PingOne AWS Single Sign-
On application has been added to your PingOne admin portal, you must use it to configure a SAML
connection from your PingOne instance to AWS SSO. Use the “download” and “import" metadata
feature on both ends to exchange SAML metadata between PingOne and AWS SSO. For instructions on
how to configure this connection, see the PingOne documentation.
Additional considerations
The following are important considerations about PingOne that can affect how you implement
provisioning with AWS SSO.
• As of October 2020, PingOne does not support provisioning of groups through SCIM. Please contact
Ping for the latest information on group support in SCIM for PingOne.
• Users may continue to be provisioned from PingOne after disabling provisioning in the PingOne admin
portal. If you need to terminate provisioning immediately, delete the relevant SCIM bearer token, and/
or disable Automatic provisioning (p. 27) in AWS SSO.
• If an attribute for a user is removed from the data store configured in PingOne, that attribute will
not be removed from the corresponding user in AWS SSO. This is a known limitation in PingOne’s
provisioner implementation. If an attribute is modified, the change will be synchronized to AWS SSO.
• The following are important notes regarding your SAML configuration in PingOne:
• AWS SSO supports only emailaddress as a NameId format. This means you need to choose a user
attribute that is unique within your directory in PingOne, non-null, and formatted as an email/UPN
(for example, [email protected]) for your SAML_SUBJECT mapping in PingOne. Email (Work) is a
reasonable value to use for test configurations with the PingOne built-in directory.
• Users in PingOne with an email address containing a + character may be unable to sign in to AWS
SSO, with errors such as 'SAML_215' or 'Invalid input'. To fix this, in PingOne, choose the
Advanced option for the SAML_SUBJECT mapping in Attribute Mappings. Then set Name ID
Format to send to SP: to urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress in the drop-
down menu.
In this first step, you use the AWS SSO console to enable automatic provisioning.
1. After you have completed the prerequisites, open the AWS SSO console.
2. Choose Settings in the left navigation pane.
47
AWS Single Sign-On User Guide
Supported identity providers
3. On the Settings page, under Identity source, next to Provisioning, choose Enable automatic
provisioning. This immediately enables automatic provisioning in AWS SSO and displays the
necessary endpoint and access token information.
4. In the Inbound automatic provisioning dialog box, copy each of the values for the following
options. You will need to paste these in later when you configure provisioning in your IdP.
a. SCIM endpoint
b. Access token
5. Choose Close.
Now that you have set up provisioning in the AWS SSO console, you need to complete the remaining
tasks using the PingOne AWS Single Sign-On application. These steps are described in the following
procedure.
Use the following procedure in the PingOne AWS Single Sign-On application to enable provisioning
with AWS SSO. This procedure assumes that you have already added the PingOne AWS Single Sign-On
application to your PingOne admin portal. If you have not yet done so, refer to Prerequisites (p. 47),
and then complete this procedure to configure SCIM provisioning.
1. Open the PingOne AWS Single Sign-On application that you installed as part of configuring SAML
for PingOne (Applications > My Applications). See Prerequisites (p. 47).
2. Scroll to the bottom of the page. Under User Provisioning, choose the complete link to navigate to
the user provisioning configuration of your connection.
3. On the Provisioning Instructions page, choose Continue to Next Step.
4. In the previous procedure, you copied the SCIM endpoint value in AWS SSO. Paste that value into
the SCIM URL field in the PingOne AWS Single Sign-On application. Make sure that you remove the
trailing forward slash at the end of the URL. Also, in the previous procedure you copied the Access
token value in AWS SSO. Paste that value into the ACCESS_TOKEN field in the PingOne AWS Single
Sign-On application.
5. For REMOVE_ACTION, choose either Disabled or Deleted (see the description text on the page for
more details).
6. On the Attribute Mapping page, choose a value to use for the SAML_SUBJECT (NameId) assertion,
following guidance from Additional considerations (p. 47) earlier on this page. Then choose
Continue to Next Step.
7. On the PingOne App Customization - AWS Single Sign-On page, make any desired customization
changes (optional), and click Continue to Next Step.
8. On the Group Access page, choose the groups containing the users you would like to enable for
provisioning and single sign-on to AWS SSO. Choose Continue to Next Step.
9. Scroll to the bottom of the page, and choose Finish to start provisioning.
10. To verify that users have been successfully synchronized to AWS SSO, return to the AWS SSO console
and choose Users. Synchronized users from PingOne will appear on the Users page. These users can
now be assigned to accounts and applications within AWS SSO.
Remember that PingOne does not support provisioning of groups or group memberships through
SCIM. Contact Ping for more information.
(Optional) Step 3: Configure user attributes in PingOne for access control in AWS SSO
This is an optional procedure for PingOne should you choose to configure attributes for AWS SSO to
manage access to your AWS resources. The attributes that you define in PingOne will be passed in a
48
AWS Single Sign-On User Guide
Other identity providers
SAML assertion to AWS SSO. You then create a permission set in AWS SSO to manage access based on
the attributes you passed from PingOne.
Before you begin this procedure, you must first enable the Attributes for access control (p. 59)
feature. For more information about how to do this, see Enable and configure attributes for access
control (p. 60).
1. Open the PingOne AWS Single Sign-On application that you installed as part of configuring SAML
for PingOne (Applications > My Applications).
2. Choose Edit, and then choose Continue to Next Step until you get to the Attribute Mappings page.
3. On the Attribute Mappings page, choose Add new attribute, and then do the following. You must
perform these steps for each attribute you will add for use in AWS SSO for access control.
You can optionally use the Attributes for access control (p. 59) feature in AWS SSO to pass an
Attribute element with the Name attribute set to https://aws.amazon.com/SAML/Attributes/
AccessControl:{TagKey}. This element allows you to pass attributes as session tags in the SAML
assertion. For more information about session tags, see Passing session tags in AWS STS in the IAM User
Guide.
To pass attributes as session tags, include the AttributeValue element that specifies the value of the
tag. For example, to pass the tag key-value pair CostCenter = blue, use the following attribute.
<saml:AttributeStatement>
<saml:Attribute Name="https://aws.amazon.com/SAML/Attributes/AccessControl:CostCenter">
<saml:AttributeValue>blue
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
If you need to add multiple attributes, include a separate Attribute element for each tag.
Any identity provider (IdP) that implements these standard protocols is expected to interoperate
successfully with AWS SSO, with the following special considerations:
• SAML
49
AWS Single Sign-On User Guide
Other identity providers
• AWS SSO requires a SAML nameID format of email address (that is,
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress)
• The value of the nameID field in assertions must be an RFC 2822 (https://tools.ietf.org/html/
rfc2822) addr-spec compliant (“[email protected]”) string (https://tools.ietf.org/html/
rfc2822#section-3.4.1)
• SCIM
• The AWS SSO SCIM implementation is based on SCIM RFCs 7642 (https://tools.ietf.org/html/
rfc7642), 7643 (https://tools.ietf.org/html/rfc7643), and 7644 (https://tools.ietf.org/html/
rfc7644), and the interoperability requirements laid out in the March 2020 draft of the FastFed
Basic SCIM Profile 1.0 (https://openid.net/specs/fastfed-scim-1_0-02.html#rfc.section.4). Any
differences between these documents and the current implementation in AWS SSO are described in
the Supported API operations section of the AWS SSO SCIM Implementation Developer Guide.
IdPs that do not conform to the standards and considerations mentioned above are not supported.
Please contact your IdP for questions or clarifications regarding the conformance of their products to
these standards and considerations.
If you have any issues connecting your IdP to AWS SSO, we recommend that you check:
Note
Some IdPs, including the list of Supported identity providers (p. 32), offer a simplified
configuration experience for AWS SSO in the form of an “application” or “connector” built
specifically for AWS Single Sign-On. If your IdP provides this option, we recommend that you
use it, being careful to choose the item that’s built specifically for AWS Single Sign-On. Other
items called “AWS”, “AWS federation”, or similar generic "AWS" names may use other federation
approaches and/or endpoints, and may not work as expected with AWS SSO.
50
AWS Single Sign-On User Guide
Single sign-on access
Once you assign access from the AWS SSO console, you can use permission sets to further refine
what users can do in the AWS Management Console. For more information about permission sets, see
Permission sets (p. 53).
Permission sets are a way to define permissions centrally in AWS SSO so that they can be applied to all of
your AWS accounts. These permission sets are provisioned to each AWS account as an IAM role. The user
portal gives users the ability to retrieve temporary credentials for the IAM role of a given AWS account so
they can use it for short-term access to the AWS CLI. For more information, see How to get credentials of
an IAM role for use with CLI access to an AWS account (p. 80).
To use AWS SSO with AWS Organizations, you must first Enable AWS SSO (p. 4), which grants AWS SSO
the capability to create Service-linked roles (p. 64) in each account in your AWS organization. These
roles are not created until after you Assign user access (p. 52) for a given account.
You can also connect an AWS account that is not part of your organization by setting up the account as a
custom SAML application in AWS SSO. In this scenario, you provision and manage the IAM roles and trust
relationships that are required to enable SSO access. For more information on how to do this, see Add
and configure a custom SAML 2.0 application (p. 71).
Topics
• Single sign-on access (p. 51)
• Permission sets (p. 53)
• Attribute-based access control (p. 57)
• IAM identity provider (p. 64)
• Service-linked roles (p. 64)
51
AWS Single Sign-On User Guide
Assign user access
in production accounts. AWS SSO configures all the necessary user permissions in your AWS accounts
automatically.
Note
You might need to grant users or groups permissions to operate in the AWS Organizations
management account. Because it is a highly privileged account, additional security restrictions
require you to have the IAMFullAccess policy or equivalent permissions before you can set this
up. These additional security restrictions are not required for any of the member accounts in
your AWS organization.
52
AWS Single Sign-On User Guide
Remove user access
Use the following steps to delegate permissions to manage SSO access to users in your directory.
1. Sign in to the AWS SSO console as a root user of the management account or with another IAM user
who has IAM administrator permissions to the management account.
2. Use the procedure Create a permission set (p. 53) to create a permission set. When you get to the
Create new permission set page, select the Create a custom permission set option, choose Next:
Details, and then select the option Attach AWS managed policies. In the list of IAM policies that
appear in the table, choose both the AWSSSOMasterAccountAdministrator and IAMFullAccess AWS
managed policies. These policies grant permissions to any user who will be assigned access to this
permission set in the future.
3. Use the procedure Assign user access (p. 52) to assign the appropriate users to the permission set
that you just created.
4. Communicate the following to the assigned users: When they sign in to the user portal and select
the AWS Account icon, they must choose the appropriate IAM role name to be authenticated with
the permissions that you just delegated.
Permission sets
Permission sets define the level of access that users and groups have to an AWS account. Permission sets
are stored in AWS SSO and provisioned to the AWS account as IAM roles. You can assign more than one
permission set to a user. Users who have multiple permission sets must choose one when they sign in to
the user portal. (Users will see these as IAM roles). For more information, see Permission sets (p. 9).
53
AWS Single Sign-On User Guide
Configure permission set properties
For more information about the access policy language, see Overview of policies in the IAM
User Guide. To test the effects of this policy before applying your changes, use the IAM policy
simulator.
9. Choose Next: Tags.
10.Under Add tags (optional), specify values for Key and Value (optional), and then choose Next:
Review. For more information about tags, see Tagging AWS Single Sign-On resources (p. 125).
11.Review the selections you made, and then choose Create.
Topics
54
AWS Single Sign-On User Guide
Configure permission set properties
When you create a new permission set, the session duration is set to 1 hour (in seconds) by default. The
minimum session duration is 1 hour, and can be set to a maximum of 12 hours. AWS SSO automatically
creates IAM roles in each assigned account for each permission set, and configures these roles with a
maximum session duration of 12 hours.
When end-users federate into their AWS Account’s console or when using the AWS Command Line
Interface (CLI), AWS SSO uses the session duration setting on the permission set to control the duration
of the session. By default, AWS SSO-generated IAM roles for permission sets can only be assumed by
SSO users, which ensures that the session duration specified in the SSO permission set is enforced.
Important
As a security best practice, we recommend that you do not set the session duration length
longer than is needed to perform the role.
Once a permission set has been created, you can later update it to apply a new session duration. Use the
following procedure to modify the session duration length for a given permission set.
55
AWS Single Sign-On User Guide
Delete permission sets
Use the following procedure to modify the relay state URL for a given permission set.
56
AWS Single Sign-On User Guide
Attribute-based access control
For example, you can assign developers Bob and Sally, who are from two different teams, to the same
permission set in AWS SSO and then select the team name attribute for access control. When Bob and
Sally sign in to their AWS accounts, AWS SSO sends their team name attribute in the AWS session so
Bob and Sally can access AWS project resources only if their team name attribute matches the team
name tag on the project resource. If Bob moves to Sally’s team in the future, you can modify his access
by simply updating his team name attribute in the corporate directory. When Bob signs in next time, he
will automatically get access to the project resources of his new team without requiring any permissions
updates in AWS.
This approach also helps in reducing the number of distinct permissions you need to create and manage
in AWS SSO as users associated with the same permission sets can now have unique permissions based
on their attributes. You can use these user attributes in AWS SSO permission sets and resource-based
policies to implement ABAC to AWS resources and simplify permissions management at scale.
Benefits
The following are additional benefits of using ABAC in AWS SSO.
• ABAC requires fewer permission sets – Because you don't have to create different policies for
different job functions, you create fewer permission sets. This reduces your permissions management
complexity.
• Using ABAC, teams can change and grow quickly – Permissions for new resources are automatically
granted based on attributes when resources are appropriately tagged upon creation.
• Use employee attributes from your corporate directory with ABAC – You can use existing employee
attributes from any identity source configured in AWS SSO to make access control decisions in AWS.
• Track who is accessing resources – Security administrators can easily determine the identity of a
session by looking at the user attributes in AWS CloudTrail to track user activity in AWS.
For information about how to configure ABAC using the AWS SSO console, see Attributes for access
control (p. 59). For information about how to enable and configure ABAC using the AWS SSO APIs, see
CreateInstanceAccessControlAttributeConfiguration in the AWS SSO API Reference Guide.
Topics
• Checklist: Configuring ABAC in AWS using AWS SSO (p. 57)
• Attributes for access control (p. 59)
57
AWS Single Sign-On User Guide
Checklist: Configuring ABAC in AWS using AWS SSO
1 Review how to add tags to all your AWS resources. To • Tagging AWS resources
implement ABAC in AWS SSO, you'll first need to add tags
to all your AWS resources that you want to implement
ABAC for.
2 Review how to configure your identity source in AWS SSO • Manage your identity
with the associated user identities and attributes in SSO. source (p. 13)
AWS SSO lets you use user attributes from any supported
AWS SSO identity source for ABAC in AWS.
3 Based on the following criteria, determine which attributes • Getting started (p. 59)
you want to use for making access control decisions in
AWS and send them to AWS SSO.
• If you are using an external IdP, decide whether you • Choosing attributes when
want to use attributes passed from the IdP or select using an external identity
attributes from within AWS SSO. provider as your identity
source (p. 59)
• If you choose to have your IdP send attributes, configure • Supported identity
your IdP to transmit the attributes in SAML assertions. providers (p. 32)
See the Optional sections in the procedure for your
specific IdP.
• If you use an IdP as your identity source and choose • Automatic provisioning (p. 27)
to select attributes in AWS SSO, investigate how to • Supported external identity
configure SCIM so that the attribute values come from provider attributes (p. 23)
your IdP. If you cannot use SCIM with your IdP, add the
users and their attributes using the AWS SSO console's
User page.
• If you use Active Directory or AWS SSO as your identity • Choosing attributes when
source, or you use an IdP and choose to select attributes using AWS SSO as your
in AWS SSO, review the available attributes that you identity source (p. 59)
can configure. Then jump immediately to step 4 to start • Choosing attributes when
configuring your ABAC attributes using the AWS SSO using AWS Managed
console. Microsoft AD as your identity
source (p. 59)
• Default mappings (p. 24)
4 Select the attributes to use for ABAC using the Attributes • Enable and configure
for access control page in the AWS SSO console. From this attributes for access
page you can select attributes for access control from the control (p. 60)
identity source that you configured in step 2. After your
identities and their attributes are in AWS SSO, you must
create key-value pairs (mappings) which will be passed to
your AWS accounts for use in access control decisions.
5 Create custom permissions policies within your permission • Create permission policies for
set and use access control attributes to create ABAC rules ABAC in AWS SSO (p. 63)
so that users can only access resources with matching tags.
User attributes that you configured in step 4 are used as
tags in AWS for access control decisions. You can refer
to the access control attributes in the permissions policy
using the aws:PrincipalTag/key condition.
58
AWS Single Sign-On User Guide
Attributes for access control
6 In your various AWS accounts, assign users to permissions • Assign user access (p. 52)
sets you created in step 5. Doing so ensures that when
they federate into their accounts and access AWS
resources, they only get access based on matching tags.
Once you have completed this checklist, users that federate into an AWS account using SSO will get
access to their AWS resources based on matching attributes.
For example, suppose you want to assign access to S3 buckets based on department names. While on
the Attributes for access control page, you select the Department user attribute for use with attribute-
based access control (ABAC). In the AWS SSO permission set, you then write a policy that grants users
access only when the Department attribute matches the department tag that you assigned to your S3
buckets. AWS SSO passes the user's department attribute to the account being accessed. The attribute
is then used to determine access based on the policy. For more information about ABAC, see Attribute-
based access control (p. 57).
Getting started
How you get started configuring attributes for access control depends on which identity source you are
using. Regardless of the identity source you choose, after you have selected your attributes you need to
create or edit permission set policies. These policies must grant user identities access to AWS resources.
• You can configure your IdP to send the attributes through SAML assertions. In this case, AWS SSO
passes the attribute name and value from the IdP through for policy evaluation.
59
AWS Single Sign-On User Guide
Attributes for access control
Note
Attributes in SAML assertions will not be visible to you on the Attributes for access control
page. You will have to know these attributes in advance and add them to access control rules
when you author policies. If you decide to trust your external IdPs for attributes, then these
attributes will always be passed when users federate into AWS accounts. In scenarios where
the same attributes are coming to SSO through SAML and SCIM, the SAML attributes value
take precedence in access control decisions.
• You can configure which attributes you use from the Attributes for access control page in the AWS
SSO console. The attributes values that you choose here replace the values for any matching attributes
that come from an IdP through an assertion. Depending on whether you are using SCIM, consider the
following:
• If using SCIM, the IdP automatically synchronizes the attribute values into AWS SSO. Additional
attributes that are required for access control might not be present in the list of SCIM attributes.
In that case, consider collaborating with the IT admin in your IdP to send such attributes to SSO
via SAML assertions using the required https://aws.amazon.com/SAML/Attributes/
AccessControl: prefix. For information about how to configure user attributes for access control
in your IdP to send through SAML assertions, see Supported identity providers (p. 32).
• If you are not using SCIM, you must manually add the users and set their attributes just as if you
were using AWS SSO as an identity source. Next, navigate to the Attributes for access control page
and choose the attributes you want to use in policies.
For a complete list of supported attributes for user attributes in AWS SSO to the user attributes in your
external IdPs, see Supported external identity provider attributes (p. 23).
To get started with ABAC in AWS SSO, see the following topics.
Topics
• Enable and configure attributes for access control (p. 60)
• Create permission policies for ABAC in AWS SSO (p. 63)
60
AWS Single Sign-On User Guide
Attributes for access control
policy. These additional security restrictions are not required if you do not have any permission
sets created in your account.
Key represents the name you are giving to the attribute for use in policies. This can be any arbitrary
name but you need to specify that exact name in the policies you author for access control. For
example, lets say that you are using Okta (an external IdP) as your identity source and need
to pass your organization's cost center data along as session tags. In Key, you would enter a
similarly matched name like CostCenter as your key name. It's important to note that whichever
name you choose here, it must also be named exactly the same in your aws:PrincipalTag
condition key (p. 63) (i.e., "ec2:ResourceTag/CostCenter": "${aws:PrincipalTag/
CostCenter}").
Value represents the content of the attribute coming from your configured identity source. Here you
can enter any value from the appropriate identity source table listed in Attribute mappings (p. 22).
For example, using the context provided in the above mentioned example, you would review the list
of
The following table lists all external identity provider (IdP) attributes that are
supported and that can be mapped to attributes you can use when configuring
Attributes for access control (p. 59) in AWS SSO. When using SAML assertions,
you can use whichever attributes your IdP supports.
${path:userName}
${path:name.familyName}
61
AWS Single Sign-On User Guide
Attributes for access control
${path:name.givenName}
${path:displayName}
${path:nickName}
${path:emails[primary eq true].value}
${path:addresses[type eq "work"].streetAddress}
${path:addresses[type eq "work"].locality}
${path:addresses[type eq "work"].region}
${path:addresses[type eq "work"].postalCode}
${path:addresses[type eq "work"].country}
${path:addresses[type eq "work"].formatted}
${path:phoneNumbers[type eq "work"].value}
${path:userType}
${path:title}
${path:locale}
${path:timezone}
${path:enterprise.employeeNumber}
${path:enterprise.costCenter}
${path:enterprise.organization}
${path:enterprise.division}
${path:enterprise.department}
${path:enterprise.manager.value}
Now that you have configured mapping your access control attributes, you need to complete the ABAC
configuration process. To do this, author your ABAC rules and add them to your permission sets and/or
resource-based policies. This is required so that you can grant user identities access to AWS resources. For
more information, see Create permission policies for ABAC in AWS SSO (p. 63).
62
AWS Single Sign-On User Guide
Attributes for access control
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:StartInstances",
"ec2:StopInstances"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/CostCenter": "${aws:PrincipalTag/CostCenter}"
}
}
}
]
}
63
AWS Single Sign-On User Guide
IAM identity provider
For more information, see aws:PrincipalTag and EC2: Start or stop instances based on matching principal
and resource tags in the IAM User Guide.
If policies contain invalid attributes in their conditions, then the policy condition will fail and access will
be denied. For more information, see Error 'An unexpected error has occurred' when a user tries to sign in
using an external identity provider (p. 136).
Service-linked roles
Service-linked roles are predefined IAM permissions that allow AWS SSO to delegate and enforce
which users have SSO access to specific AWS accounts in your organization in AWS Organizations. The
service enables this functionality by provisioning a service-linked role in every AWS account within
its organization. The service then allows other AWS services like AWS SSO to leverage those roles to
perform service-related tasks. For more information, see AWS Organizations and service-linked roles.
During the process to Enable AWS SSO (p. 4), AWS SSO creates a service-linked role in all accounts
within the organization in AWS Organizations. AWS SSO also creates the same service-linked role
in every account that is subsequently added to your organization. This role allows AWS SSO to
access each account's resources on your behalf. For more information, see Manage SSO to your AWS
accounts (p. 51).
64
AWS Single Sign-On User Guide
Service-linked roles
Service-linked roles that are created in each AWS account are named AWSServiceRoleForSSO. For
more information, see Using service-linked roles for AWS SSO (p. 103).
65
AWS Single Sign-On User Guide
AWS SSO-integrated applications
AWS SSO securely communicates with these applications through a trusted relationship between AWS
SSO and the application's service provider. This trust is created when you add the application from the
AWS SSO console and configure it with the appropriate metadata for both AWS SSO and the service
provider.
After the application has been successfully added to the AWS SSO console, you can manage which
users or groups need permissions to the application. By default, when you add an application, no users
are assigned to the application. In other words, newly added applications in the AWS SSO console are
inaccessible until you assign users to them. AWS SSO supports the following applications types:
You can also grant your employees access to the AWS Management Console for a given AWS
account in your organization. For more information on how to do this, see Manage SSO to your AWS
accounts (p. 51).
The following sections explain how to configure user access to your AWS applications and third-party
software as a service (SaaS) applications. You can also configure any custom applications that support
identity federation with SAML 2.0.
Topics
• AWS SSO-integrated applications (p. 66)
• Cloud applications (p. 68)
• Custom SAML 2.0 applications (p. 71)
• Manage AWS SSO certificates (p. 72)
• Application properties (p. 74)
• Assign user access (p. 76)
• Remove user access (p. 76)
• Map attributes in your application to AWS SSO attributes (p. 77)
66
AWS Single Sign-On User Guide
Add and configure an AWS SSO-integrated application
SSO user and group information and to prevent the application from being started except in designated
accounts.
After they are enabled, integrated applications can access user and group information directly from
AWS SSO. As a result, you won’t have to manage access in both AWS SSO and then again inside the
application. Instead, AWS SSO delegates application access to the application administrator. To add users
to integrated applications, use the console of the application where you created the application.
1. In the AWS SSO console, choose Applications in the left navigation pane.
2. Select the application in the list.
3. Choose Actions, and then choose either Disable or Enable.
• You can stop user authentications to this application without removing it by using the Disable option
instead. For more information, see Disable or enable an AWS SSO-integrated application (p. 67).
• If you want to disconnect the application from AWS SSO permanently, use the AWS Management
Console where you created the application and remove it there instead. This helps to avoid
unnecessary application-related charges that may otherwise appear if you continue with force-remove.
This process also removes the application from AWS SSO.
Warning
Force-remove should only be used as a last resort. This operation deletes all user permissions
to this application, disconnects the application from AWS SSO, and renders the application
inaccessible.
1. In the AWS SSO console, choose Applications in the left navigation pane.
2. Choose the application you want to remove in the list.
3. On the application Details page, under Remove Application, choose force-remove.
67
AWS Single Sign-On User Guide
Cloud applications
4. On the Force-remove application page, review the warning message. If you agree, enter remove,
and then choose Force-remove.
Cloud applications
You can use the AWS SSO application configuration wizard to include built-in SAML integrations to many
popular cloud applications. Examples include Salesforce, Box, and Office 365. For a complete list of
applications that you can add from the wizard, see Supported applications (p. 68).
Most cloud applications come with detailed instructions on how to set up the trust between AWS
SSO and the application's service provider. You can find these instructions on the cloud applications
configuration page during the setup process and after the application has been set up. After the
application has been configured, you can assign access to the groups or users that require it.
Supported applications
AWS SSO has built-in support for the following commonly used cloud applications.
Note
AWS Support engineers can assist customers who have Business and Enterprise support plans
with some integration tasks that involve third-party software. For a current list of supported
platforms and applications, see Third-Party Software Support on the AWS Support Features
page.
68
AWS Single Sign-On User Guide
Supported applications
69
AWS Single Sign-On User Guide
Add and configure a cloud application
1. In the AWS SSO console, choose Applications in the left navigation pane. Then choose Add a new
application.
2. Select the application you want to add from the list. Then choose Add application.
3. On the Configure <application name> page, under Details, enter a Display name for the
application, such as Salesforce.
70
AWS Single Sign-On User Guide
Custom SAML 2.0 applications
a. Next to AWS SSO SAML metadatafile, choose Download to download the identity provider
metadata.
b. Next to AWS SSO certificate, choose Download certificate to download the identity provider
certificate.
Note
You will need these files later when you set up the cloud application from the service
provider's website. Follow the instructions from that provider.
5. (Optional) Under Application properties, you can specify additional properties for the
Application start URL, Relay state, and Session duration. For more information, see Application
properties (p. 74).
6. Under Application metadata, do one of the following:
a. Next to AWS SSO SAML metadatafile, choose Browse to find and select the metadata file.
b. If you do not have a metadata file, choose the link If you don't have a metadata file, you
can manually type your metadata values., and then provide the Application ACS URL and
Application SAML audience values.
7. Choose Save changes to save the configuration.
However, you also need to provide additional SAML attribute mappings for a custom SAML application.
These mappings tell AWS SSO how to populate the SAML assertion correctly for your application. You
can provide this additional SAML attribute mapping when you set up the application for the first time.
You can also provide SAML attribute mappings on the application detail page that is accessible from the
AWS SSO console.
1. In the AWS SSO console, choose Applications in the left navigation pane. Then choose Add a new
application.
2. In the Select an application dialog box, select Custom SAML 2.0 application from the list. Then
choose Configure application.
3. On the Configure <Custom app name> page, under Details, enter a Display name for the
application, such as MyApp.
4. Under AWS SSO metadata, do the following:
a. Next to AWS SSO SAML metadatafile, choose Download to download the identity provider
metadata.
71
AWS Single Sign-On User Guide
Manage certificates
b. Next to AWS SSO certificate, choose Download certificate to download the identity provider
certificate.
Note
You will need these files later when you set up the custom application from the service
provider's website.
5. (Optional) Under Application properties, you can specify additional properties for the
Application start URL, Relay State, and Session Duration. For more information, see Application
properties (p. 74).
6. Under Application metadata, provide the Application ACS URL and Application SAML audience
values.
7. Choose Save changes to save the configuration.
As an AWS SSO administrator, you'll occasionally need to replace older certificates with newer ones for a
given application. For example, you might need to replace a certificate when the expiration date on the
certificate approaches. The process of replacing an older certificate with a newer one is referred to as
certificate rotation.
Topics
• Considerations before rotating a certificate (p. 72)
• Rotate an AWS SSO certificate (p. 72)
• Certificate expiration status indicators (p. 74)
• The certification rotation process requires that you reestablish the trust between AWS SSO and
the service provider. To reestablish the trust, use the procedures provided in Rotate an AWS SSO
certificate (p. 72).
• Updating the certificate with the service provider may cause a temporary service disruption for your
users until the trust has been successfully reestablished. Plan this operation carefully during off peak
hours if possible.
72
AWS Single Sign-On User Guide
Rotate an AWS SSO certificate
Use all of the following procedures in the following order to complete the certificate rotation process for
a given application.
New AWS SSO certificates that you generate can be configured to use the following properties:
• Validity period – Specifies the time allotted (in months) before a new AWS SSO certificate expires.
• Key size – Determines the number of bits that a key must use with its cryptographic algorithm. You
can set this value to either 1024-bit RSA or 2048-bit RSA. For general information about how key sizes
work in cryptography, see Key size.
• Algorithm – Specifies the algorithm that AWS SSO uses when signing the SAML assertion/response.
You can set this value to either SHA-1 or SHA-256. AWS recommends using SHA-256 when possible,
unless your service provider requires SHA-1. For general information about how cryptography
algorithms work, see Public-key cryptography.
Use the following procedure to reestablish the trust with the application's service provider.
Important
When you upload the new certificate to the service provider, your users might not be able to get
authenticated. To correct this situation, set the new certificate as active as described in the next
step.
1. In the AWS SSO console, choose the application that you just generated a new certificate for.
2. On the application details page, choose Edit configuration.
3. Choose View instructions, and then follow the instructions for your specific application service
provider’s website to add the newly generated certificate.
An application can have up to two certificates assigned to it. Whichever certificate is set as active, AWS
SSO will use it to sign all SAML assertions.
73
AWS Single Sign-On User Guide
Certificate expiration status indicators
Use the following procedure to complete the certificate rotation process for your application. You can
only delete a certificate that is in an Inactive state.
Application properties
In AWS SSO you can customize the user experience by configuring the following additional application
properties.
The following steps and diagram illustrate the application start URL authentication workflow when a
user chooses an application in the user portal:
1. The user’s browser redirects the authentication request using the value for the application start URL
(in this case https://example.com).
2. The application sends an HTML POST with a SAMLRequest to AWS SSO.
3. AWS SSO then sends an HTML POST with a SAMLResponse back to the application.
74
AWS Single Sign-On User Guide
Relay state
Relay state
During the federation authentication process, the relay state redirects users within the application.
For SAML 2.0, this value is passed, unmodified, to the application. After the application properties are
configured, AWS SSO sends the relay state value along with a SAML response to the application.
Session duration
Session duration is the length of time that the application user sessions are valid for. For
SAML 2.0, this is used to set the NotOnOrAfter date of the SAML assertion's elements;
saml2:SubjectConfirmationData and saml2:Conditions.
• Applications can use it to determine how long the SAML assertion is valid. Applications do not consider
session duration when deciding the time allowed for the user.
• Applications can use it to determine the maximum time that is allowed for the user's session.
Applications might generate a user session with a shorter duration. This can happen when the
75
AWS Single Sign-On User Guide
Assign user access
application only supports user sessions with a duration that is shorter than the configured session
length.
• Applications can use it as the exact duration and might not allow administrators to configure the
value. This can happen when the application only supports a specific session length.
For more information about how session duration is used, see your specific application’s documentation.
76
AWS Single Sign-On User Guide
Map attributes in your application to AWS SSO attributes
5. In the Remove access dialog box, verify the user or group name. Then choose Remove access.
77
AWS Single Sign-On User Guide
Tips for using the portal
Contact your administrator or help desk to request additional access in the following situations:
• You don't see an AWS account or application that you need access to.
• The access that you have to a given account or application is not what you expected.
Topics
• Tips for using the portal (p. 78)
• How to accept the invitation to join AWS SSO (p. 78)
• How to sign in to the user portal (p. 79)
• How to sign out of the user portal (p. 79)
• How to search for an AWS account or application (p. 80)
• How to reset your password (p. 80)
• How to get credentials of an IAM role for use with CLI access to an AWS account (p. 80)
• How to bookmark an IAM role for quick access to your management console (p. 81)
• How to register a device for use with multi-factor authentication (p. 81)
• Occasionally, you may need to sign out and sign back in to the user portal. This might be necessary to
access new applications that your administrator recently assigned to you. This is not required, however,
because all new applications are refreshed every hour.
• When you sign in to the user portal, you can open any of the applications listed in the portal by
choosing the application’s icon. After you are done using the application, you can either close the
application or sign out of the user portal. Closing the application signs you out of that application
only. Any other applications that you have opened from the user portal remain open and running.
• Before you can sign in as a different user, you must first sign out of the user portal. Signing out from
the portal completely removes your credentials from the browser session.
78
AWS Single Sign-On User Guide
How to sign in to the user portal
1. Depending on the email you received from your company, choose one of the following methods to
activate your account so that you can start using the user portal.
a. If you received an email with the subject Invitation to join AWS Single Sign-On, open it and
choose Accept invitation, which takes you to the Single Sign-On page. Here you specify
a password, which you use each time you sign in to the portal. Once you have provided a
password and have confirmed it, choose Update User.
b. If you were sent an email from your company's IT support or IT administrator, follow the
instructions they provided to activate your account.
2. Once you activate your account by providing a new password, the user portal signs you in
automatically. If this does not occur, you can manually sign in to the user portal using the
instructions provided in the next step.
1. In your browser window, paste in the sign-in URL that you were provided. Then press Enter. We
recommend that you bookmark this link to the portal now so that you can quickly access it later.
2. Sign in using your standard company user name and password. If you are prompted for a
Verification code, check your email and then copy and paste the code into the sign-in page.
Note
Verification codes are typically sent through email, but the delivery method can vary. Check
with your administrator for details.
3. Once signed in, you can access any AWS account and application that appears in the portal. Simply
choose an icon.
Trusted devices
After you choose the option This is a trusted device from the sign-in page, AWS SSO will consider all
future sign-ins from that device as authorized. This means that AWS SSO will not present an option to
enter in an MFA code as long as you are using that trusted device. However, there are some exceptions.
These include signing in from a new browser or when your device has been issued an unknown IP
address.
79
AWS Single Sign-On User Guide
How to search for an AWS account or application
• In the user portal, choose Sign out from the upper right corner of the portal.
1. Open a browser and go to the sign-in page for your user portal.
2. Under the Sign In button, choose Forgot Password?.
3. Provide your Username and enter the characters for the provided image to confirm that you are not
a robot. Then choose Recover Password. This sends an email to you with the subject AWS Directory
Service Reset Password Request.
4. Once you receive the email, choose Reset Password.
5. On the Single Sign-On page, need to specify a new password for the portal. Once you have
provided a password and have confirmed it, choose Reset Password.
By default, credentials retrieved through the user portal are valid for 1 hour. You can change this value
up to 12 hours. Once you have completed this procedure, you can run any AWS CLI command (that your
administrator has given you access to) until those temporary credentials have expired.
Note
Before you get started with the steps in this procedure, you must first install the AWS CLI. For
instructions, see Installing the AWS Command Line Interface.
To get temporary credentials of an IAM role for CLI access to an AWS account
1. While signed into the portal, choose the AWS Accounts icon to expand the list of accounts.
2. Choose the AWS account from which you want to retrieve access credentials. Then, next to the IAM
role name (for example Administrator), choose Command line or programmatic access.
80
AWS Single Sign-On User Guide
How to bookmark an IAM role for quick
access to your management console
3. In the Get credentials dialog box, choose either MacOS and Linux or Windows, depending on the
operating system where you plan to use the CLI command prompt.
4. Depending on how you want to use the temporary credentials, choose one or more of the following
options:
• If you need to run commands from the AWS CLI in the selected AWS account, under Option 1: Set
AWS environment variables, pause on the commands. Then choose Copy. Paste the commands
into the CLI terminal window and press Enter to set the necessary environment variables.
• If you need to run commands from multiple command prompts in the same AWS account, under
Option 2: Add a profile to your AWS credentials file, pause on the commands. Then choose
Copy. Paste the commands into your AWS credentials file to set up a newly named profile. For
more information, see Configuration and Credential Files in the AWS CLI User Guide. Modifying the
credential files in this way enables the --profile option in your AWS CLI command so that you
can use this credential. This affects all command prompts that use the same credential file.
• If you need to access AWS resources from an AWS service client, under Option 3: Use individual
values in your AWS service client, choose Copy next to the commands you need to use. For more
information, see Configuration and Credential File Settings in the AWS CLI User Guide or see Tools
for Amazon Web Services.
5. Continue using the AWS CLI as necessary for your AWS account until the credentials have expired.
1. While signed into the portal, choose the AWS Accounts icon to expand the list of accounts.
2. Choose the AWS account where you want to create the bookmark.
3. Right-click the Management console link, copy the link address, and then use that URL to create
your bookmark.
81
AWS Single Sign-On User Guide
How to register a device for use
with multi-factor authentication
Note
If the Register MFA device option is grayed out, you will need to contact your administrator
for assistance with registering your device.
4. On the Register MFA device page, select one of the following MFA device types, and follow the
instructions:
• Authenticator app
1. On the Set up the authenticator app page, you might notice configuration information for the
new MFA device, including a QR code graphic. The graphic is a representation of the secret key
that is available for manual entry on devices that do not support QR codes.
2. Using the physical MFA device, do the following:
a. Open a compatible MFA authenticator app. For a list of tested apps that you can use with
MFA devices, see Authenticator apps (p. 85). If the MFA app supports multiple accounts
(multiple MFA devices), choose the option to create a new account (a new MFA device).
b. Determine whether the MFA app supports QR codes, and then do one of the following on the
Set up the authenticator app page:
i. Choose Show QR code, and then use the app to scan the QR code. For example, you might
choose the camera icon or choose an option similar to Scan code. Then use the device's
camera to scan the code.
ii. Choose show secret key, and then enter that secret key into your MFA app.
Important
When you configure an MFA device for AWS SSO, we recommend that you save a
copy of the QR code or secret key in a secure place. This can help if you lose the
phone or have to reinstall the MFA authenticator app. If either of those things
happen, you can quickly reconfigure the app to use the same MFA configuration.
3. On the Set up the authenticator app page, under Authenticator code, enter the one-time
password that currently appears on the physical MFA device.
Important
Submit your request immediately after generating the code. If you generate the code
and then wait too long to submit the request, the MFA device is successfully associated
with your user account. But the MFA device is out of sync. This happens because time-
based one-time passwords (TOTP) expire after a short period of time. If this happens,
you can resync the device.
4. Choose Assign MFA. The MFA device can now start generating one-time passwords and is now
ready for use with AWS.
82
AWS Single Sign-On User Guide
Getting started
Multi-factor authentication
When you enable multi-factor authentication (MFA), users must sign in to the user portal with their user
name and password. This is the first factor, something they know. Users must also sign in with either a
code or security key. This is the second factor, something they have or something they are. The second
factor could be either an authentication code generated from their mobile device or alternatively by
tapping on a security key connected to their computer. Taken together, these multiple factors provide
increased security by preventing unauthorized access to your AWS resources unless a valid MFA challenge
has been successfully completed.
Important
As a security best practice, we strongly recommend that you enable multi-factor authentication.
MFA provides a simple and secure way to add an extra layer of protection on top of the default
authentication mechanism of user name and password.
Topics
• Getting started (p. 83)
• MFA types (p. 84)
• How to manage MFA for AWS SSO (p. 86)
Getting started
You can enforce secure access to the user portal, AWS SSO integrated apps, and the AWS CLI by enabling
multi-factor authentication (MFA). Review the following topics to get started.
Topics
• Considerations before using MFA in AWS SSO (p. 83)
• Enable MFA (p. 84)
• Users are encouraged to register multiple backup authenticators for all enabled MFA types. This
practice can prevent the user’s losing access in case of a broken or misplaced MFA device.
• Do not use the option Require Them to Provide a One-Time Password Sent by Email if your users
must sign in to the user portal to access their email. For example, your users might use Office 365 on
the user portal to read their email. In this case, users would not be able to retrieve the verification code
and would be unable to sign in to the user portal. For more information, see Configure MFA device
enforcement (p. 87).
• If you are already using RADIUS MFA that you configured with AWS Directory Service, then you do not
need to enable MFA within AWS SSO. MFA in AWS SSO is an alternative to RADIUS MFA for Microsoft
Active Directory users of AWS SSO. For more information, see RADIUS MFA (p. 86).
• You can use AWS SSO’s multi-factor authentication capabilities when your identity source is configured
with AWS SSO’s identity store, AWS Managed Microsoft AD, or AD Connector. MFA in AWS SSO is
currently not supported for use by external identity providers.
83
AWS Single Sign-On User Guide
Enable MFA
Enable MFA
Use the following steps to enable MFA using the AWS SSO console. Before you enable MFA, we
recommend that you first review details about MFA types (p. 84).
To enable MFA
In this mode (the default), AWS SSO analyzes the sign-in context (browser, location, and devices)
for each user. AWS SSO then determines whether the user is signing in with a previously trusted
context. If a user is signing in from an unknown IP address or is using an unknown device,
AWS SSO prompts the user for MFA. This prompt comes in addition to their email address and
password credentials.
This mode provides additional protection for users who frequently sign in from their offices. This
mode is also easier for those users because they do not need to complete MFA on every sign-
in. AWS SSO prompts users with MFA once and permits them to trust their device. Once a user
indicates that they want to trust a device, AWS SSO does not challenge the user for MFA for
that device. Users are required to provide additional verification only when their sign-in context
changes. Such changes include signing in from a new device, a new browser, or an unknown IP
address.
• Every time they sign in (always-on)
In this mode, AWS SSO requires that users with a registered MFA device will be prompted every
time they sign in. You should use this mode if you have organizational or compliance policies that
require your users to complete MFA every time they sign in to the user portal. For example, PCI
DSS strongly recommends MFA during every sign-in to access applications that support high-risk
payment transactions.
• Never (disabled)
While in this mode, all users will sign in with their standard user name and password only.
Choosing this option disables AWS SSO MFA.
Note
If you are already using RADIUS MFA with AWS Directory Service, and want to continue
using it as your default MFA type, then you can leave the authentication mode as disabled
to bypass AWS SSO MFA’s capabilities. Changing from Disabled mode to Context-aware
or Always-on mode will override the existing RADIUS MFA settings. For more information,
see RADIUS MFA (p. 86).
5. Choose Save changes.
MFA types
MFA types represent the different mechanisms that users will be able to register and provide as
secondary means of verifying their identity when challenged. All MFA types are supported for both
browser-based console access as well as using the AWS CLI v2 with AWS SSO.
84
AWS Single Sign-On User Guide
Authenticator apps
AWS SSO MFA provides support to enable one or both of the following types of client-side
authentication types.
• Authenticator apps
• Security keys and built-in authenticators
Alternatively, you can also utilize your own RADIUS implementation connected through AWS Managed
Microsoft AD. For more information, see RADIUS MFA (p. 86).
Topics
• Authenticator apps (p. 85)
• Security keys and built-in authenticators (p. 85)
• RADIUS MFA (p. 86)
Authenticator apps
Authenticator apps are essentially one-time password (OTP)–based third party-authenticators. Users can
use an authenticator application installed on their mobile device or tablet as an authorized MFA device.
The third-party authenticator application must be compliant with RFC 6238, which is a standards-based
TOTP (time-based one-time password) algorithm capable of generating six-digit authentication codes.
When prompted for MFA, users must enter a valid code from their authenticator app within the input box
presented. Each MFA device assigned to a user must be unique. Two authenticator apps can be registered
for any given user.
• Security keys – Users can be authenticated using an external USB/BLE/NFC-connected security key
such as YubiKey or Fetian devices. Authentication involves simply tapping on a key’s sensor when
prompted for MFA.
• Built-In Authenticators – Some FIDO2-enabled authenticators are built into devices. Examples include
TouchID on MacBook or a Windows Hello compatible camera. Users with such a built-in authenticator,
can simply provide their fingerprint or facial recognition as a suitable second factor.
85
AWS Single Sign-On User Guide
RADIUS MFA
FIDO2 and WebAuthn ensures privacy, as cryptographic data generated on devices is unique across sites
and biometric data never leaves the device when used. FIDO devices are more secure than traditional
forms of MFA, as they are strongly attestable and phishing resistant. For more information about
WebAuthn and FIDO2, see FIDO2: Web Authentication (WebAuthn).
RADIUS MFA
Remote Authentication Dial-In User Service (RADIUS) is an industry-standard client-server protocol that
provides authentication, authorization, and accounting management so users can connect to network
services. AWS Directory Service includes a RADIUS client that connects to the RADIUS server upon which
you have implemented your MFA solution. For more information, see Enable Multi-Factor Authentication
for AWS Managed Microsoft AD.
You can use either RADIUS MFA or MFA in AWS SSO for user sign-ins to the user portal, but not both.
MFA in AWS SSO is an alternative to RADIUS MFA in cases where you want AWS native two-factor
authentication for access to the portal.
When you enable MFA in AWS SSO, your users need an MFA device to sign in to the AWS SSO user portal.
If you had previously used RADIUS MFA, enabling MFA in AWS SSO effectively overrides RADIUS MFA for
users who sign in to the user portal. However, RADIUS MFA continues to challenge users when they sign
in to all other applications that work with AWS Directory Service, such as Amazon WorkDocs.
If your MFA is Disabled on the AWS SSO console and you have configured RADIUS MFA with AWS
Directory Service, RADIUS MFA governs user portal sign-in. This means that AWS SSO falls back to
RADIUS MFA configuration if MFA is disabled.
Topics
• Configure MFA types (p. 86)
• Configure MFA device enforcement (p. 87)
• Register an MFA device (p. 88)
• Manage a user's MFA device (p. 89)
• Allow users to register their own MFA devices (p. 89)
• Disable MFA (p. 89)
86
AWS Single Sign-On User Guide
Configure MFA device enforcement
• Authenticator apps
5. Choose Save changes.
Use this option when you want to require users who do not yet have a registered MFA device, to
self-enroll a device during sign-in following a successful password authentication. This allows you
to secure your organization’s AWS environments with MFA without having to individually enroll
and distribute authentication devices to your users. During self-enrollment, your users can register
any device from the available MFA types (p. 84) you've previously enabled. After completing
registration, users have the option to give their newly enrolled MFA device a friendly name, after
which AWS SSO redirects the user to their original destination. If the user’s device is lost or stolen,
you can simply remove that device from their account, and AWS SSO will require them to self-
enroll a new device during their next sign-in.
• Require them to provide a one-time password sent by email to sign in
Use this option when you want to have verification codes sent to users by email. Because email
is not bound to a specific device, this option does not meet the bar for industry-standard
multi-factor authentication. But it does improve security over having a password alone. Email
verification will only be requested if a user has not registered an MFA device. If the Context-aware
authentication method has been enabled, the user will have the opportunity to mark the device
on which they receive the email as trusted. Afterward they will not be required to verify an email
code on future logins from that device, browser, and IP address combination.
Note
If you are using Active Directory as your AWS SSO enabled identity source, the email
address will always be based on the Active Directory email attribute. Custom Active
Directory attribute mappings will not override this behavior.
• Block their sign-in
Use the Block Their Sign-In option when you want to enforce MFA use by every user before they
can sign in to AWS.
Important
If your authentication method is set to Context-aware a user might select the This is a
trusted device check box on the sign-in page. In that case, that user will not be prompted
for MFA even if you have the Block their sign in setting enabled. If you want these users
to be prompted, change your authentication method to Always On.
• Allow them to sign in
The default setting when you first configure AWS SSO MFA. Use this option to indicate that MFA
devices are not required in order for your users to sign in to the user portal. Users who chose to
register MFA devices will still be prompted for MFA.
87
AWS Single Sign-On User Guide
Register an MFA device
• Authenticator app
1. On the Set up the authenticator app page, AWS SSO displays configuration information for the
new MFA device, including a QR code graphic. The graphic is a representation of the secret key
that is available for manual entry on devices that do not support QR codes.
2. Using the physical MFA device, do the following:
a. Open a compatible MFA authenticator app. For a list of tested apps that you can use with
MFA devices, see Authenticator apps (p. 85). If the MFA app supports multiple accounts
(multiple MFA devices), choose the option to create a new account (a new MFA device).
b. Determine whether the MFA app supports QR codes, and then do one of the following on the
Set up the authenticator app page:
i. Choose Show QR code, and then use the app to scan the QR code. For example, you might
choose the camera icon or choose an option similar to Scan code. Then use the device's
camera to scan the code.
ii. Choose show secret key, and then type that secret key into your MFA app.
Important
When you configure an MFA device for AWS SSO, we recommend that you save a
copy of the QR code or secret key in a secure place. This can help if the assigned
user loses the phone or has to reinstall the MFA authenticator app. If either of
those things happen, you can quickly reconfigure the app to use the same MFA
configuration. This avoids the need to create a new MFA device in AWS SSO for
the user.
3. On the Set up the authenticator app page, under Authenticator code, type the one-time
password that currently appears on the physical MFA device.
Important
Submit your request immediately after generating the code. If you generate the code
and then wait too long to submit the request, the MFA device is successfully associated
with the user. But the MFA device is out of sync. This happens because time-based one-
time passwords (TOTP) expire after a short period of time. If this happens, you can
resync the device.
4. Choose Assign MFA. The MFA device can now start generating one-time passwords and is now
ready for use with AWS.
88
AWS Single Sign-On User Guide
Manage a user's MFA device
1. On the Register your user's security key page, follow the instructions given to you by your
browser or platform.
Note
The experience here will vary based on the different operating systems and browsers,
so please follow the instructions displayed by your browser or platform. After your
user's device has been successfully registered, you will be given the option to associate
a friendly display name to your user's newly enrolled device. If you want to change this,
choose Rename, enter the new name, and then choose Save. If you have enabled the
option to allow users to manage their own devices, the user will see this friendly name
in the user portal.
Note
After you set up self-registration for your users, you might want to send them a link to the
procedure How to register a device for use with multi-factor authentication (p. 81). This topic
provides instructions on how to set up their own MFA devices.
Disable MFA
Use the following procedure to disable MFA in the AWS SSO console.
89
AWS Single Sign-On User Guide
Disable MFA
To disable MFA
90
AWS Single Sign-On User Guide
Identity and access management for AWS SSO
Security is a shared responsibility between AWS and you. The shared responsibility model describes this
as security of the cloud and security in the cloud:
• Security of the cloud – AWS is responsible for protecting the infrastructure that runs AWS services in
the AWS Cloud. AWS also provides you with services that you can use securely. Third-party auditors
regularly test and verify the effectiveness of our security as part of the AWS compliance programs. To
learn about the compliance programs that apply to AWS Single Sign-On, see AWS Services in Scope by
Compliance Program.
• Security in the cloud – Your responsibility is determined by the AWS service that you use. You are also
responsible for other factors including the sensitivity of your data, your company’s requirements, and
applicable laws and regulations.
This documentation helps you understand how to apply the shared responsibility model when using AWS
SSO. The following topics show you how to configure AWS SSO to meet your security and compliance
objectives. You also learn how to use other AWS services that help you to monitor and secure your AWS
SSO resources.
Topics
• Identity and access management for AWS SSO (p. 91)
• AWS SSO console and API authorization (p. 106)
• Logging and monitoring in AWS Single Sign-On (p. 107)
• Compliance validation for AWS Single Sign-On (p. 123)
• Resilience in AWS Single Sign-On (p. 124)
• Infrastructure security in AWS Single Sign-On (p. 124)
Authentication to the AWS SSO user portal is controlled by the directory that you have connected to
AWS SSO. However, authorization to the AWS accounts that are available to end users from within the
user portal is determined by two factors:
1. Who has been assigned access to those AWS accounts in the AWS SSO console. For more information,
see Single sign-on access (p. 51).
2. What level of permissions have been granted to the end users in the AWS SSO console to allow them
the appropriate access to those AWS accounts. For more information, see Permission sets (p. 53).
The following sections explain how you as an administrator can control access to the AWS SSO console
or can delegate administrative access for day-to-day tasks from the AWS SSO console.
91
AWS Single Sign-On User Guide
Authentication
Authentication
You can access AWS as any of the following types of identities:
• AWS account root user – When you first create an AWS account, you begin with a single sign-in
identity that has complete access to all AWS services and resources in the account. This identity is
called the AWS account root user and is accessed by signing in with the email address and password
that you used to create the account. We strongly recommend that you do not use the root user for
your everyday tasks, even the administrative ones. Instead, adhere to the best practice of using the
root user only to create your first IAM user. Then securely lock away the root user credentials and use
them to perform only a few account and service management tasks.
• IAM user – An IAM user is an identity within your AWS account that has specific custom permissions
(for example, permissions to create a directory in AWS SSO). You can use an IAM user name and
password to sign in to secure AWS webpages like the AWS Management Console, AWS Discussion
Forums, or the AWS Support Center.
In addition to a user name and password, you can also generate access keys for each user. You can
use these keys when you access AWS services programmatically, either through one of the several
SDKs or by using the AWS Command Line Interface (CLI). The SDK and CLI tools use the access keys
to cryptographically sign your request. If you don’t use AWS tools, you must sign the request yourself.
AWS SSO supports Signature Version 4, a protocol for authenticating inbound API requests. For more
information about authenticating requests, see Signature Version 4 signing process in the AWS General
Reference.
• IAM role – An IAM role is an IAM identity that you can create in your account that has specific
permissions. An IAM role is similar to an IAM user in that it is an AWS identity with permissions policies
that determine what the identity can and cannot do in AWS. However, instead of being uniquely
associated with one person, a role is intended to be assumable by anyone who needs it. Also, a role
does not have standard long-term credentials such as a password or access keys associated with it.
Instead, when you assume a role, it provides you with temporary security credentials for your role
session. IAM roles with temporary credentials are useful in the following situations:
• Federated user access – Instead of creating an IAM user, you can use existing identities from AWS
Directory Service, your enterprise user directory, or a web identity provider. These are known as
federated users. AWS assigns a role to a federated user when access is requested through an identity
provider. For more information about federated users, see Federated users and roles in the IAM User
Guide.
• AWS service access – A service role is an IAM role that a service assumes to perform actions on your
behalf. Service roles provide access only within your account and cannot be used to grant access to
services in other accounts. An IAM administrator can create, modify, and delete a service role from
within IAM. For more information, see Creating a role to delegate permissions to an AWS service in
the IAM User Guide.
• Applications running on Amazon EC2 – You can use an IAM role to manage temporary credentials
for applications that are running on an EC2 instance and making AWS CLI or AWS API requests. This
92
AWS Single Sign-On User Guide
Access control
is preferable to storing access keys within the EC2 instance. To assign an AWS role to an EC2 instance
and make it available to all of its applications, you create an instance profile that is attached to
the instance. An instance profile contains the role and enables programs that are running on the
EC2 instance to get temporary credentials. For more information, see Using an IAM role to grant
permissions to applications running on Amazon EC2 instances in the IAM User Guide.
Access control
You can have valid credentials to authenticate your requests, but unless you have permissions you cannot
create or access AWS SSO resources. For example, you must have permissions to create an AWS SSO
connected directory.
The following sections describe how to manage permissions for AWS SSO. We recommend that you read
the overview first.
• Overview of managing access permissions to your AWS SSO resources (p. 93)
• Using identity-based policies (IAM policies) for AWS SSO (p. 96)
• Using service-linked roles for AWS SSO (p. 103)
When granting permissions, you decide who is getting the permissions, the resources they get
permissions for, and the specific actions that you want to allow on those resources.
Topics
• AWS SSO resources and operations (p. 93)
• Understanding resource ownership (p. 93)
• Managing access to resources (p. 94)
• Specifying policy elements: actions, effects, resources, and principals (p. 95)
• Specifying conditions in a policy (p. 95)
93
AWS Single Sign-On User Guide
Overview of managing access
• If the AWS account root user creates an AWS SSO resource, such as an application instance or
permission set, your AWS account is the owner of that resource.
• If you create an IAM user in your AWS account and grant that user permissions to create AWS SSO
resources, the user can then create AWS SSO resources. However, your AWS account, to which the user
belongs, owns the resources.
• If you create an IAM role in your AWS account with permissions to create AWS SSO resources, anyone
who can assume the role can create AWS SSO resources. Your AWS account, to which the role belongs,
owns the AWS SSO resources.
Policies that are attached to an IAM identity are referred to as identity-based policies (IAM policies).
Policies that are attached to a resource are referred to as resource-based policies. AWS SSO supports only
identity-based policies (IAM policies).
Topics
• Identity-based policies (IAM policies) (p. 94)
• Resource-based policies (p. 95)
• Attach a permissions policy to a user or a group in your account – An account administrator can use
a permissions policy that is associated with a particular user to grant permissions for that user to add
an AWS SSO resource, such as a new application.
• Attach a permissions policy to a role (grant cross-account permissions) – You can attach an
identity-based permissions policy to an IAM role to grant cross-account permissions. For example,
the administrator in Account A can create a role to grant cross-account permissions to another AWS
account (for example, Account B) or an AWS service as follows:
1. Account A administrator creates an IAM role and attaches a permissions policy to the role that
grants permissions to resources in Account A.
2. Account A administrator attaches a trust policy to the role identifying Account B as the principal
who can assume the role.
3. Account B administrator can then delegate permissions to assume the role to any users in Account
B. Doing this allows users in Account B to create or access resources in Account A. The principal
in the trust policy can also be an AWS service principal if you want to grant an AWS service
permissions to assume the role.
For more information about using IAM to delegate permissions, see Access management in the IAM
User Guide.
The following permissions policy grants permissions to a user to run all of the actions that begin with
List. These actions show information about an AWS SSO resource, such as an application instance or
94
AWS Single Sign-On User Guide
Overview of managing access
permissions set. Note that the wildcard character (*) in the Resource element indicates that the actions
are allowed for all AWS SSO resources that are owned by the account.
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":"sso:List*",
"Resource":"*"
}
]
}
For more information about using identity-based policies with AWS SSO, see Using identity-based
policies (IAM policies) for AWS SSO (p. 96). For more information about users, groups, roles, and
permissions, see Identities (users, groups, and roles) in the IAM User Guide.
Resource-based policies
Other services, such as Amazon S3, also support resource-based permissions policies. For example, you
can attach a policy to an S3 bucket to manage access permissions to that bucket. AWS SSO doesn't
support resource-based policies.
• Resource – In a policy, you use an Amazon Resource Name (ARN) to identify the resource to which the
policy applies. For AWS SSO resources, you always use the wildcard character (*) in IAM policies. For
more information, see AWS SSO resources and operations (p. 93).
• Action – You use action keywords to identify resource operations that you want to allow or deny. For
example, the sso:DescribePermissionsPolicies permission allows the user permissions to
perform the AWS SSO DescribePermissionsPolicies operation.
• Effect – You specify the effect when the user requests the specific action—this can be either allow or
deny. If you don't explicitly grant access to (allow) a resource, access is implicitly denied. You can also
explicitly deny access to a resource, which you might do to make sure that a user cannot access it, even
if a different policy grants access.
• Principal – In identity-based policies (IAM policies), the user that the policy is attached to is the
implicit principal. For resource-based policies, you specify the user, account, service, or other entity
that you want to receive permissions (applies to resource-based policies only). AWS SSO doesn't
support resource-based policies.
To learn more about IAM policy syntax and descriptions, see AWS IAM policy reference in the IAM User
Guide.
95
AWS Single Sign-On User Guide
Using identity-based policies (IAM policies)
specific date. For more information about specifying conditions in a policy language, see Condition in the
IAM User Guide.
To express conditions, you use predefined condition keys. There are no condition keys specific to AWS
SSO. However, there are AWS condition keys that you can use as appropriate. For a complete list of AWS
keys, see Available global condition keys in the IAM User Guide.
If an existing AWS Managed Policy satisfies your requirements, that is the recommended approach to
assigning permissions.
Topics
• Example 1: Allow a user to view AWS SSO (p. 97)
• Example 2: Allow a user to manage permissions to AWS accounts in AWS SSO (p. 97)
• Example 3: Allow a user to manage applications in AWS SSO (p. 98)
96
AWS Single Sign-On User Guide
Using identity-based policies (IAM policies)
• Example 4: Allow a user to manage users and groups in your AWS SSO directory (p. 99)
• Example 5: Allow a user to administer AWS SSO for specific permission sets, accounts, or
OUs (p. 99)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ds:DescribeDirectories",
"ds:DescribeTrusts",
"iam:ListPolicies",
"organizations:DescribeOrganization",
"organizations:DescribeAccount",
"organizations:ListParents",
"organizations:ListChildren",
"organizations:ListAccounts",
"organizations:ListRoots",
"organizations:ListAccountsForParent",
"organizations:ListOrganizationalUnitsForParent",
"sso:ListManagedPoliciesInPermissionSet",
"sso:ListPermissionSetsProvisionedToAccount",
"sso:ListAccountAssignments",
"sso:ListAccountsForProvisionedPermissionSet",
"sso:ListPermissionSetsProvisionedToAccount",
"sso:ListPermissionSets",
"sso:DescribePermissionSet",
"sso:GetInlinePolicyForPermissionSet",
"sso-directory:DescribeDirectory",
"sso-directory:SearchUsers",
"sso-directory:SearchGroups"
],
"Resource": "*"
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sso:AttachManagedPolicyToPermissionSet",
"sso:CreateAccountAssignment",
97
AWS Single Sign-On User Guide
Using identity-based policies (IAM policies)
"sso:CreatePermissionSet",
"sso:DeleteAccountAssignment",
"sso:DeleteInlinePolicyFromPermissionSet",
"sso:DeletePermissionSet",
"sso:DetachManagedPolicyFromPermissionSet",
"sso:ProvisionPermissionSet",
"sso:PutInlinePolicyToPermissionSet",
"sso:UpdatePermissionSet"
],
"Resource": "*"
},
{
"Sid": "IAMListPermissions",
"Effect": "Allow",
"Action": [
"iam:ListRoles",
"iam:ListPolicies"
],
"Resource": "*"
},
{
"Sid": "AccessToSSOProvisionedRoles",
"Effect": "Allow",
"Action": [
"iam:AttachRolePolicy",
"iam:CreateRole",
"iam:DeleteRole",
"iam:DeleteRolePolicy",
"iam:DetachRolePolicy",
"iam:GetRole",
"iam:ListAttachedRolePolicies",
"iam:ListRolePolicies",
"iam:PutRolePolicy",
"iam:UpdateRole",
"iam:UpdateRoleDescription"
],
"Resource": "arn:aws:iam::*:role/aws-reserved/sso.amazonaws.com/*"
},
{
"Effect": "Allow",
"Action": [
"iam:GetSAMLProvider"
],
"Resource": "arn:aws:iam::*:saml-provider/AWSSSO_*_DO_NOT_DELETE"
}
]
}
Note
The additional permissions listed under the "Sid": "IAMListPermissions", and "Sid":
"AccessToSSOProvisiondRoles" sections are required only to enable the user to create
assignments in the AWS Organizations management account.
98
AWS Single Sign-On User Guide
Using identity-based policies (IAM policies)
As of October 2020, many of these operations are available only through the AWS console. This example
policy includes “read” actions such as list, get, and search, which are relevant to the error-free operation
of the console for this case.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sso:AssociateProfile",
"sso:CreateApplicationInstance",
"sso:ImportApplicationInstanceServiceProviderMetadata",
"sso:DeleteApplicationInstance",
"sso:DeleteProfile",
"sso:DisassociateProfile",
"sso:GetApplicationTemplate",
"sso:UpdateApplicationInstanceServiceProviderConfiguration",
"sso:UpdateApplicationInstanceDisplayData",
"sso:DeleteManagedApplicationInstance",
"sso:UpdateApplicationInstanceStatus",
"sso:GetManagedApplicationInstance",
"sso:UpdateManagedApplicationInstanceStatus",
"sso:CreateManagedApplicationInstance",
"sso:UpdateApplicationInstanceSecurityConfiguration",
"sso:UpdateApplicationInstanceResponseConfiguration",
"sso:GetApplicationInstance",
"sso:CreateApplicationInstanceCertificate",
"sso:UpdateApplicationInstanceResponseSchemaConfiguration",
"sso:UpdateApplicationInstanceActiveCertificate",
"sso:DeleteApplicationInstanceCertificate",
"sso:ListApplicationInstanceCertificates",
"sso:ListApplicationTemplates",
"sso:ListApplications",
"sso:ListApplicationInstances",
"sso:ListDirectoryAssociations",
"sso:ListProfiles",
"sso:ListProfileAssociations",
"sso:ListInstances",
"sso:GetProfile",
"sso:GetSSOStatus",
"sso:GetSsoConfiguration",
"sso-directory:DescribeDirectory",
"sso-directory:DescribeUsers",
"sso-directory:ListMembersInGroup",
"sso-directory:SearchGroups",
"sso-directory:SearchUsers"
],
"Resource": "*"
}
]
}
Example 4: Allow a user to manage users and groups in your AWS SSO directory
The following permissions policy grants permissions to allow a user to create, view, modify, and delete
users and groups in AWS SSO.
Note that in some cases direct modifications to users and groups in AWS SSO are restricted. For example,
when Active Directory, or an external identity provider with Automatic Provisioning enabled, is selected
as the identity source.
99
AWS Single Sign-On User Guide
Using identity-based policies (IAM policies)
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"sso-directory:ListGroupsForUser",
"sso-directory:DisableUser",
"sso-directory:EnableUser",
"sso-directory:SearchGroups",
"sso-directory:DeleteGroup",
"sso-directory:AddMemberToGroup",
"sso-directory:DescribeDirectory",
"sso-directory:UpdateUser",
"sso-directory:ListMembersInGroup",
"sso-directory:CreateUser",
"sso-directory:DescribeGroups",
"sso-directory:SearchUsers",
"sso:ListDirectoryAssociations",
"sso-directory:RemoveMemberFromGroup",
"sso-directory:DeleteUser",
"sso-directory:DescribeUsers",
"sso-directory:UpdateGroup",
"sso-directory:CreateGroup"
],
"Resource": "*"
}
]
}
Example 5: Allow a user to administer AWS SSO for specific permission sets,
accounts, or OUs
As your team grows, an AWS SSO administrator may want to consider implementing a delegation
model that enables AWS account and application administrators to manage their users SSO access to
their resources. Using this model and the example policies below, permissions can be delegated for
administering AWS accounts, permission sets, or OUs. Once any of these policies have been created, that
same policy can be selected anytime the same permissions need to be delegated to other administrative
users.
Account-based delegation
The following policy grants permissions that allow an administrator to delegate access for each of the
AWS accounts noted under Resource.
{
"Sid":"DelegateAccountsAdminAccess",
"Effect":"Allow",
"Action":[
"sso:ProvisionPermissionSet",
"sso:CreateAccountAssignment",
"sso:DeleteInlinePolicyFromPermissionSet",
"sso:UpdateInstanceAccessControlAttributeConfiguration",
"sso:PutInlinePolicyToPermissionSet",
"sso:DeleteAccountAssignment",
"sso:DetachManagedPolicyFromPermissionSet",
"sso:DeletePermissionSet",
"sso:AttachManagedPolicyToPermissionSet",
"sso:CreatePermissionSet",
"sso:UpdatePermissionSet",
"sso:CreateInstanceAccessControlAttributeConfiguration",
"sso:DeleteInstanceAccessControlAttributeConfiguration"
100
AWS Single Sign-On User Guide
Using identity-based policies (IAM policies)
],
"Resource":[
"arn:aws:sso:::account/112233445566",
"arn:aws:sso:::account/223344556677",
"arn:aws:sso:::account/334455667788"
]
}
Permission-based delegation
The following permissions policy grants permissions that allow an administrator to delegate access
for a given AWS SSO instance ID ARN (in this case, ssoins-1111111111) or permission set ARN
(ssoins-1111111111/ps-112233abcdef123).
For more information about finding the ARNs associated with an AWS SSO instance ID or permission set,
see Identify your permission set and AWS SSO Instance IDs on the AWS Security blog.
{
"Sid":"DelegatePermissionsAdminAccess",
"Effect":"Allow",
"Action":[
"sso:ProvisionPermissionSet",
"sso:CreateAccountAssignment",
"sso:DeleteInlinePolicyFromPermissionSet",
"sso:UpdateInstanceAccessControlAttributeConfiguration",
"sso:PutInlinePolicyToPermissionSet",
"sso:DeleteAccountAssignment",
"sso:DetachManagedPolicyFromPermissionSet",
"sso:DeletePermissionSet",
"sso:AttachManagedPolicyToPermissionSet",
"sso:CreatePermissionSet",
"sso:UpdatePermissionSet",
"sso:CreateInstanceAccessControlAttributeConfiguration",
"sso:DeleteInstanceAccessControlAttributeConfiguration",
"sso:ProvisionApplicationInstanceForAWSAccount"
],
"Resource":[
"arn:aws:sso:::instance/ssoins-1111111111",
"arn:aws:sso:::permissionSet/ssoins-1111111111/ps-112233abcdef123"
]
}
OU-based delegation
OU-based delegation requires two policy statements within the same permission set and the ability for
Tagging AWS Single Sign-On resources (p. 125).
The following permissions policy grants permissions that allow an administrator to delegate access for
an OU. In the first policy statement, we filter the permission sets by both the Environment and OU tags.
In the second policy statement, we filter the accounts that are tagged for the Development OU.
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"DelegateOUsAdminAccess",
"Effect":"Allow",
"Action":[
"sso:ProvisionPermissionSet",
"sso:CreateAccountAssignment",
"sso:DeleteInlinePolicyFromPermissionSet",
"sso:UpdateInstanceAccessControlAttributeConfiguration",
101
AWS Single Sign-On User Guide
Using identity-based policies (IAM policies)
"sso:PutInlinePolicyToPermissionSet",
"sso:DeleteAccountAssignment",
"sso:DetachManagedPolicyFromPermissionSet",
"sso:DeletePermissionSet",
"sso:AttachManagedPolicyToPermissionSet",
"sso:CreatePermissionSet",
"sso:UpdatePermissionSet",
"sso:CreateInstanceAccessControlAttributeConfiguration",
"sso:DeleteInstanceAccessControlAttributeConfiguration",
"sso:ProvisionApplicationInstanceForAWSAccount"
],
"Resource":"arn:aws:sso:::permissionSet/*/*",
"Condition":{
"StringEquals":{
"aws:ResourceTag/Environment":"Development",
"aws:ResourceTag/OU":"Test"
}
}
},
{
"Sid":"Instance",
"Effect":"Allow",
"Action":[
"sso:ProvisionPermissionSet",
"sso:CreateAccountAssignment",
"sso:DeleteInlinePolicyFromPermissionSet",
"sso:UpdateInstanceAccessControlAttributeConfiguration",
"sso:PutInlinePolicyToPermissionSet",
"sso:DeleteAccountAssignment",
"sso:DetachManagedPolicyFromPermissionSet",
"sso:DeletePermissionSet",
"sso:AttachManagedPolicyToPermissionSet",
"sso:CreatePermissionSet",
"sso:UpdatePermissionSet",
"sso:CreateInstanceAccessControlAttributeConfiguration",
"sso:DeleteInstanceAccessControlAttributeConfiguration",
"sso:ProvisionApplicationInstanceForAWSAccount"
],
"Resource":[
"arn:aws:sso:::instance/ssoins-82593a6ed92c8920",
"arn:aws:sso:::account/112233445566",
"arn:aws:sso:::account/223344556677",
"arn:aws:sso:::account/334455667788"
]
}
]
}
More information
To see an example walkthrough that covers how to delegate administration of user identities in an IAM
environment, see How to delegate management of identity in AWS Single Sign-On on the AWS Security
Blog.
{
"Version": "2012-10-17",
102
AWS Single Sign-On User Guide
Using service-linked roles
"Statement": [
{
"Effect": "Allow",
"Action": [
"sso:DescribeAccountAssignmentCreationStatus",
"sso:DescribeAccountAssignmentDeletionStatus",
"sso:DescribePermissionSet",
"sso:DescribePermissionSetProvisioningStatus",
"sso:DescribePermissionsPolicies",
"sso:DescribeRegisteredRegions",
"sso:GetApplicationInstance",
"sso:GetApplicationTemplate",
"sso:GetInlinePolicyForPermissionSet",
"sso:GetManagedApplicationInstance",
"sso:GetMfaDeviceManagementForDirectory",
"sso:GetPermissionSet",
"sso:GetPermissionsPolicy",
"sso:GetProfile",
"sso:GetSharedSsoConfiguration",
"sso:GetSsoConfiguration",
"sso:GetSSOStatus",
"sso:GetTrust",
"sso:ListAccountAssignmentCreationStatus",
"sso:ListAccountAssignmentDeletionStatus",
"sso:ListAccountAssignments",
"sso:ListAccountsForProvisionedPermissionSet",
"sso:ListApplicationInstanceCertificates",
"sso:ListApplicationInstances",
"sso:ListApplications",
"sso:ListApplicationTemplates",
"sso:ListDirectoryAssociations",
"sso:ListInstances",
"sso:ListManagedPoliciesInPermissionSet",
"sso:ListPermissionSetProvisioningStatus",
"sso:ListPermissionSets",
"sso:ListPermissionSetsProvisionedToAccount",
"sso:ListProfileAssociations",
"sso:ListProfiles",
"sso:ListTagsForResource",
"sso-directory:DescribeDirectory",
"sso-directory:DescribeGroups",
"sso-directory:DescribeUsers",
"sso-directory:ListGroupsForUser",
"sso-directory:ListMembersInGroup",
"sso-directory:SearchGroups",
"sso-directory:SearchUsers",
],
"Resource": "*"
}
]
}
A service-linked role makes setting up AWS SSO easier because you don’t have to manually add the
necessary permissions. AWS SSO defines the permissions of its service-linked role, and unless defined
otherwise, only AWS SSO can assume its role. The defined permissions include the trust policy and the
permissions policy, and that permissions policy cannot be attached to any other IAM entity.
103
AWS Single Sign-On User Guide
Using service-linked roles
For information about other services that support service-linked roles, see AWS Services That Work with
IAM and look for the services that have Yes in the Service-Linked Role column. Choose a Yes with a link
to view the service-linked role documentation for that service.
The AWSServiceRoleForSSO service-linked role trusts the following services to assume the role:
• AWS SSO
The AWSServiceRoleForSSO service-linked role permissions policy allows AWS SSO to complete
the following on roles on the path “/aws-reserved/sso.amazonaws.com/” and with the name prefix
“AWSReservedSSO_”:
• iam:AttachRolePolicy
• iam:CreateRole
• iam:DeleteRole
• iam:DeleteRolePolicy
• iam:DetachRolePolicy
• iam:GetRole
• iam:ListRolePolicies
• iam:PutRolePolicy
• iam:ListAttachedRolePolicies
The AWSServiceRoleForSSO service-linked role permissions policy allows AWS SSO to complete the
following on SAML providers with name prefix as “AWSSSO_”:
• iam:CreateSAMLProvider
• iam:GetSAMLProvider
• iam:UpdateSAMLProvider
• iam:DeleteSAMLProvider
The AWSServiceRoleForSSO service-linked role permissions policy allows AWS SSO to complete the
following on all organizations:
• organizations:DescribeAccount
• organizations:DescribeOrganization
• organizations:ListAccounts
The AWSServiceRoleForSSO service-linked role permissions policy allows AWS SSO to complete the
following on all IAM roles (*):
• iam:listRoles
The AWSServiceRoleForSSO service-linked role permissions policy allows AWS SSO to complete the
following on “arn:aws:iam::*:role/aws-service-role/sso.amazonaws.com/AWSServiceRoleForSSO”:
104
AWS Single Sign-On User Guide
Using service-linked roles
• iam:GetServiceLinkedRoleDeletionStatus
• iam:DeleteServiceLinkedRole
You must configure permissions to allow an IAM entity (such as a user, group, or role) to create, edit, or
delete a service-linked role. For more information, see Service-linked role permissions in the IAM User
Guide.
If you delete this service-link role and then need to create it again, you can use the same process to
recreate the role in your account.
You can also use the IAM console, the IAM CLI, or the IAM API to manually delete the service-linked role.
To do this, you must first manually clean up the resources for your service-linked role and then you can
manually delete it.
Note
If the AWS SSO service is using the role when you try to delete the resources, then the deletion
might fail. If that happens, wait for a few minutes and try the operation again.
1. Remove user access (p. 53) for all users and groups that have access to the AWS account.
2. Delete permission sets (p. 56) that you have associated with the AWS account.
3. Remove the IAM identity provider (p. 64) to delete the trust between AWS SSO and the AWS
account.
Use the IAM console, the IAM CLI, or the IAM API to delete the AWSServiceRoleForSSO service-linked
role. For more information, see Deleting a Service-Linked Role in the IAM User Guide.
105
AWS Single Sign-On User Guide
AWS SSO console and API authorization
SSO Instances created before October 15th 2020 will honor both old and new API actions as long as
there is no explicit deny on any one of the actions. SSO Instances created after October 15th 2020 will
use the newer API actions for authorization in the AWS SSO console.
Operation name API actions used before API actions used after October
October 15th, 2020 15th, 2020
DeleteApplicationInstanceForAWsAccount
DeleteApplicationInstance | DeleteAccountAssignment
DeleteTrust
DeleteApplicationProfileForAwsAccount
DeleteProfile DeleteAccountAssignment
GetApplicationInstanceForAWSAccount
GetApplicationInstance ListAccountAssignments
ListAccountsWithProvisionedPermissionSet
ListApplicationInstances | ListAccountsForProvisionedPermissionSet
GetApplicationInstance
ProvisionApplicationInstanceForAWSAccount
GetApplicationInstance | CreateAccountAssignment
CreateApplicationInstance
ProvisionApplicationProfileForAWSAccountInstance
GetProfile | CreateProfile | CreateAccountAssignment
UpdateProfile
106
AWS Single Sign-On User Guide
Logging and monitoring
Operation name API actions used before API actions used after October
October 15th, 2020 15th, 2020
Topics
• Logging AWS SSO API calls with AWS CloudTrail (p. 107)
• Amazon CloudWatch Events (p. 123)
To learn more about CloudTrail, see the AWS CloudTrail User Guide.
Topics
• AWS SSO information in CloudTrail (p. 107)
• Understanding AWS SSO log file entries (p. 110)
• Understanding AWS SSO sign-in events (p. 112)
For an ongoing record of events in your AWS account, including events for AWS SSO, create a trail. A trail
enables CloudTrail to deliver log files to an Amazon S3 bucket. By default, when you create a trail in the
console, the trail applies to all AWS Regions. The trail logs events from all Regions in the AWS partition
and delivers the log files to the Amazon S3 bucket that you specify. Additionally, you can configure
other AWS services to further analyze and act upon the event data collected in CloudTrail logs. For more
information, see the following:
107
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
• Receiving CloudTrail log files from multiple Regions and Receiving CloudTrail log files from multiple
accounts
When CloudTrail logging is enabled in your AWS account, API calls made to AWS SSO actions are tracked
in log files. AWS SSO records are written together with other AWS service records in a log file. CloudTrail
determines when to create and write to a new file based on a time period and file size.
AssociateDirectory AttachManagedPolicyToPermissionSet
AssociateProfile CreateAccountAssignment
CreateApplicationInstance CreateInstanceAccessControlAttributeConfiguration
CreateApplicationInstanceCertificate CreatePermissionSet
CreatePermissionSet DeleteAccountAssignment
CreateProfile DeleteInlinePolicyFromPermissionSet
DeleteApplicationInstance DeleteInstanceAccessControlAttributeConfiguration
DeleteApplicationInstanceCertificate DeletePermissionSet
DeletePermissionsPolicy DescribeAccountAssignmentCreationStatus
DeletePermissionSet DescribeAccountAssignmentDeletionStatus
DeleteProfile DescribeInstanceAccessControlAttributeConfigurati
DescribePermissionsPolicies DescribePermissionSet
DisassociateDirectory DescribePermissionSetProvisioningStatus
DisassociateProfile DetachManagedPolicyFromPermissionSet
GetApplicationInstance GetInlinePolicyForPermissionSet
GetApplicationTemplate ListAccountAssignmentCreationStatus
GetMfaDeviceManagementForDirectory ListAccountAssignmentDeletionStatus
GetPermissionSet ListAccountAssignments
GetSSOStatus ListAccountsForProvisionedPermissionSet
ImportApplicationInstanceServiceProviderMetadata
ListInstances
ListApplicationInstances ListManagedPoliciesInPermissionSet
ListApplicationInstanceCertificates ListPermissionSetProvisioningStatus
ListApplicationTemplates ListPermissionSets
ListDirectoryAssociations ListPermissionSetsProvisionedToAccount
ListPermissionSets ListTagsForResource
ListProfileAssociations ProvisionPermissionSet
108
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
ListProfiles PutInlinePolicyToPermissionSet
PutMfaDeviceManagementForDirectory TagResource
PutPermissionsPolicy UntagResource
StartSSO UpdateInstanceAccessControlAttributeConfiguration
UpdateApplicationInstanceActiveCertificate
UpdatePermissionSet
UpdateApplicationInstanceDisplayData
UpdateApplicationInstanceServiceProviderConfiguration
UpdateApplicationInstanceStatus
UpdateApplicationInstanceResponseConfiguration
UpdateApplicationInstanceResponseSchemaConfiguration
UpdateApplicationInstanceSecurityConfiguration
UpdateDirectoryAssociation
UpdateProfile
For more information about AWS SSO’s public API operations, see the AWS Single Sign-On API Reference
Guide.
The following AWS SSO identity store CloudTrail operations are supported:
• AddMemberToGroup
• CompleteVirtualMfaDeviceRegistration
• CompleteWebAuthnDeviceRegistration
• CreateAlias
• CreateExternalIdPConfigurationForDirectory
• CreateGroup
• CreateUser
• DeleteExternalIdPConfigurationForDirectory
• DeleteGroup
• DeleteMfaDeviceForUser
• DeleteUser
• DescribeDirectory
• DescribeGroups
• DescribeUsers
• DisableExternalIdPConfigurationForDirectory
• DisableUser
• EnableExternalIdPConfigurationForDirectory
• EnableUser
• GetAWSSPConfigurationForDirectory
• ListExternalIdPConfigurationsForDirectory
109
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
• ListGroupsForUser
• ListMembersInGroup
• ListMfaDevicesForUser
• PutMfaDeviceManagementForDirectory
• RemoveMemberFromGroup
• SearchGroups
• SearchUsers
• StartVirtualMfaDeviceRegistration
• StartWebAuthnDeviceRegistration
• UpdateExternalIdPConfigurationForDirectory
• UpdateGroup
• UpdateMfaDeviceForUser
• UpdatePassword
• UpdateUser
• VerifyEmail
• CreateToken
• RegisterClient
• StartDeviceAuthorization
• Authenticate
• Federate
Every log entry contains information about who generated the request. The identity information in the
log helps you determine whether the request was made by an AWS account root user or with IAM user
credentials. You can also learn whether the request was made with temporary security credentials for a
role or federated user or by another AWS service. For more information, see the CloudTrail userIdentity
Element.
You can create a trail and store your log files in your Amazon S3 bucket for as long as you want. You can
also define Amazon S3 lifecycle rules to archive or delete log files automatically. By default, your log files
are encrypted with Amazon S3 server-side encryption (SSE).
To be notified of log file delivery, configure CloudTrail to publish Amazon SNS notifications when new
log files are delivered. For more information, see Configuring Amazon SNS notifications for CloudTrail.
You can also aggregate AWS SSO log files from multiple AWS Regions and multiple AWS accounts into a
single Amazon S3 bucket. For more information, see Receiving CloudTrail log files from multiple Regions
and Receiving CloudTrail log files from multiple accounts.
110
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
parameters, and so on. CloudTrail log files are not an ordered stack trace of the public API calls, so they
do not appear in any specific order.
The following example shows a CloudTrail log entry for an administrator ([email protected])
that took place in the AWS SSO console:
{
"Records":[
{
"eventVersion":"1.05",
"userIdentity":{
"type":"IAMUser",
"principalId":"AIDAJAIENLMexample",
"arn":"arn:aws:iam::08966example:user/samadams",
"accountId":"08966example",
"accessKeyId":"AKIAIIJM2K4example",
"userName":"samadams"
},
"eventTime":"2017-11-29T22:39:43Z",
"eventSource":"sso.amazonaws.com",
"eventName":"DescribePermissionsPolicies",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36",
"requestParameters":{
"permissionSetId":"ps-79a0dde74b95ed05"
},
"responseElements":null,
"requestID":"319ac6a1-d556-11e7-a34f-69a333106015",
"eventID":"a93a952b-13dd-4ae5-a156-d3ad6220b071",
"readOnly":true,
"resources":[
],
"eventType":"AwsApiCall",
"recipientAccountId":"08966example"
}
]
}
The following example shows a CloudTrail log entry for an end-user ([email protected]) action
that took place in the AWS SSO user portal:
{
"Records":[
{
"eventVersion":"1.05",
"userIdentity":{
"type":"Unknown",
"principalId":"example.com//S-1-5-21-1122334455-3652759393-4233131409-1126",
"accountId":"08966example",
"userName":"[email protected]"
},
"eventTime":"2017-11-29T18:48:28Z",
"eventSource":"sso.amazonaws.com",
"eventName":"https://portal.sso.us-east-1.amazonaws.com/instance/appinstances",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"requestID":"de6c0435-ce4b-49c7-9bcc-bc5ed631ce04",
111
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
"eventID":"e6e1f3df-9528-4c6d-a877-6b2b895d1f91",
"eventType":"AwsApiCall",
"recipientAccountId":"08966example"
}
]
}
The following example shows a CloudTrail log entry for an end-user ([email protected]) action
that took place in AWS SSO OIDC:
{
"eventVersion": "1.05",
"userIdentity": {
"type": "Unknown",
"principalId": "example.com//S-1-5-21-1122334455-3652759393-4233131409-1126",
"accountId": "08966example",
"userName": "[email protected]"
},
"eventTime": "2020-06-16T01:31:15Z",
"eventSource": "sso.amazonaws.com",
"eventName": "CreateToken",
"awsRegion": "us-east-1",
"sourceIPAddress": "203.0.113.0",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36",
"requestParameters": {
"clientId": "clientid1234example",
"clientSecret": "HIDDEN_DUE_TO_SECURITY_REASONS",
"grantType": "urn:ietf:params:oauth:grant-type:device_code",
"deviceCode": "devicecode1234example"
},
"responseElements": {
"accessToken": "HIDDEN_DUE_TO_SECURITY_REASONS",
"tokenType": "Bearer",
"expiresIn": 28800,
"refreshToken": "HIDDEN_DUE_TO_SECURITY_REASONS",
"idToken": "HIDDEN_DUE_TO_SECURITY_REASONS"
},
"eventID": "09a6e1a9-50e5-45c0-9f08-e6ef5089b262",
"readOnly": false,
"resources": [
{
"accountId": "08966example",
"type": "IdentityStoreId",
"ARN": "d-1234example"
}
],
"eventType": "AwsApiCall",
"recipientAccountId": "08966example"
}
The following table captures each of the AWS SSO sign-in CloudTrail event names, their purpose, and
applicability to different identity sources.
112
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
CredentialChallenge Used to notify that AWS SSO Native AWS SSO users, AD
has requested the user to solve a Connector, and AWS Managed
specific credential challenge and Microsoft AD
specifies the CredentialType
that was required (For example,
PASSWORD or TOTP).
CredentialVerification Used to notify that the user has Native AWS SSO users, AD
attempted to solve a specific Connector, and AWS Managed
CredentialChallenge Microsoft AD
request and specifies whether
that credential succeeded or
failed.
The following table captures additional useful event data fields contained within specific sign-in
CloudTrail events.
113
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
Topics
• Successful sign-in when authenticating with only a password (p. 114)
• Successful sign-in when authenticating with an external identity provider (p. 116)
• Successful sign-in when authenticating with a password and a TOTP authenticator app (p. 117)
• Successful sign-in when authenticating with a password and forced MFA registration is
required (p. 120)
• Failed sign-in when authenticating with only a password (p. 122)
The following sequence of events captures an example of a successful password only sign-in.
CredentialChallenge (Password)
{
"eventVersion":"1.08",
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-07T20:33:58Z",
"eventSource":"signin.amazonaws.com",
"eventName":"CredentialChallenge",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"9de74b32-8362-4a01-a524-de21df59fd83",
"CredentialType":"PASSWORD"
},
"requestID":"5be44ffb-6946-4f47-acaf-1adebd4afead",
"eventID":"27ea7725-c1fd-4355-bdba-d0e628e0e604",
"readOnly":false,
"eventType":"AwsServiceEvent",
"managementEvent":true,
114
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
"eventCategory":"Management",
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"CredentialChallenge":"Success"
}
}
{
"eventVersion":"1.08",
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-07T20:34:09Z",
"eventSource":"signin.amazonaws.com",
"eventName":"CredentialVerification",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"9de74b32-8362-4a01-a524-de21df59fd83",
"CredentialType":"PASSWORD"
},
"requestID":"f3cf52ad-fd3d-4889-8c15-f18d1a7c7393",
"eventID":"c49640f6-0c8a-43d3-a6e0-900e3bb188d4",
"readOnly":false,
"eventType":"AwsServiceEvent",
"managementEvent":true,
"eventCategory":"Management",
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"CredentialVerification":"Success"
}
}
{
"eventVersion":"1.08",
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-07T20:34:09Z",
"eventSource":"signin.amazonaws.com",
"eventName":"UserAuthentication",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
115
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"9de74b32-8362-4a01-a524-de21df59fd83",
"LoginTo":"https://d-1234567890.awsapps.com/start/?
state=QVlBQmVGMHFiS0wzWlp1SFgrR25BRnFobU5nQUlnQUJBQk5FWVhSaFVHeGhibVZUZEdGMFpWQmhjbUZ0QUFsUVpYSmxaM0pwY
BshlIc5OBAA6ftz73M6LsfLWDlfOxviO2K3wet946lC30f_iWdilx-
zv__4pSHf7mcUIs&wdc_csrf_token=srAzW1jK4GPYYoR452ruZ38DxEsDY9x81q1tVRSnno5pUjISvP7TqziOLiBLBUSxEjOmQk2X
east-1",
"CredentialType":"PASSWORD"
},
"requestID":"f3cf52ad-fd3d-4889-8c15-f18d1a7c7393",
"eventID":"e959a95a-2b33-478d-906c-4fe303e8a9f1",
"readOnly":false,
"eventType":"AwsServiceEvent",
"managementEvent":true,
"eventCategory":"Management",
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"UserAuthentication":"Success"
}
}
The following sequence of events captures an example of a successful sign-in when authenticated
through the SAML protocol using an external identity provider.
{
"eventVersion":"1.08",
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-07T20:34:09Z",
"eventSource":"signin.amazonaws.com",
"eventName":"UserAuthentication",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"9de74b32-8362-4a01-a524-de21df59fd83",
"LoginTo":"https://d-1234567890.awsapps.com/start/?
state=QVlBQmVGMHFiS0wzWlp1SFgrR25BRnFobU5nQUlnQUJBQk5FWVhSaFVHeGhibVZUZEdGMFpWQmhjbUZ0QUFsUVpYSmxaM0pwY
BshlIc5OBAA6ftz73M6LsfLWDlfOxviO2K3wet946lC30f_iWdilx-
zv__4pSHf7mcUIs&wdc_csrf_token=srAzW1jK4GPYYoR452ruZ38DxEsDY9x81q1tVRSnno5pUjISvP7TqziOLiBLBUSxEjOmQk2X
east-1",
"CredentialType":"EXTERNAL_IDP"
},
"requestID":"f3cf52ad-fd3d-4889-8c15-f18d1a7c7393",
"eventID":"e959a95a-2b33-478d-906c-4fe303e8a9f1",
"readOnly":false,
"eventType":"AwsServiceEvent",
"managementEvent":true,
"eventCategory":"Management",
116
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"UserAuthentication":"Success"
}
}
Successful sign-in when authenticating with a password and a TOTP authenticator app
The following sequence of events captures an example where multi-factor authentication was required
during sign-in and the user successfully signed in using a password and a TOTP authenticator app.
CredentialChallenge (Password)
{
"eventVersion":"1.08",
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-08T20:40:13Z",
"eventSource":"signin.amazonaws.com",
"eventName":"CredentialChallenge",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"303486b5-fce1-4d59-ba1d-eb3acb790729",
"CredentialType":"PASSWORD"
},
"requestID":"e454ea66-1027-4d00-9912-09c0589649e1",
"eventID":"d89cc0b5-a23a-4b88-843a-89329aeaef2e",
"readOnly":false,
"eventType":"AwsServiceEvent",
"managementEvent":true,
"eventCategory":"Management",
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"CredentialChallenge":"Success"
}
}
{
"eventVersion":"1.08",
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-08T20:40:20Z",
"eventSource":"signin.amazonaws.com",
"eventName":"CredentialVerification",
117
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"303486b5-fce1-4d59-ba1d-eb3acb790729",
"CredentialType":"PASSWORD"
},
"requestID":"92c4ac90-0d9b-452d-95d5-728487612f5e",
"eventID":"4533fd49-6669-4d0b-b272-a0b2139309a8",
"readOnly":false,
"eventType":"AwsServiceEvent",
"managementEvent":true,
"eventCategory":"Management",
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"CredentialVerification":"Success"
}
}
CredentialChallenge (TOTP)
{
"eventVersion":"1.08",
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-08T20:40:20Z",
"eventSource":"signin.amazonaws.com",
"eventName":"CredentialChallenge",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"303486b5-fce1-4d59-ba1d-eb3acb790729",
"CredentialType":"TOTP"
},
"requestID":"92c4ac90-0d9b-452d-95d5-728487612f5e",
"eventID":"29202f08-f240-40cc-b789-c0cea8a27847",
"readOnly":false,
"eventType":"AwsServiceEvent",
"managementEvent":true,
"eventCategory":"Management",
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"CredentialChallenge":"Success"
}
}
{
"eventVersion":"1.08",
118
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-08T20:40:27Z",
"eventSource":"signin.amazonaws.com",
"eventName":"CredentialVerification",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"303486b5-fce1-4d59-ba1d-eb3acb790729",
"CredentialType":"TOTP"
},
"requestID":"c40a691f-eeb1-4352-b286-5e909f96f318",
"eventID":"e889ff1d-fcaf-454f-805d-7132cf2362a4",
"readOnly":false,
"eventType":"AwsServiceEvent",
"managementEvent":true,
"eventCategory":"Management",
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"CredentialVerification":"Success"
}
}
{
"eventVersion":"1.08",
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-08T20:40:27Z",
"eventSource":"signin.amazonaws.com",
"eventName":"UserAuthentication",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"303486b5-fce1-4d59-ba1d-eb3acb790729",
"LoginTo":"https://d-1234567890.awsapps.com/start/?state
\u003dQVlBQmVLeFhWeDRmZFJmMmxHcWYwdzhZck5RQUlnQUJBQk5FWVhSaFVHeGhibVZUZEdGMFpWQmhjbUZ0QUFsUVpYSmxaM0pwY
\u0026auth_code
\u003d11Fir1mCVJ-4Y5UY6RI10UCXvRePCHd6195xvYg1rwo1Pj7B-7UGIGlYUUVe31Nkzd7ihxKn6DMdnFfO01O8qc3RFR8FUd1w8
Sx-pjBXKG_jUcvBk_UILdGytV4o1u97h42B-
TA_6uwdmJiw1dcCz_Rv44d_BS0PkulW-5LVJy1oeP1H0FPPMeheyuk5Uy48d5of9-c\u0026wdc_csrf_token
\u003dNMlui44guoVnxRd0qu2tYJIdyyFPX6SDRNTspIScfMM0AgFbho1nvvCaxPTghHbgHCRIXdffFtzH0sL1ow419BobnmqBsnJNx
\u0026organization\u003dd-9067230c03\u0026region\u003dus-east-1",
"CredentialType":"PASSWORD,TOTP"
119
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
},
"requestID":"c40a691f-eeb1-4352-b286-5e909f96f318",
"eventID":"7a8c8725-db2f-488d-a43e-788dc6c73a4a",
"readOnly":false,
"eventType":"AwsServiceEvent",
"managementEvent":true,
"eventCategory":"Management",
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"UserAuthentication":"Success"
}
}
Successful sign-in when authenticating with a password and forced MFA registration is required
The following sequence of events captures an example of a successful password sign in, but the user was
required and successfully completed registering an MFA device before completing their sign-in.
CredentialChallenge (Password)
{
"eventVersion":"1.08",
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-09T01:24:02Z",
"eventSource":"signin.amazonaws.com",
"eventName":"CredentialChallenge",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"76d8a26d-ad9c-41a4-90c3-d607cdd7155c",
"CredentialType":"PASSWORD"
},
"requestID":"321f4b13-42b5-4005-a0f7-826cad26d159",
"eventID":"8c707b0f-e45a-4a9c-bee2-ff68638d2f1b",
"readOnly":false,
"eventType":"AwsServiceEvent",
"managementEvent":true,
"eventCategory":"Management",
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"CredentialChallenge":"Success"
}
}
{
"eventVersion":"1.08",
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
120
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-09T01:24:09Z",
"eventSource":"signin.amazonaws.com",
"eventName":"CredentialVerification",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"76d8a26d-ad9c-41a4-90c3-d607cdd7155c",
"CredentialType":"PASSWORD"
},
"requestID":"12b57efa-0a92-4479-91a3-5b6641817c21",
"eventID":"783b0c89-7142-4942-8b84-6ee0de1b992e",
"readOnly":false,
"eventType":"AwsServiceEvent",
"managementEvent":true,
"eventCategory":"Management",
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"CredentialVerification":"Success"
}
}
{
"eventVersion":"1.08",
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-09T01:24:14Z",
"eventSource":"signin.amazonaws.com",
"eventName":"UserAuthentication",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"76d8a26d-ad9c-41a4-90c3-d607cdd7155c",
"LoginTo":"https://d-1234567890.awsapps.com/start/?state
\u003dQVlBQmVGQ3VqdHF5aW9CUDdrNXRTVTJUaWNnQUlnQUJBQk5FWVhSaFVHeGhibVZUZEdGMFpWQmhjbUZ0QUFsUVpYSmxaM0pwY
\u0026auth_code
\u003d11eZ80S_maUsZ7ABETjeQhyWfvIHYz52rgR28sYAKN1oEk2G07czrwzXvE9HLlN2K9De8LyBEV83SFeDQfrWpkwXfaBc2kNR1
FJyJqkoGrt_w6rm_MpAn0uyrVq8udY EgU3fhOL3QWvWiquYnDPMyPmmy_qkZgR9rz__BI\u0026wdc_csrf_token
\u003dJih9U62o5LQDtYLNqCK8a6xj0gJg5BRWq2tbl75y8vAmwZhAqrgrgbxXat2M646UZGp93krw7WYQdHIgi5OYI9QSckf4aovh0
\u003dd-9067230c03\u0026region\u003dus-east-1",
"CredentialType":"PASSWORD",
"DeviceEnrollmentRequired":"true"
},
"requestID":"74d24604-a365-4237-8c4a-350795494b92",
"eventID":"a15bf257-7f37-46c0-b67c-fea5fa6166be",
"readOnly":false,
121
AWS Single Sign-On User Guide
Logging AWS SSO API calls with AWS CloudTrail
"eventType":"AwsServiceEvent",
"managementEvent":true,
"eventCategory":"Management",
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"UserAuthentication":"Success"
}
}
The following sequence of events captures an example of a failed password only sign-in.
CredentialChallenge (Password)
{
"eventVersion":"1.08",
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-08T18:56:15Z",
"eventSource":"signin.amazonaws.com",
"eventName":"CredentialChallenge",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"adbf67c4-8188-4e2b-8527-fe539e328fa7",
"CredentialType":"PASSWORD"
},
"requestID":"f54848ea-b1aa-402f-bf0d-a54561a2ffcc",
"eventID":"d96f1d6c-dbd9-4a0b-9a45-6a2b66078c78",
"readOnly":false,
"eventType":"AwsServiceEvent",
"managementEvent":true,
"eventCategory":"Management",
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"CredentialChallenge":"Success"
}
}
{
"eventVersion":"1.08",
"userIdentity":{
"type":"Unknown",
"principalId":"111122223333",
"arn":"",
"accountId":"111122223333",
"accessKeyId":"",
"userName":"user1"
},
"eventTime":"2020-12-08T18:56:21Z",
122
AWS Single Sign-On User Guide
Amazon CloudWatch Events
"eventSource":"signin.amazonaws.com",
"eventName":"CredentialVerification",
"awsRegion":"us-east-1",
"sourceIPAddress":"203.0.113.0",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"requestParameters":null,
"responseElements":null,
"additionalEventData":{
"AuthWorkflowID":"adbf67c4-8188-4e2b-8527-fe539e328fa7",
"CredentialType":"PASSWORD"
},
"requestID":"04528c82-a678-4a1f-a56d-ea2c6445a72a",
"eventID":"9160fe06-fc2a-474f-9b78-000ee067a09d",
"readOnly":false,
"eventType":"AwsServiceEvent",
"managementEvent":true,
"eventCategory":"Management",
"recipientAccountId":"111122223333",
"serviceEventDetails":{
"CredentialVerification":"Failure"
}
}
To learn more about CloudWatch Events, including how to configure and enable it, see the Amazon
CloudWatch Events User Guide.
To learn whether AWS Single Sign-On or other AWS services are in scope of specific compliance
programs, see AWS Services in Scope by Compliance Program. For general information, see AWS
Compliance Programs.
You can download third-party audit reports using AWS Artifact. For more information, see Downloading
Reports in AWS Artifact.
Your compliance responsibility when using AWS services is determined by the sensitivity of your data,
your company's compliance objectives, and applicable laws and regulations. AWS provides the following
resources to help with compliance:
• Security and Compliance Quick Start Guides – These deployment guides discuss architectural
considerations and provide steps for deploying baseline environments on AWS that are security and
compliance focused.
• Architecting for HIPAA Security and Compliance Whitepaper – This whitepaper describes how
companies can use AWS to create HIPAA-compliant applications.
123
AWS Single Sign-On User Guide
Resilience
Note
Not all services are compliant with HIPAA.
• AWS Compliance Resources – This collection of workbooks and guides might apply to your industry
and location.
• Evaluating Resources with Rules in the AWS Config Developer Guide – The AWS Config service assesses
how well your resource configurations comply with internal practices, industry guidelines, and
regulations.
• AWS Security Hub – This AWS service provides a comprehensive view of your security state within AWS
that helps you check your compliance with security industry standards and best practices.
• AWS Audit Manager – This AWS service helps you continuously audit your AWS usage to simplify how
you manage risk and compliance with regulations and industry standards.
For more information about AWS Regions and Availability Zones, see AWS global infrastructure.
You use AWS published API calls to access AWS SSO through the network. Clients must support
Transport Layer Security (TLS) 1.0 or later. We recommend TLS 1.2 or later. Clients must also support
cipher suites with perfect forward secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic Curve
Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java 7 and later support these modes.
Additionally, requests must be signed by using an access key ID and a secret access key that is associated
with an IAM principal. Or you can use the AWS Security Token Service (AWS STS) to generate temporary
security credentials to sign requests.
124
AWS Single Sign-On User Guide
Tag restrictions
• Identify and organize your AWS resources. Many AWS services support tagging, so you can assign the
same tag to resources from different services to indicate that the resources are related. For example,
you could assign the same tag to a specific permission set in your AWS SSO instance.
• Track your AWS costs. You activate these tags on the AWS Billing and Cost Management dashboard.
AWS uses the tags to categorize your costs and deliver a monthly cost allocation report to you. For
more information, see Use cost allocation tags in the AWS Billing and Cost Management User Guide.
• Control access to your resources based on the tags that are assigned to them. You control access by
specifying tag keys and values in the conditions for an AWS Identity and Access Management (IAM)
policy. For example, you could allow an IAM user to update an AWS SSO instance, but only if the AWS
SSO instance has an owner tag with a value of that user's name. For more information, see Controlling
access using tags in the IAM User Guide.
Currently, tags can only be applied to permission sets and cannot be applied to corresponding roles that
AWS SSO creates in AWS accounts. You can use the AWS SSO console, AWS CLI or the AWS SSO APIs to
add, edit, or delete tags for a given permission set.
For tips on using tags, see the AWS tagging strategies post on the AWS Answers blog.
The following sections provide more information about tags for AWS SSO.
Tag restrictions
The following basic restrictions apply to tags on AWS SSO resources:
125
AWS Single Sign-On User Guide
AWS CLI examples
a. If you have existing tags assigned for this permission set, choose Edit tags.
b. If no tags have been assigned to this permission set, choose Add tags.
6. For each new tag, type the values in the Key and Value (optional) columns. When you are finished,
choose Save changes.
To remove a tag, choose the X in the Remove column next to the tag you want to remove.
Assigning tags
Use the following commands to assign tags to your permission set.
Assign tags to a permission set by using tag-resource within the sso set of commands:
• instance-arn – The Amazon Resource Name (ARN) of the AWS SSO instance under which the
operation will be executed.
• resource-arn – The ARN of the resource with the tags to be listed.
• tags – The key-value pairs of the tags.
Viewing tags
Use the following commands to view the tags that you have assigned to your permission set.
126
AWS Single Sign-On User Guide
Removing tags
View the tags that are assigned to a permission set by using list-tags-for-resource within the sso
set of commands:
Removing tags
Use the following commands to remove tags from a permission set.
Remove tags from a permission set by using untag-resource within the sso set of commands:
For the --tag-keys parameter, specify one or more tag keys, and do not include the tag values.
When you create a permission set by using the create-permission-set command, you can specify
tags with the --tags parameter:
• TagResource
• ListTagsForResource
• UntagResource
• CreatePermissionSet
127
AWS Single Sign-On User Guide
How to integrate AWS CLI with AWS SSO
AWS CLI integration with AWS SSO offers the following benefits:
• Enterprises can enable their developers to sign in using credentials from AWS SSO or Active Directory
by connecting AWS SSO to their Active Directory using AWS Directory Service.
• Developers can sign in from the CLI for faster access.
• Developers can list and switch between accounts and roles to which they have assigned access.
• Developers can generate and save named role profiles in their CLI configuration automatically and
reference them in the CLI to run commands in desired accounts and roles.
• The CLI manages short-term credentials automatically so developers can start in and stay in the CLI
securely without interruption, and run long running scripts.
128
AWS Single Sign-On User Guide
AWS SSO Region data
AWS Organizations only supports one AWS SSO Region at a time. If you want to make AWS SSO
available in a different Region, you must first delete your current AWS SSO configuration. Switching to a
different Region also changes the URL for the user portal.
What data gets deleted Connected directory AWS SSO identity store
Use the following procedure when you need to delete your current AWS SSO configuration.
129
AWS Single Sign-On User Guide
Delete your AWS SSO configuration
3. On the Settings page, under Delete AWS SSO configuration, choose Delete AWS SSO.
4. On the Delete AWS SSO configuration page, select each of the check boxes to acknowledge you
understand the data that will be deleted. Type DELETE in the text box, and then choose Delete AWS
SSO.
130
AWS Single Sign-On User Guide
Application quotas
Application quotas
Resource Default quota Can be increased
Note
Permission sets (p. 9) are provisioned in AWS accounts as IAM roles and therefore follow IAM
quotas. For more information about IAM quotas, see IAM and STS quotas.
131
AWS Single Sign-On User Guide
AWS SSO identity store quotas
* Users can belong to many directory groups, and a directory may contain many groups (see AWS SSO
identity store quotas (p. 132)). Within AWS SSO, a maximum of 2500 of these groups can be assigned
for using accounts and applications.
* Users within an AWS SSO store can have up to 100 of their groups assigned for using applications.
AWS SSO APIs All AWS SSO APIs have a throttle limit maximum
of 20 transactions per second (TPS). The
CreateAccountAssignment has a maximum rate of
10 outstanding async calls. These quotas cannot
be changed.
Additional quotas
Resource Default quota Can be increased
* Only 500 AWS accounts or applications (total combined) are supported. For example, you might
configure 275 accounts and 225 applications, resulting in a total of 500 accounts and applications.
** Before displaying the user’s available AWS accounts and application icons in the user portal, AWS SSO
evaluates the user’s effective permissions by evaluating their group memberships. Only 1000 unique
groups can be used to determine a user’s effective permissions.
132
AWS Single Sign-On User Guide
Issues regarding contents of SAML
assertions created by AWS SSO
Note
Some browser configurations and operating systems may not support this procedure. This
procedure has been tested on Windows 10 using Firefox, Chrome, and Edge browsers.
This issue often indicates that the user in your IdP is configured in a way that AWS SSO does not
support. Full details of the AWS SSO SCIM implementation, including the specifications of required,
optional, and forbidden parameters and operations for user objects, can be found in the AWS SSO SCIM
Implementation Developer Guide. The SCIM Developer Guide should be considered authoritative for
information around SCIM requirements. However, the following are a couple of common reasons for this
error:
1. The user object in the IdP lacks a first (given) name, a last (family) name, and/or a display name.
• Solution: Add a first (given), last (family), and display name for the user object. In addition,
ensure that the SCIM provisioning mappings for user objects at your IdP are configured to send
nonempty values for all of these attributes.
2. More than one value for a single attribute is being sent for the user (also known as “multi-value
attributes”). For example, the user may have both a work and a home phone number specified in
133
AWS Single Sign-On User Guide
Users can’t sign in when their user name is in UPN format
the IdP, or multiple emails or physical addresses, and your IdP is configured to try to synchronize
multiple or all values for that attribute.
• Solution options:
i. Update your SCIM provisioning mappings for user objects at your IdP to send only a single
value for a given attribute. For example, configure a mapping that sends only the work
phone number for each user.
ii. If the additional attributes can safely be removed from the user object at the IdP, you can
remove the additional values, leaving either one or zero values set for that attribute for the
user.
iii. If the attribute is not needed for any actions in AWS, remove the mapping for that attribute
from the SCIM provisioning mappings for user objects at your IdP.
3. Your IdP is trying to match users in the target (AWS SSO, in this case) based on multiple attributes.
Since user names are guaranteed unique within a given AWS SSO instance, you only need to specify
username as the attribute used for matching.
• Solution: Ensure that your SCIM configuration in your IdP is using only a single attribute for
matching with users in AWS SSO. For example, mapping username or userPrincipalName
in the IdP to the userName attribute in SCIM for provisioning to AWS SSO will be correct and
sufficient for most implementations.
These roles can only be modified from the AWS SSO Administrator console, which is in the management
account of AWS Organizations. Once modified, you can then push the changes down to the AWS
accounts that it is assigned to.
134
AWS Single Sign-On User Guide
Directory users cannot reset their password
If a user enters a password that adheres to the policy and then receives the error We couldn't update
your password, check to see if AWS CloudTrail recorded the failure. This can be done by searching in
the Event History console of CloudTrail using the following filter:
"UpdatePassword"
If the message states the following, then you may need to contact support:
"errorCode": "InternalFailure",
"errorMessage": "An unknown error occurred“
Another possible cause of this issue is in the naming convention that was applied to the user name value.
Naming conventions must follow specific patterns such as 'surname.givenName'. However, some user
names can be quite long, or contain special characters, and this can cause characters to be dropped in
the API call, thereby resulting in an error. You may want to attempt a password reset with a test user in
the same manner to verify if this is the case.
To restore AWS account access in this case, you can remove access for the old user or group from the
AWS account(s) where it was originally assigned, and then reassign access back to the user or group. This
updates the permission set with the correct identifier for the new user or group. Similarly, to restore
application access, you can remove access for the user or group from the assigned users list for that
application, then add the user or group back again.
You can also check to see if AWS CloudTrail recorded the failure by searching your CloudTrail logs for
SCIM synchronization events that reference the name of the user or group in question.
135
AWS Single Sign-On User Guide
Error 'An unexpected error has occurred' when a user
tries to sign in using an external identity provider
If the problem is related to setting up the trust between the service provider's application and AWS SSO,
make sure to check the instruction manual for troubleshooting steps.
In order for an AWS SSO user to sign in successfully when using an external IdP as the identity source,
the following must be true:
• The SAML nameID format (configured at your identity provider) must be ‘email’
• The nameID value must be a properly (RFC2822)-formatted string ([email protected])
• The nameID value must exactly match the user name of an existing user in AWS SSO (it doesn’t matter
if the email address in AWS SSO matches or not – the inbound match is based on username)
• The following statements apply if Attributes for access control (p. 59) is enabled in your AWS SSO
account:
• The number of attributes mapped in the SAML request must be 50 or less.
• The SAML request must not contain multi-valued attributes.
• The SAML request must not contain multiple attributes with the same name.
• The attribute must not contain structured XML as the value.
• The Name format must be a SAML specified format, not generic format.
Note
AWS SSO does not perform “just in time” creation of users or groups for new users or groups via
SAML federation. This means that the user must be pre-created in AWS SSO, either manually or
via automatic provisioning, in order to sign in to AWS SSO.
This error can also occur when the Assertion Consumer Service (ACS) endpoint configured in your
identity provider does not match the ACS URL provided by your AWS SSO instance. Ensure that these
two values match exactly.
Additionally, you can troubleshoot external identity provider sign-in failures further by going to AWS
CloudTrail and filtering on the event name ExternalIdPDirectoryLogin.
136
AWS Single Sign-On User Guide
Active Directory “Domain Users” group
does not properly sync into AWS SSO
may be varied, such as platform authenticator support across macOS and iOS browsers. If users attempt
to register WebAuthn devices on an unsupported browser or platform, they will see certain options
greyed out that are not supported, or they will receive an error that all supported methods are not
supported. In these cases, please refer to FIDO2: Web Authentication (WebAuthn) for more information
about browser/platform support. For more information about WebAuthn in AWS SSO, see Security keys
and built-in authenticators (p. 85).
137
AWS Single Sign-On User Guide
Document history
The following table describes the documentation for this release of AWS Single Sign-On.
New example policies Added new customer managed December 21, 2020
policy examples and updates to
the permissions required section.
Support for attribute-based Added content for ABAC feature. November 24, 2020
access control (ABAC)
Support for MFA forced Updates to require users to November 23, 2020
enrollment enroll an MFA device at sign-in.
Support for WebAuthn Added content for new November 20, 2020
WebAuthn feature.
Support for ping identity Added content to integrate October 26, 2020
with Ping Identity products as
a supported external identity
provider.
Support for Okta Added content to integrate with May 28, 2020
Okta as a supported external
identity provider.
Support for external identity Changed references from November 26, 2019
providers directory to identity source,
added content to support
external identity providers.
New setting to add two-step Added content on how to enable January 16, 2019
verification two-step verification for users.
Support for session duration on Added content on how to set October 30, 2018
AWS accounts the session duration for an AWS
account.
New option to use AWS SSO Added content for choosing October 17, 2018
directory either AWS SSO directory or
connecting to an existing AD
directory.
138
AWS Single Sign-On User Guide
Support for relay state and Added content about relay state October 10, 2018
session duration on applications and session duration for cloud
applications.
Support for SSO access to Added content about how to July 9, 2018
management accounts delegate SSO access to users in a
management account.
Support for new cloud Added DocuSign, Keeper March 16, 2018
applications Security, and SugarCRM to the
application catalog.
Get temporary credentials for Added information about how to February 22, 2018
CLI access get temporary credentials to run
AWS CLI commands.
139
AWS Single Sign-On User Guide
AWS glossary
For the latest AWS terminology, see the AWS glossary in the AWS General Reference.
140