ID 공급자를 Amazon Cognito와 통합한 후 OIDC 또는 소셜 ID 공급자가 발급한 토큰을 받으려면 어떻게 해야 하나요?

4분 분량
0

Amazon Cognito 사용자 풀과 통합된 ID 제공업체(idP)가 발급한 액세스 토큰 및 ID 토큰을 받고 싶습니다.

간략한 설명

OIDC(OpenID Connect) IdP 인증 흐름에서 Amazon Cognito는 IdP에서 발급한 인증 코드를 IdP 토큰과 교환합니다. 그런 다음 Amazon Cognito는 자체 토큰 세트를 준비하여 페더레이션에 성공하면 최종 사용자에게 반환합니다. 하지만 이 프로세스에서는 사용자나 애플리케이션이 실제 IdP 측 토큰을 볼 수 없습니다. 일부 사용 사례에서는 승인 또는 문제 해결을 위해 애플리케이션 내에 실제 IdP에서 발급한 토큰이 필요할 수 있습니다. Amazon Cognito 사용자 풀로 페더레이션할 때 IdP에서 발급한 액세스 및 ID 토큰을 캡처하고 저장하려면 해결 섹션의 단계를 따르세요.

중요: 이 문서의 단계에서는 이미 OIDC IdP 또는 소셜 IdP를 Amazon Cognito 사용자 풀과 통합했다고 가정합니다. IdP를 사용자 풀과 통합하지 않은 경우 서드 파티를 통해 사용자 풀 로그인 추가에 대한 단계를 따르세요.

해결 방법

사용자 풀에 사용자 지정 속성 생성

사용자 풀에 사용자 지정 속성을 생성하려면 다음 단계를 따르세요.

1.    새 Amazon Cognito 콘솔을 연 다음 사용자 풀에서 가입 경험 탭을 선택합니다.

2.    사용자 지정 속성 섹션에서 사용자 지정 속성 추가 버튼을 선택합니다.

3.    액세스 토큰의 사용자 지정 속성을 만들려면 다음 값을 입력한 다음 변경 내용을 저장합니다.

  • 이름: access_token
  • 유형: 문자열
  • 최대: 2,048
  • 변경 가능: 이 확인란 선택

4.    ID 토큰의 사용자 지정 속성을 만들려면 다음 값을 입력한 다음 변경 내용을 저장합니다.

  • 이름: id_token
  • 유형: 문자열
  • 최대: 2,048
  • 변경 가능: 이 확인란 선택

Amazon Cognito와 IdP 간 속성 매핑 구성

IdP 속성에 대한 속성 매핑을 구성하려면 다음 단계에 따르세요.

1.    새 Amazon Cognito 콘솔을 연 다음 사용자 풀에서 로그인 경험 탭을 선택합니다.

2.    페더레이션 ID 공급자 로그인 섹션의 목록에서 IdP를 선택합니다.

3.    ID 공급자 정보 섹션 근처의 편집 옵션을 선택합니다. 인증된 범위 섹션에 다음 범위가 있는지 확인하세요.

  • Facebook 예시 범위: 예제 범위: public_profile, email
  • Google 예시 범위: profile email openid
  • Amazon으로 로그인 예시 범위: profile postal_code
  • Apple로 로그인 예시 범위: email name
  • 기타 모든 OIDC 제공자 예시 범위: profile email openid

4.    한 단계 뒤로 돌아가 ID 공급자 페이지로 이동합니다. 속성 매핑 섹션 근처의 편집을 선택합니다.

5.    사용자 풀 속성 열에서 처음에 생성한 사용자 지정 속성을 선택합니다.

6.    OpenID 연결 속성 열에서 매핑할 토큰 유형에 따라 access_token 또는 id_token을 선택합니다. 그런 다음 변경 사항을 저장합니다.

속성 매핑 구성의 예시:

사용자 풀 속성: custom:id_token
OpenID Connect 속성: id_token

사용자 풀 속성: custom:access_token
OpenID Connect 속성: access_token

