사용자 풀을 사용한 인증 - Amazon Cognito

사용자 풀을 사용한 인증

앱 사용자는 사용자 풀을 통해 직접 로그인하거나 타사 자격 증명 공급자(IdP)를 통해 연동 로그인할 수 있습니다. 사용자 풀에서는 Facebook, Google 및 Apple, 그리고 Amazon을 통한 소셜 로그인에서 반환된 토큰과 OpenID Connect(OIDC) 및 SAML IdP에서 반환된 토큰의 처리 작업을 관리합니다.

인증 성공 이후 Amazon Cognito는 앱으로 사용자 풀 토큰을 반환합니다. 이 토큰을 사용하여 자체 서버 측 리소스 또는 Amazon API Gateway에 대한 액세스 권한을 부여할 수 있습니다. 또는 AWS 자격 증명으로 다른 AWS 서비스에 액세스할 수 있도록 이 토큰을 교환할 수 있습니다.


      인증 개요

웹 또는 모바일 앱에서의 사용자 풀 토큰 처리 및 관리는 Amazon Cognito SDK를 통해 클라이언트 측에서 제공됩니다. 마찬가지로 유효한(기간이 만료되지 않은) 새로 고침 토큰이 존재하고 ID 및 액세스 토큰의 유효 기간이 최소 5분 남아 있는 경우, Mobile SDK for iOS 및 Mobile SDK for Android는 ID 및 액세스 토큰을 자동으로 새로 고침합니다. SDK에 대한 자세한 내용과 JavaScript, Android, iOS용 샘플 코드는 Amazon Cognito 사용자 풀 SDK를 참조하세요.

앱 사용자가 성공적으로 로그인하면 Amazon Cognito가 세션을 생성하고 인증된 사용자를 위한 ID, 액세스 및 새로 고침 토큰을 반환합니다.

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; }];