본문 바로가기

Dot ./개인 공부 기록용

[AWS] AWS Cognito의 Hosting UI 커스텀 사용하는 것이 좋을까?

    AWS Cognito 사용

    Amazon Cognito는 경쟁력있는 가격으로 수백만 명의 사용자로 확장 할 수있는 사용자 디렉터리를 제공한다.

     

    Amazon Cognito 호스팅 UI를 사용한 가입 및 로그인 링크

     

    Amazon Cognito 호스팅 UI를 사용한 가입 및 로그인 - Amazon Cognito

    Facebook, Amazon, Google 또는 Apple과 같은 외부 자격 증명 공급자(IdP)뿐 아니라 OpenID Connect(OIDC) 또는 SAML IdP를 통해 로그인하려면 먼저 다음 단원의 설명과 같이 이러한 항목을 구성한 다음, 앱 클라이

    docs.aws.amazon.com

     

     

    Cognito 사용자들이 해당 서비스를 좋아하는 이유

    • 단순성
    • 견고성
    • 다른 AWS 서비스와의 사전 통합

     

    Cognito는 기본 웹 UI와 함께 제공된다.

    → Amplify SDK와 함께 사용하면 웹 앱에 권한 부여 환경을 간단하게 추가 할 수 있다.

    → 코드 몇 줄을 추가하게 되면 사용자에게 보안적인 웹 환경을 제공할 수 있다.

     

    호스팅 UI에 대한 문제점

    • UI는 약간 올드한 느낌이 들고 전체적인 분위기는 제한된 범위안에서 커스텀할 수 있다 ( ticket ).
    • UI는 영어로만 제공되며 다른 언어 ( ticket )는 지원하지 않는다.
    • UI는 Cognito의 대소 문자를 구분하는 사용자 이름 / 이메일 일치 ( ticket )에 대한 해결 방법을 구현할 수있다 -> 하지만 지원해주지 않는다. (사용자는 대/소문자 구분해주지만 이메일은 해주지 않는다)
    • multi-tenant 애플리케이션에서 각 tenant에는 데이터 분리, 암호 정책, SAML 지원 등을 위해 자체 Cognito 사용자 풀이 필요하다. 그러나 Cognito는 호스팅 UI에 대해 계정 당 최대 4 개의 사용자 지정 도메인을 지원한다 ( 문서 ). 즉, 사용자는 tenant.your-company.com처음 4 개의 테넌트  대해서만 UI에 액세스 할 수 있다.

     

    →  요약하면, "표준 영역"을 벗어나면 Cognito 호스팅 UI를 교체해야 할 이유가 많다.

     

    Cognito 호스팅 UI 쉬울 것 같은데 왜?

     

    UI 교체는 "입력 상자 2개, 제출 버튼 및 클릭 핸들러. 뭐 이정도만 해도 되겠지" 라고 생각하며 그렇게 어렵지 않겠다고 생각할 수도 있다.

     

    하지만 틀렸다

    로그인 실패, 비밀번호 복구, MFA, SAML/AD, 오류 상태 등, 사용자 이름/비밀번호 입력 화면과 함께 더 많은 화면과 플로우가 존재한다. 어떤 개발자는 그 너머에는 훨씬 더 큰 도전이 숨어 있다고 한다.

     

    UI편하게 쓰려고 사용했다가 맘에 안들어서 커스텀을 하게되면 배보다 배꼽이 커지는 느낌이다.

    Cognito Hosted UI는 UI보다 훨씬 더 갈길이 멀다. Cognito API가 지원하는 full blown(완벽히 개발된) OAuth 서버이다.

     

    Cognito Hosted UI에서 처리하는 항목 예시로는 아래와 같이 여러 개가 있다.

    1. 액세스 토큰을 웹 응용 프로그램으로 리디렉션
    2. URL 유효성 검사 리디렉션
    3. SAML 플로우

    →  호스트된 UI를 교체하려면 이러한 기능도 재구축해야 한다.

     


    ※ 참고사이트

    docs.aws.amazon.com/ko_kr/cognito/latest/developerguide/cognito-user-pools-app-integration.html