기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
OIDC 사용자 풀 IdP 인증 흐름
OpenID Connect(OIDC) 로그인을 사용하면 사용자 풀이 ID 제공업체(IdP)를 통한 권한 부여 코드 로그인 흐름을 자동화합니다. 사용자가 IdP로 로그인을 완료하면 Amazon Cognito는 외부 제공업체의 oauth2/idpresponse
엔드포인트에서 코드를 수집합니다. 생성된 액세스 토큰을 사용하여 사용자 풀은 IdP userInfo
엔드포인트를 쿼리하여 사용자 속성을 검색합니다. 그런 다음 사용자 풀은 수신된 속성을 설정한 속성 매핑 규칙과 비교하고 그에 따라 사용자의 프로필과 ID 토큰을 채웁니다.
OIDC 제공업체 구성에서 요청하는 OAuth 2.0 범위는 IdP가 Amazon Cognito에 제공하는 사용자 속성을 정의합니다. 가장 좋은 방법은 사용자 풀에 매핑하려는 속성에 해당하는 범위만 요청하는 것입니다. 예를 들어 사용자 풀이 openid profile
을 요청하면 가능한 모든 속성을 얻을 수 있지만 openid email
phone_number
를 요청하면 사용자의 이메일 주소와 전화번호만 가져옵니다. OIDC IdP에서 요청하는 범위가 앱 클라이언트 및 사용자 풀 인증 요청에서 승인하고 요청하는 범위와 달라지도록 구성할 수 있습니다.
사용자가 OIDC IdP를 사용하여 애플리케이션에 로그인하면 사용자 풀은 다음과 같은 인증 흐름을 수행합니다.
-
사용자가 Amazon Cognito 기본 로그인 페이지로 이동하면 OIDC IdP(예: Salesforce)를 통해 로그인할 수 있는 옵션이 제공됩니다.
-
사용자가 OIDC IdP의
authorization
엔드포인트로 리디렉션됩니다. -
사용자 인증 후 OIDC IdP에서 인증 코드를 사용하여 Amazon Cognito로 리디렉션합니다.
-
Amazon Cognito는 OIDC IdP의 인증 코드를 액세스 토큰으로 교환합니다.
-
Amazon Cognito는 사용자 풀에서 사용자 계정을 생성하거나 업데이트합니다.
-
Amazon Cognito는 자격 증명, 액세스 권한 및 새로 고침 토큰이 포함될 수 있는 애플리케이션 보유자 토큰을 발행합니다.

참고
Amazon Cognito는 5분 이내에 완료되지 않은 인증 요청을 취소하고 사용자를 관리형 로그인으로 리디렉션합니다. 페이지에 Something
went wrong
오류 메시지가 표시됩니다.
OIDC는 OAuth 2.0에 있는 자격 증명 레이어로서, IdP가 OIDC 클라이언트 앱(신뢰 당사자)에 발행하는 JSON 형식(JWT) 자격 증명 토큰을 지정합니다. Amazon Cognito를 OIDC 신뢰 당사자로 추가하는 방법은 OIDC IdP 문서를 참조하세요.
사용자가 인증 코드 부여를 통해 인증할 때 사용자 풀이 ID, 액세스 및 새로 고침 토큰을 반환합니다. ID 토큰은 자격 증명 관리용 표준 OIDC
사용자 풀이 OIDC 제공업체의 클레임을 처리하는 방법
사용자가 타사 OIDC 공급자로 로그인을 완료하면 관리형 로그인은 IdP에서 권한 부여 코드를 검색합니다. 사용자 풀은 액세스 및 ID 토큰의 권한 부여 코드를 IdP의 token
엔드포인트와 교환합니다. 사용자 풀은 이러한 토큰을 사용자 또는 앱에 전달하지 않지만, 이를 사용하여 자체 토큰의 클레임에 표시되는 데이터로 사용자 프로필을 구축합니다.
Amazon Cognito는 액세스 토큰을 독립적으로 검증하지 않습니다. 대신 제공업체 userInfo
엔드포인트에서 사용자 속성 정보를 요청하고 토큰이 유효하지 않을 경우 요청이 거부될 것으로 예상합니다.
Amazon Cognito는 다음 확인을 통해 제공업체 ID 토큰을 검증합니다.
-
제공업체가 RSA, HMAC, Elliptic Curve 세트의 알고리즘을 사용하여 토큰에 서명했는지 확인합니다.
-
제공업체가 비대칭 서명 알고리즘으로 토큰에 서명한 경우 토큰
kid
클레임의 서명 키 ID가 제공업체jwks_uri
엔드포인트에 나열되어 있는지 확인합니다. -
ID 토큰 서명을 제공업체 메타데이터를 기반으로 예상하는 서명과 비교합니다.
-
iss
클레임을 IdP용으로 구성된 OIDC 발급자와 비교합니다. -
aud
클레임이 IdP에 구성된 클라이언트 ID와 일치하는지 또는aud
클레임에 여러 값이 있는 경우 구성된 클라이언트 ID가 포함되어 있는지 비교합니다. -
exp
클레임의 타임스탬프가 현재 시간 이전이 아닌지 확인합니다.
사용자 풀은 ID 토큰을 검증한 다음 제공업체 액세스 토큰으로 제공업체 userInfo
엔드포인트에 요청을 시도합니다. 액세스 토큰의 범위에 따라 읽기 권한이 부여된 모든 사용자 프로필 정보를 검색합니다. 그런 다음 사용자 풀은 사용자 풀에서 필요에 따라 설정한 사용자 속성을 검색합니다. 필수 속성에 대해서는 제공업체 구성에서 속성 매핑을 생성해야 합니다. 사용자 풀은 제공업체 ID 토큰과 userInfo
응답을 확인합니다. 사용자 풀은 매핑 규칙과 일치하는 모든 클레임을 사용자 풀 사용자 프로필의 사용자 속성에 기록합니다. 사용자 풀은 매핑 규칙과 일치하지만 필수는 아니며 제공업체의 클레임에도 없는 속성은 무시합니다.