Amazon Cognito

简单安全的用户注册、登录和访问控制

借助 Amazon Cognito,您可以快速轻松地为 Web 和移动应用程序添加用户注册/登录和访问控制功能。Amazon Cognito 可将用户规模扩展到数百万,并支持通过 SAML 2.0 使用社交身份提供商 (如 Facebook、Google 和 Amazon) 以及企业身份提供商进行登录。

把您的时间花在创造出色的应用程序上。

让 Amazon Cognito 处理身份验证。

Cognito-SI-CI-IMG_landing_userpool

安全且可扩展的用户目录

Amazon Cognito 用户池提供一个可将用户规模扩展到数亿的安全用户目录。作为一项完全托管服务,用户池很容易设置,无需担心构建服务器基础设施。

阅读有关 Cognito 用户池的更多信息

 

Cognito-SI-CI-IMG_landing_federation

社交和企业联合身份验证

借助 Amazon Cognito,您的用户可以通过 SAML 使用社交身份提供商(如 Google、Facebook 和 Amazon)以及企业身份提供商(如 Microsoft Active Directory)进行登录。

阅读有关联合的更多信息

 

Cognito-SI-CI-IMG_landing_security

基于标准的身份验证

Amazon Cognito 用户池是基于标准的身份提供商,支持身份和访问管理标准,如 Oauth 2.0、SAML 2.0 和 OpenID Connect。

阅读有关基于标准的身份验证的更多信息

 

Cognito-SI-CI-IMG_landing_compliance

保护您的应用程序和用户的安全

Amazon Cognito 支持多重验证功能以及静态和动态数据加密。Amazon Cognito 符合 HIPAA 要求,并满足 PCI DSSSOCISO/EIC 27001ISO/EIC 27017ISO/EIC 27018ISO 9001 标准。

阅读更多有关安全性与合规性的信息

 

Cognito-SI-CI-IMG_landing_access

AWS 资源访问控制

Amazon Cognito 可提供多种解决方案让您从应用程序控制后端资源访问。您可以定义不同角色并将用户映射到不同的角色,以便您的应用程序仅能访问对每位用户授权的资源。

阅读有关 AWS 资源访问控制的更多信息

Cognito-SI-CI-IMG_landing_customui

与您的应用程序轻松集成

借助内置 UI 以及联合身份提供商的简单配置,您可以在几分钟内集成 Amazon Cognito,为您的应用程序添加用户注册、登录和访问控制功能。您可以自定义 UI,从而将您的公司品牌置于所有用户交互的首要和中心位置。

请参阅如何快速将 Amazon Cognito 与您的应用程序集成

 

