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/IEC 27001ISO/IEC 27017ISO/IEC 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。 使用联合身份验证功能获取已验证身份的用户或访客用户的 AWS 凭证将始终可免费使用 Amazon Cognito。在此处阅读有关我们的定价的更多信息。


Product-Page_Standard-Icons_01_Product-Features_SqInk
查看产品功能

了解有关向 Web 和移动应用程序添加用户注册、登录和访问控制的详细信息。

了解更多 
Product-Page_Standard-Icons_02_Sign-Up_SqInk
注册免费账户

立即享受 AWS 免费套餐。 

注册 
Product-Page_Standard-Icons_03_Start-Building_SqInk
开始在控制台中构建

在 AWS 管理控制台中,使用 Amazon Cognito 开始构建。

登录