기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용자 풀 토큰을 안전하게 구문 분석
Amazon Cognito 토큰의 클레임 세트는 고정되지 않습니다. 토큰에 대한 클레임은 인증 흐름, 사용자의 그룹 멤버십, 자격 증명 공급자, 사용자 풀에서 활성화하는 기능에 따라 달라집니다. Amazon Cognito는 시간이 지남에 따라 새로운 클레임을 추가하며, 새 키를 도입하지만이 가이드가 문서화하는 기존 클레임의 이름을 바꾸거나, 유형을 변경하거나, 제거하지는 않습니다. 이러한 규칙은 ID 토큰과 액세스 토큰 모두에 적용됩니다.
자체 토큰 구문 분석기를 작성하지 마십시오. JSON 웹 토큰(JWT) 라이브러리와 토큰이 증가함에 따라 계속 작동하는 JSON 구문 분석기를 사용합니다. 거의 모든 실제 중단을 방지하는 두 가지 규칙은 다음과 같습니다. 인식할 수 없는 클레임을 허용하고 읽은 각 클레임의 유형과 카디널리티를 올바르게 가정합니다.
- 인식할 수 없는 클레임 무시
-
애플리케이션에 필요한 클레임을 읽고 나머지는 그대로 둡니다. 토큰에이 가이드에 나열되지 않은 클레임이 포함된 경우 거부하거나 실패하거나 오류를 발생시키지 마세요. 새 클레임은 추가되며 목록에 없는 클레임이 포함된 토큰은 여전히 유효합니다.
- 문서화된 유형의 각 클레임 읽기
-
JSON 구문 분석기는 JSON 자체에서 각 값의 기본 유형을 식별하므로 위험은 코드가 해당 값에 대해 가정하는 것입니다. 이 가이드에서는 각 클레임을 유형 및 카디널리티로 취급합니다. 배열로 문서화된 클레임은 현재 단일 값을 보유하고 있더라도 항상 배열입니다. 문자열로 축소하지 마세요. 예를 들어 ,
cognito:roles,cognito:groupsidentities는 항상 배열입니다. 다른 사양에서 정의한 클레임에도 동일한 원칙이 적용됩니다. 예를 들어amr는 존재하는 경우 IETF 웹 사이트의 RFC 8176에 정의된 문자열 배열이므로 해당 유형으로 읽습니다. - 클레임 형식을 과도하게 검증하지 마세요.
-
클레임에 필요한 사양을 검증하고 더 이상 검증하지 않습니다. 예를 들어
sub는 고유한 문자열이지만 특정 UUID 형식일 필요는 없습니다. 와 같은 사용자 지정 클레임 내의 일부 값은 JSON 부울 또는 숫자identities가 아닌 문자열로 직렬화되며 불투명한 값은 특정 길이로 보장되지 않습니다. 설명서 상태보다 더 엄격한 형식을 적용하면 유효한 토큰이 실패합니다. - 클레임 수 또는 주문을 가정하지 마십시오.
-
토큰의 클레임은 어떤 순서로든 나타날 수 있으며, 토큰 간에 시간이 지남에 따라 개수가 변경될 수 있습니다. 각 클레임을 위치보다는 이름으로 처리하고 토큰을 고정 구조가 아닌 일반 JSON 객체로 구문 분석합니다.
- 토큰 크기 증가 예산
-
클레임 세트가 커지기 때문에 토큰의 전체 크기도 커집니다. 버퍼, 열 너비, 헤더 또는 쿠키에서 고정 또는 최대 토큰 크기를 가정하지 마십시오.
openid-configuration 검색 문서는 동일한 애디티브, 전방 호환 접근 방식을 따릅니다. 문서를 안전하게 구문 분석하는 방법에 대한 자세한 내용은 섹션을 참조하세요검색 문서 변경 준비.