Amazon Web Services 한국 블로그
Amazon Cognito, 사용자 풀(User Pools) 정식 서비스 개시
몇달 전에 Amazon Cognito 사용자 풀(User Pools) 기능에 대해 소개했습니다. 당시에는 사용자 모바일 앱과 웹 앱으로 가입이나 로그인에 본 기능을 사용하는 방법에 대해 설명했습니다. 완전 관리형 사용자 디렉토리를 통해 수 억 명의 사용자 데이터를 관리할 수 있고, 각 AWS 계정에서 여러 디렉토리를 사용할 수 있습니다. 사용자 풀은 바로 몇 분 안에 만들 수 있으며, 신규 고객이 여러분의 응용 프로그램 또는 서비스에 가입 할 때 필요한 속성(주소, 이메일, 성별, 전화 번호 및 사용자 지정 특성 등)의 입력 방식을 지정할 수 수 있습니다. 보안 측면에서는 원하는대로 암호 강도를 제공하거나, Multi-Factor Authentication (MFA)의 사용 강제와 사용자의 전화 번호 또는 이메일 주소 확인 방법을 요청할 수 있습니다.
정식 서비스 시작
사용자 풀 서비스 공개 베타를 시작한 이후, 수 많은 훌륭한 피드백을 받았습니다. 그리고 오늘 사용자 풀 서비스를 정식으로 제공하면서, 몇 가지 기능을 더 추가합니다.
- Device Remembering – Cognito는 각 사용자가 장치에서 로그인했는지 저장 가능
- User Search – 속성에 따라 사용자 풀에서 사용자 검색 가능
- Customizable Email Addresses – 사용자 풀에 사용자의 이메일 주소 관리 가능
- Attribute Permissions – 각 사용자의 특성을 세밀하게 설정 가능
- Custom Authentication Flow – 새로운 API와 Lambda 트리거를 사용하여 로그인 흐름 조정 가능
- Admin Sign-in – 백엔드 서버와 Lambda 함수에서 사용자 앱에 로그인 가능
- Global Sign-out – 로그인하고있는 모든 장치와 브라우저에서 사용자가 강제 로그 아웃
- Custom Expiration Period – 토큰 업데이트에 유효 기간 설정 가능
- API Gateway Integration – 사용자 풀을 사용하여 Amazon API Gateway 요청 승인 가능
- New Regions – 신규 리전 출시
다음 각 새로운 기능에 대한 자세한 내용 알아봅니다.
Device Remembering
Cognito에서 각 사용자가 로그인에 사용 된 디바이스의 일련 번호를 기록 할 수 있게되었습니다. 사용자 풀 개발자는 작업 요청을 사용자에게 부여하는 옵션이 있습니다. 사용자 풀에서 MFA를 사용하고있는 경우, 기록된 장치에서 MFA 코드 입력 요구를 취소 할 수 있습니다. 이렇게 하면, 인식되지 않은 디바이스는 MFA 코드를 입력해야하고, 저장된 디바이스의 로그인 프로세스를 단순화 할 수 있습니다. 또한, 사용자 장치 목록을 통해 원격으로 로그 아웃 할 수 있습니다. 사용자 풀을 만들 때, 이 기능을 사용하거나 사용자 정의로 제공할 수 있습니다.
새로운 사용자 풀을 만들 때, 이 기능을 활성화하고 설정하는 방법은 다음을 참조하십시오. 우선, [Always] 또는 [User Opt-in]을 클릭하여, 이 기능을 활성화합니다.
디바이스 저장 설정에서 MFA를 숨길 지 여부를 결정합니다.
AWS Mobile SDK for iOS, Android, JavaScript 라이브러리에서 디바이스 저장을 위한 응용 프로그램 호출 방법을 제공합니다.
User Search
사용자 풀 개발자는 다음과 같은 특성에 따라 사용자를 검색 할 수 있습니다. username
, given_name
, family_name
, name
, preferred_user_name
, email
, phone_number
, status
또는 user_status
.
완전 일치 또는 접두사 일치 방식으로 검색 하려면 AWS Management Console , ListUsers
API 함수 또는 list-users
커맨드 라인 도구를 사용합니다. 콘솔에서 검색하는 경우는 아래와 같습니다.
Customizable Email Addresses
사용자와 통신에 사용하는 이메일 주소를 보낸 사람과 답장 방식을 특정 할 수 있습니다. 새로운 사용자 풀을 만들 때 주소를 확인하는 경우, 아래와 같습니다.
본 기능 사용 전에 Amazon Simple Email Service (SES) 에서 보낸 사람의 주소를 확인해야합니다 (자세한 내용은 Verifying Email Addresses in Amazon SES 를 참조하십시오).
Attribute Permissions
각 사용자 속성에서 각 앱의 읽기 및 쓰기 권한을 설정 할 수 있습니다. 이를 통해 어떤 응용 프로그램이 사용자에 저장되어 있는지 여부나 어떤 특성을 보거나 변경할 수 있는지 여부를 관리 할 수 있습니다. 예를 들어, 사용자가 잠재 고객인지 아닌지와 같은 속성을 정의 할 수 있습니다.
앱을 통해 속성을 볼 수 있지만 직접 변경할 수 없습니다. 대신 관리 도구 또는 백그라운드 프로세스를 사용하여 속성을 업데이트합니다. Console, API CLI에서 사용자 속성 권한을 설정할 수 있습니다.
Custom Authentication Flow
인증에 대한 새로운 API 함수를 사용할 수 있게 되었습니다. ( InitiateAuth
과 RespondToAuthChallenge
). 그 외에도 세 개의 새로운 Lambda 트리거를 사용하여 자신의 로그인 흐름과 기존 프로세스를 정의 할 수 있습니다. 예를 들면, 경험 수준이 다른 사용자 위치 별, 보안 조건 별 등을 대상으로 사용자 흐름을 정의 할 수 있습니다. 필요에 따라 특정 사용자 또는 모든 사용자에게 CAPTCHA 사용을 요구할 수도 있습니다.
새로운 Lambda 트리거 유형은 아래의 세가지 입니다.
- Define Auth Challenge – 사용자 인증 절차 정의
- Create Auth Challenge – 사용자 인증 절차 시작
- Verify Auth Challenge Response – 사용자 인증 절차 유효성 확인
다음과 같이 Console에서 트리거를 설정할 수 있습니다.
Global Sign-out
로그인 된 모든 장치에서 로그 아웃하는 옵션을 사용자에게 제공 할 수 있게 되었습니다. 유효 기간 만료가 아니라 호출되지 않은 액세스 토큰을 사용하여 GlobalSignOut 함수를 호출 할 수 있습니다. 개발자 Pool ID와 username을 사용하여 AdminUserGlobalSignOut 함수를 호출하여 모든 사용자가 원격으로 로그 아웃시킬 수 있습니다.
Custom Expiration Period
Cognito 로그인은 “업데이트” 토큰을 사용하기 때문에 모바일 앱을 열 때마다 로그인 할 필요가 없습니다. 기본적으로 토큰은 30 일이 지나면 만료됩니다. 하지만, 보안성과 편리함의 균형을 알맞게 유지하기 위해 각 사용자 풀을 생성하는 갱신 토큰의 유효 기간을 사용자 설정할 수 있게되었습니다.
API Gateway Integration
API 요청을 인증하기 위해 Cognito 사용자 풀 Amazon API Gateway 와 긴밀하게 협력하고 대처할 수있게되었습니다. ID 토큰을 받아 API Gateway를 설정하고 사용자 풀에서 사용자 상황을 인증 할 수 있습니다. 이 경우 먼저 사용자 풀을 참고하여 아이덴티티 토큰을 포함한 요청 헤더를 선택하고 Cognito User Pool Authorizer를 만듭니다.
원하는 방법으로 접근 해 새로운 인증을 선택합니다.
신규 리전 및 정식 서비스
이번 출시와 함께 US West (Oregon) 지역에서도 Cognito를 이용할 수있게되었습니다. 이미 이용 가능한 US East (Northern Virginia) 지역 외에 Europe (Ireland), US West (Oregon), Asia Pacific (Tokyo) 리전에서도 Your User Pools를 사용하실 수 있습니다.
좀 더 자세한 내용은 Getting Started with Your User Pools in Amazon Cognito(영문 동영상)을 참조하십시오.
– Jeff;
이 글은 Amazon Cognito Your User Pools – Now Generally Available의 한국어 번역입니다.