这很简单

  • iOS Objective C
    Cognito-SI-icon_ios
  • Android
    Cognito-SI-icon_android
  • iOS Swift
    Cognito-SI-icon_ios
  • React Native
    react_icon_white
  • Web 应用程序
    Cognito-SI-icon_web
  • iOS Objective C
  • 加入用户并使用软件开发工具包和几行代码重新获取令牌。
    // iOS Objective-C
    // AppDelegate.m
    - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
      return [[AWSCognitoAuth defaultCognitoAuth] application:app openURL:url options:options];
    }
    // ViewController.m
    AWSCognitoAuth * cognitoAuth = [AWSCognitoAuth defaultCognitoAuth];
    [cognitoAuth getSession:self completion:^(AWSCognitoAuthUserSession * _Nullable session, NSError * _Nullable error) {
      if(error) {
        NSLog(@"Error: %@", error.userInfo[@"error"]);
      } else {
        //Do something with session
        NSLog(@"Claims: %@", t.result.idToken.claims);       
      }
    }];
  • Android
  • 加入用户并使用软件开发工具包和几行代码重新获取令牌。
    //Android
    // 1) -- Create an instance of Auth --
    Auth.Builder builder = new Auth.Builder()
      .setAppClientId(getString(R.string.cognito_client_id));    
      .setAppCognitoWebDomain(getString(R.string.cognito_web_domain));
      .setApplicationContext(getApplicationContext());
      .setAuthHandler(new callback());
      .setSignInRedirect(getString(R.string.app_redirect_signin));
      .setSignOutRedirect(getString(R.string.app_redirect_signout));
      .setScopes(userScopes);
      auth = builder.build();
     
    // 2) – Set up url redirect in your app manifest --
    <intent-filter>
      <data android:host="YOUR_REDIRECT_URI_AUTHORITY"android:scheme="YOUR_REDIRECT_SCHEME"/>
    </intent-filter>
     
    // 3) -- Get tokens for your user --
    auth.getSession();
  • iOS Swift
  • 加入用户并使用软件开发工具包和几行代码重新获取令牌。
    // iOS Swift
    // AppDelegate.swift
    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
      return AWSCognitoAuth.default().application(app, open: url, options: options)
    }
    // ViewController.swift
    let cognitoAuth = AWSCognitoAuth.default()
    cognitoAuth.getSession(self)  { (session:AWSCognitoAuthUserSession?, error:Error?) in
      if(error != nil) {
        print((error! as NSError).userInfo["error"] as? String)
       }else {
       //Do something with session
      }
    }
  • React Native
  • 加入用户并使用软件开发工具包和几行代码重新获取令牌。
    // Add 'aws-amplify' and 'aws-amplify-react-native' libraries into your application
    
    // Configure Auth category with your Amazon Cognito credentials
    Amplify.configure({
        Auth: {
            identityPoolId: 'XX-XXXX-X:XXXXXXXX-XXXX', // Amazon Cognito Identity Pool ID
            region: 'XX-XXXX-X', // Amazon Cognito Region
        }
    });
    
    // The withAuthenticator component adds Sign Up and Sign In capabilities to your app 
    export default withAuthenticator(class App extends React.Component {
         // ... your main component
    });
  • Web 应用程序
  • 加入用户并使用软件开发工具包和几行代码重新获取令牌。
    // Add 'aws-amplify' library into your application
    
    // Configure Auth category with your Amazon Cognito credentials
    Amplify.configure({
        Auth: {
            identityPoolId: 'XX-XXXX-X:XXXXXXXX-XXXX', // Amazon Cognito Identity Pool ID
            region: 'XX-XXXX-X', // Amazon Cognito Region
        }
    });
    
    // Call Auth.signIn with user credentials
    Auth.signIn(username, password)
        .then(user => console.log(user))
        .catch(err => console.log(err));
Cognito_SI_IMG_landing_iphone

受到开发人员的信赖

Conde_Nast_Logo_600x400
Alpha_Apps_600x400
Kroll_Logo_600x400

只需按实际用量付费。无最低消费要求。

如果您使用 Amazon Cognito Identity 创建一个用户池,则只需按每月活跃用户 (MAU) 付费。如果在某个日历月内,某用户有任何与身份相关的操作(如注册、登录、令牌刷新或密码更改),该用户即被计为 1 个 MAU。您无需为后续会话或该日历月内的不活跃用户付费。

定价套餐 (MAU) 每 MAU 价格
第一个 50000 免费
下一个 50000 0.00550 USD
下一个 900000 0.00460 USD
下一个 9000000 0.00325 USD
超过 10000000 0.00250 USD

对于通过 SAML 或 OIDC 联合登录的用户,超出 50 MAU 免费套餐的 MAU 的价格为每 MAU 0.015 USD。在 Amazon Cognito 中,使用联合身份功能获取已验证身份的用户或来宾用户的 AWS 凭证始终是免费的。在此处阅读有关我们的定价的更多信息。


开始使用 AWS

icon1

注册 AWS 账户

立即享受 AWS 免费套餐
icon2

通过 10 分钟教程来进行学习

通过 简单教程来进行探讨和学习。
icon3

开始使用 AWS 进行构建

开始使用分步指南进行构建来帮助您启动 AWS 项目
安全、可扩展、在几分钟内完成注册。
准备好开始构建?