Amazon Cognito 앱 클라이언트에서 속성 읽기 및 쓰기 권한 활성화

사용자가 애플리케이션에 로그인하면 Amazon Cognito는 매핑된 속성을 업데이트합니다. Amazon Cognito가 매핑된 사용자 풀 속성을 업데이트하려면 애플리케이션의 앱 클라이언트 설정에서 매핑된 속성을 쓸 수 있어야 합니다. Amazon Cognito가 사용자의 ID 토큰을 업데이트하려면 애플리케이션의 앱 클라이언트 설정에서 속성을 읽을 수 있어야 합니다.

1.    새 Amazon Cognito 콘솔을 연 다음 사용자 풀에서 앱 통합 탭을 선택합니다.

2.    앱 클라이언트 목록에서 앱 클라이언트를 선택합니다.

3.    속성 읽기 및 쓰기 권한 섹션에서 편집을 선택합니다.

4.    속성 읽기 및 쓰기 권한 편집 페이지에서 사용자 지정 속성의 읽기쓰기 확인란을 선택합니다.

5.    변경 사항을 저장합니다.

사용자 지정 속성을 사용하는 각 앱 클라이언트에 대해 이 단계를 반복합니다.

자세한 내용은 사용자 풀 속성을 참조하고 속성 권한 및 범위 탭으로 이동하세요.

서드 파티 OIDC 제공자 또는 소셜 IdP를 사용하여 로그인

Amazon Cognito 호스팅 UI를 통해 새 IdP 인증을 수행하면 사용자 지정 속성에서 IdP 토큰을 볼 수 있습니다. 적절한 사용자를 선택하면 해당 속성에서 IdP 토큰을 확인할 수 있습니다. ID 토큰을 디코딩하면 IdP 토큰이 포함된 사용자 지정 속성도 제공됩니다.

최종 사용자에게 발급된 ID 토큰의 샘플 페이로드 섹션:

{
    "custom:access_token": "ya29.a0AeTM1ic9iv_FqpDQeIN......w1OPKdFEbR_Tea",
    "iss": "https://cognito-idp.example_region.amazonaws.com/example_user_pool_id",
    "custom:id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjhjMjdkYjRkMTN............saDMuZ29vZ2xldXNlcmNv"
}

사용자 지정 속성을 생성할 때 다음 사항에 유의하세요.

  • 모든 사용자 지정 속성의 최대 길이는 2,048자입니다. IdP 토큰이 2,048자를 초과하면 "String attributes cannot have a length of more than 2048" 오류 메시지가 표시됩니다.
  • 사용자 지정 속성을 생성한 후에는 제거하거나 수정할 수 없습니다.
  • 이후 로그인에서 사용자 지정 속성이 업데이트되지 않는 경우 사용자 지정 속성의 변경 가능성을 확인하세요. 이 문제는 속성을 만들 때 변경 가능 확인란의 선택을 취소한 후에 발생할 수 있습니다. 자세히 알아보려면 사용자 풀 속성 참조하고 사용자 지정 속성 탭으로 이동하세요.

참고: 이전 단계를 수행한 후에도 IdP 토큰을 받을 수 없다면 IdP에 문의하세요. IdP가 속성 내의 토큰을 Amazon Cognito로 전달하는 것을 지원하는지 물어보세요. 확인한 후 AWS Support에 문의하여 추가 문제 해결을 요청할 수 있습니다.


관련 정보

Amazon Cognito 사용자 풀에서 Auth0를 OIDC 공급자로 설정하려면 어떻게 해야 하나요?

Amazon Cognito 사용자 풀에서 LinkedIn을 소셜 ID 공급자로 설정하려면 어떻게 해야 하나요?

Amazon Cognito 사용자 풀에서 Okta를 OpenID Connect ID 공급자로 설정하려면 어떻게 해야 하나요?

Amazon Cognito 사용자 풀에서 Google을 페더레이션 ID 공급자로 설정하려면 어떻게 해야 하나요?

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음