Amazon Cognito
開発者ガイド

ユーザープールによる認証

アプリユーザーは、ユーザープールを通じて直接サインインすることも、サードパーティーの ID プロバイダー (IdP) 通じて連携してサインインすることもできます。ユーザープールは、Facebook、Google、Amazon を介したソーシャルサインイン、および OpenID Connect (OIDC) および SAML IdP から返されるトークンの処理のオーバーヘッドを管理します。

認証に成功すると、Amazon Cognito よりアプリにユーザープールトークンが返ります。このトークンを使用して、ユーザーがサーバー側のリソースまたは Amazon API Gateway にアクセスできるようにすることができます。または、トークンを AWS 認証情報と交換して、別の AWS サービスにアクセスできます。


      認証の概要

ウェブまたはモバイルアプリケーションのユーザープールトークンの処理や管理は、Amazon Cognito SDK を使用してクライアント側で行われます。有効な (期限が切れていない) 更新トークンが存在し、アクセストークンの有効時間が 5 分以上残っている場合、Mobile SDK for iOS および Mobile SDK for Android では、同じように ID とアクセストークンが自動的に更新されます。SDK、JavaScript のサンプルコード、Android、および iOS については、「Amazon Cognito ユーザープールの SDK」を参照してください。

アプリユーザーがログインに成功すると、Amazon Cognito はセッションを作成して、認証されたユーザーの ID トークン、アクセストークン、更新トークンを返します。

JavaScriptAndroidiOS - SwiftiOS - Objective-C
JavaScript
// Amazon Cognito creates a session which includes the id, access, and refresh tokens of an authenticated user. var authenticationData = { Username : 'username', Password : 'password', }; var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(authenticationData); var poolData = { UserPoolId : 'us-east-1_ExaMPle', ClientId : '1example23456789' }; var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData); var userData = { Username : 'username', Pool : userPool }; var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData); cognitoUser.authenticateUser(authenticationDetails, { onSuccess: function (result) { var accessToken = result.getAccessToken().getJwtToken(); /* Use the idToken for Logins Map when Federating User Pools with identity pools or when passing through an Authorization Header to an API Gateway Authorizer */ var idToken = result.idToken.jwtToken; }, onFailure: function(err) { alert(err); }, });
Android
// Session is an object of the type CognitoUserSession, and includes the id, access, and refresh tokens for a user. String idToken = session.getIdToken().getJWTToken(); String accessToken = session.getAccessToken().getJWT();
iOS - Swift
// AWSCognitoIdentityUserSession includes id, access, and refresh tokens for a user. - (AWSTask<AWSCognitoIdentityUserSession *> *)getSession;
iOS - Objective-C
// AWSCognitoIdentityUserSession includes the id, access, and refresh tokens for a user. [[user getSession:@"username" password:@"password" validationData:nil scopes:nil] continueWithSuccessBlock:^id _Nullable(AWSTask<AWSCognitoIdentityUserSession *> * _Nonnull task) { // success, task.result has user session return nil; }];