Connecting Microsoft Entra ID to Kiro takes about 30–45 minutes. You'll create an Entra application, configure a Kiro profile in the AWS console, and set up SCIM provisioning so user and group assignments sync automatically.
Before you start, have these open:
AWS access is only needed for the administrator managing the Kiro profile — end users don't need an AWS account.
The integration connects two systems:
SCIM provisioning connects them: you provide a SCIM endpoint and token from Kiro to Entra, and the Application (client) ID and Directory (tenant) ID from Entra to Kiro.
Sign in to the Microsoft Entra admin center, then create a new application from Enterprise applications -> New application. In the Microsoft Entra App Gallery, select "Create your own application".
Loading image...
Set a descriptive name, for example, Kiro-Entra. Then, select the "Integrate any other application you don't find in the gallery (Non-gallery)" option for the "What are you looking to do with your application?" field, and select "Create" to create the application.
Loading image...
Configure the application so user identities can present the right authorization to access Kiro.
Kiro syncs user identities through the application's API endpoint. For the "Kiro-Entra" application (App registrations -> All applications -> Kiro-Entra), select "Expose an API", then select "Add" next to the "Application ID URI" field and save the default value. Next, add two scopes that define the permissions an identity must present to Kiro.
Loading image...
Add the first scope, which gives users access to inline code completion:
Add the second scope, which gives users access to chat:
After you have completed adding the scopes, "Expose an API" page should look like this:
Loading image...
A redirect URI is where Entra sends the user and delivers tokens after authentication. For the Kiro application, select "Authentication (Preview)", then "Add Redirect URI", and choose the "Mobile and desktop application" platform.
Add two redirect URIs — "kiro://kiro.oauth/callback" and "http://localhost/oauth/callback" — selecting Configure after each.
After adding the redirect URIs, the page should look like this:
Loading image...
Last, set the access token format that Kiro will request. By default, Entra ID issues v1-format access tokens. Kiro requires v2-format tokens. In the App Registration, select Manifest from the left navigation. Find the requestedAccessTokenVersion field under the api section and set its value to 2. Select Save.
Now, you are ready to set up the Kiro profile.
Setting up the Kiro profile and connecting it to your Microsoft Entra ID IdP consists of two steps:
In the AWS Management Console, search for Kiro and open the Kiro service. Select Onboard your team to Kiro. In the Select your identity management source dialog, choose External Identity Provider to connect an existing external identity provider, then select Next.
Loading image...
In the Welcome to Kiro! dialog, select an identity provider from the dropdown. The currently supported providers are Microsoft Entra ID and Okta. Choose Microsoft Entra ID. The dialog then shows Application ID and Tenant ID fields, which you'll fill in with values from your Entra application.
To find those values, go to Microsoft Entra and select App registrations -> All applications -> Kiro-Entra. This opens the "Overview" tab.
Loading image...
First, copy the Application (client) ID field value and paste it into the Application ID field in the Kiro profile you are creating. Copy the Directory (tenant) ID into the Tenant ID field in the Kiro profile, then select Enable to create the profile.
Select the "Settings" button and in the Identity management -> Domains section, select "Add domain" to add your company domain
Loading image...
Selecting "Add" will add the domain and show you a verification token. Copy the verification token. The domain added will show up in the Domains list with "Pending" status.
In your DNS Provider like Amazon Route53, create a TXT record with that verification token within 24 hours of adding the domain. Use a prefix such as kiro-app-1 for the record name (for example, kiro-app-1.yourdomain.com).
If the configuration is valid, after a few minutes the status will be "Verified".
Loading image...
If your organization uses a private or internal domain for its infrastructure, use one of the following approaches:
In this step, you will provision the Kiro application and verify that Kiro can sync identities from your Entra ID identity store.
In the Kiro console — Navigate to Settings → Identity Management. In the Access Tokens section, select Generate Token and copy the token value, then copy the SCIM Endpoint URL from the same page.
Loading image...
In the Entra admin center — Navigate to Enterprise Apps → Kiro-Entra → Provisioning. Select the Provisioning link from the sidebar, then set Provisioning Mode to Automatic.
Select Test Connection to validate. If successful, select Save. If a Provisioning Status toggle is present, set it to On.
Loading image...
Loading image...
After saving, refresh the Entra ID application page — the attribute mapping links will not appear until you do.
With the sidebar links enabled, open the "Attribute mapping (Preview)" section. Both Provision Groups and Provision Users should be enabled.
Loading image...
Select the "Provision Microsoft Entra ID Users" link to open the "Attribute Mapping" page. Select the "Edit" button for the "externalId" attribute to open the "Edit Attribute" page. Set the Source attribute value to "objectId" and save the configuration. "objectId" uniquely identifies a user or group and doesn't change, making it easy for Kiro to identify and synchronize users/groups.
Loading image...
Entra auto-populates several attributes Kiro's SCIM endpoint does not support. If left in place, provisioning will fail. Delete the following from the attribute mapping table:
Enterprise User Extension attributes (delete these):
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumberurn:ietf:params:scim:schemas:extension:enterprise:2.0:User:departmenturn:ietf:params:scim:schemas:extension:enterprise:2.0:User:managerPhone number attributes (delete these):
phoneNumbers[type eq "work"].valuephoneNumbers[type eq "mobile"].valuephoneNumbers[type eq "fax"].valueSelect each attribute row and choose Delete. Save the mapping when done.
Choose which users and groups to synchronize from the Entra application to Kiro. The selected users and groups become available to associate with a Kiro subscription in the Kiro profile.
In the Entra admin center, navigate to your Kiro application → Users and groups → select + Add user/group. Assign the groups (or individual users) that should have access to Kiro.
To view users and groups automatically provisioned, navigate to the "Users and groups" section in the Entra ID application. It may take some time for users and groups to appear on their own. Refer to Entra documentation for tracking the progress of the provisioning process.
To manually provision, navigate to "Provisioning" page and select "Provision On Demand" under "Quick Actions" section.
Loading image...
If you are provisioning a group, make sure you select all the users in the group. After you have successfully configured the group and the users in the group, you will see a success screen.
Loading image...
Repeat the steps to add all the users and groups you want to synchronize with Kiro.
You have completed all configuration steps for Microsoft Entra ID.
When users appear in your Kiro console, follow the subscription guide to activate them.
Session management
Redirect URI security
Profile deletion warning
If you delete a Kiro profile after provisioning and create a new profile with the same Entra application, group membership will not be synced. You must re-provision the application completely.
Preventing unauthorized access
Removing a user and deprovisioning behavior
Group membership sync behavior
| Missed step | How will this manifest | How to fix | Notes |
|---|---|---|---|
| Did not set access token version to 2 in manifest | After login, API calls will fail with authorization errors | In App registrations, edit the Manifest and set api.requestedAccessTokenVersion to 2 | Entra defaults to v1 access tokens; Kiro requires v2 |
| Did not set scopes in Expose an API | Login screen will show an error | Add codewhisperer:completions and codewhisperer:conversations scopes in Expose an API | Both scopes are required |
| Did not set attribute mapping in provisioning | After login, user would not have a subscription (API calls fail) | In Attribute Mapping, set externalId source attribute to objectId. Delete ALL subscriptions and re-provision. | objectId is the stable unique identifier |
| Did not set redirect URIs | Login attempts show an error screen | Add the required localhost redirect URIs in Authentication settings | See the setup guide for the full list of ports |
| Did not provision on demand | Users/groups do not appear in the Kiro console | Navigate to Provisioning and select "Provision on Demand" | Automatic sync can take up to 40 minutes |
| Deleted profile after provisioning, created new profile with same app | Group membership is not synced | Re-provision the application from scratch with a new SCIM token | See Profile deletion warning above |
| Used a private or internal TLD for domain verification | Domain stays in "Pending" status and never verifies | Verify a publicly resolvable domain or subdomain instead, or register the public email domain your users sign in with | Verification performs a public DNS lookup; private TLDs return NXDOMAIN |
Connect your Microsoft Entra ID IdP