Amazon Cognito Integration
The Corsha mIDP integrates with Amazon Cognito to automatically import and synchronize user pool clients and identity pool identities as machine identities. This integration enables organizations to leverage AWS's authentication and authorization service while applying Corsha's zero-trust access controls.
Overview
Amazon Cognito provides authentication, authorization, and user management for web and mobile applications. The Corsha integration imports Cognito user pool clients and identity pool federated identities into the mIDP, creating machine identities that can be organized into groups and protected with connection rules and protocol enforcement policies.
Key Benefits:
- Automated Identity Import: Cognito user pool clients and identity pool identities are automatically imported as machine identities
- Continuous Synchronization: Identity information remains current as Cognito detects changes
- Multi-Region Support: Support for Cognito user pools across multiple AWS regions
- OAuth 2.0 and OIDC Integration: Leverage Cognito's OAuth 2.0 and OpenID Connect support
- AWS-Native Integration: Seamless integration with AWS authentication infrastructure
Identity Information Imported
The following information is imported from Amazon Cognito:
- User Pool Client Details: Client ID, client name, user pool ID
- Identity Pool Information: Identity pool ID, identity provider details
- Authentication Configuration: OAuth 2.0 flows, allowed scopes, callback URLs
- AWS Metadata: AWS region, account ID, resource tags
- Token Configuration: Access token expiration, refresh token expiration
- Provider Attributes: Federated identity provider mappings
- Last Activity: Most recent authentication timestamp
Use Cases
AWS Application Access Control
Control access between AWS-hosted applications and services:
- Import Lambda function Cognito client IDs as machine identities
- Create connection rules for API Gateway to Lambda communication
- Apply protocol enforcement to containerized AWS applications
- Monitor API calls between AWS services using Cognito authentication
Mobile and Web Application Backend Security
Secure backend services for mobile and web applications:
- Import mobile app Cognito clients as machine identities
- Control access from authenticated apps to backend APIs
- Apply connection rules based on OAuth scopes
- Monitor application-to-service communication patterns
Federated Identity Management
Manage federated identities across identity providers:
- Import federated identities from social providers (Google, Facebook, Amazon)
- Import identities from enterprise SAML providers
- Maintain consistent policies across identity sources
- Centralize visibility of federated machine access
Configuration
Adding Amazon Cognito Connection
Step 1: Access Cloud Identity Sources
- Navigate to the Identity Sources page in the Corsha Console
- Scroll down to the Cloud Identity Sources section
- Click the New Connection button in the upper-right corner
Step 2: Select Amazon Cognito
A dialog will appear prompting you to select your cloud identity provider. Click the + button below Amazon Cognito to configure AWS Cognito User Pool integration.
Step 3: Provide Connection Details
Fill in the following required fields:
- User Pool ARN* (required): The Amazon Resource Name (ARN) of your Cognito User Pool
- Format:
arn:aws:cognito-idp:REGION:ACCOUNT_ID:userpool/POOL_ID - Find in AWS Console: Amazon Cognito > User pools > Select pool > User pool overview > User pool ARN
- Format:
- Access Key ID* (required): AWS IAM access key with permissions to read Cognito User Pool
- Create in AWS Console: IAM > Users > Your user > Security credentials > Create access key
- Secret Access Key* (required): The secret key associated with your AWS access key
- Provided when creating the access key (store securely, shown only once)
- IAM Role ARN* (required): The ARN of the IAM role that Corsha will assume to access your User Pool
- Format:
arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME - Create in AWS Console: IAM > Roles > Create role
- Format:
Step 4: Configure IAM Permissions
The IAM role or user requires the following permissions:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cognito-idp:DescribeUserPool",
"cognito-idp:DescribeUserPoolClient",
"cognito-idp:ListUserPoolClients",
"cognito-identity:DescribeIdentityPool",
"cognito-identity:ListIdentityPools"
],
"Resource": "*"
}
]
}
To create this IAM policy:
- Navigate to IAM > Policies > Create policy
- Switch to the JSON tab and paste the policy above
- Name the policy (e.g., "CorshaCogitoReadOnly")
- Attach the policy to your IAM user or role
Step 5: Complete the Connection
- Fill in all required fields with your AWS Cognito credentials
- Click Test Connection to verify the configuration
- If successful, save the connection to begin syncing machine identities
- Configure synchronization frequency and attribute mapping
- Specify default machine group assignments for imported identities
Contact your Corsha Technical Point of Contact (TPOC) for assistance configuring the Amazon Cognito integration and obtaining necessary AWS credentials.
Supported Amazon Cognito Versions
The Corsha integration supports Amazon Cognito User Pools and Identity Pools via AWS SDK and Cognito APIs.
Next Steps
- Identity Sources Overview for integration best practices
- Managing Machine Identities to work with imported identities
- Machine Groups to organize imported machines