신뢰할 수 있는 토큰 발급자를 사용하여 애플리케이션 사용 - AWS IAM Identity Center

신뢰할 수 있는 토큰 발급자를 사용하여 애플리케이션 사용

신뢰할 수 있는 토큰 발급자를 사용하면 AWS 외부에서 인증하는 애플리케이션에 신뢰할 수 있는 ID 전파를 사용할 수 있습니다. 신뢰할 수 있는 토큰 발급자를 사용하면 이러한 애플리케이션이 사용자를 대신하여 AWS 관리형 애플리케이션에 대한 액세스를 요청할 권한을 부여할 수 있습니다.

다음 주제에서는 신뢰할 수 있는 토큰 발급자의 작동 방식을 설명하고 설정 지침을 제공합니다.

신뢰할 수 있는 토큰 발급자 개요

신뢰할 수 있는 ID 전파는 AWS 외부에서 인증하는 애플리케이션이 신뢰할 수 있는 토큰 발급자를 사용하여 사용자 대신 요청할 수 있도록 메커니즘을 제공합니다. 신뢰할 수 있는 토큰 발급자는 서명된 토큰을 생성하는 OAuth 2.0 권한 부여 서버입니다. 이러한 토큰은 AWS 서비스(수신 애플리케이션)에 대한 액세스 요청을 시작하는 애플리케이션(요청 애플리케이션)에 권한을 부여합니다. 요청 애플리케이션은 신뢰할 수 있는 토큰 발급자가 인증한 사용자 대신 액세스 요청을 시작합니다. 사용자는 신뢰할 수 있는 토큰 발급자와 IAM Identity Center 모두에 알려져 있습니다.

요청을 받는 AWS 서비스는 Identity Center 디렉터리에 표시된 사용자 및 그룹 구성원 자격을 기반으로 리소스에 대한 세분화된 권한 부여를 관리합니다. AWS 서비스는 외부 토큰 발급자의 토큰을 직접 사용할 수 없습니다.

이 문제를 해결하기 위해 IAM Identity Center는 요청 애플리케이션 또는 요청 애플리케이션에서 사용하는 AWS 드라이버가 신뢰할 수 있는 토큰 발급자가 발행한 토큰을 IAM Identity Center에서 생성한 토큰으로 교환하는 방법을 제공합니다. IAM Identity Center에서 생성된 토큰은 해당 IAM Identity Center 사용자를 참조합니다. 요청 애플리케이션 또는 드라이버는 새 토큰을 사용하여 수신 애플리케이션에 대한 요청을 시작합니다. 새 토큰은 IAM Identity Center의 해당 사용자를 참조하므로 수신 애플리케이션은 IAM Identity Center에 표시된 사용자 또는 그룹 구성원 자격을 기반으로 요청된 액세스 권한을 부여할 수 있습니다.

중요

신뢰할 수 있는 토큰 발급자로 추가할 OAuth 2.0 권한 부여 서버를 선택하는 것은 신중한 고려가 필요한 보안 결정입니다. 신뢰할 수 있는 토큰 발급자만 선택하여 다음 작업을 수행하세요.

  • 토큰에 지정된 사용자를 인증합니다.

  • 수신 애플리케이션에 대한 해당 사용자의 액세스 권한을 부여합니다.

  • IAM Identity Center에서 IAM Identity Center 생성 토큰으로 교환할 수 있는 토큰을 생성합니다.

신뢰할 수 있는 토큰 발급자의 사전 조건 및 고려 사항

신뢰할 수 있는 토큰 발급자를 설정하기 전에 다음 사전 조건 및 고려 사항을 검토합니다.

  • 신뢰할 수 있는 토큰 발급자 구성

    OAuth 2.0 권한 부여 서버(신뢰할 수 있는 토큰 발급자)를 구성해야 합니다. 신뢰할 수 있는 토큰 발급자는 일반적으로 IAM Identity Center의 ID 소스로 사용하는 ID 제공업체이지만 반드시 그럴 필요는 없습니다. 신뢰할 수 있는 토큰 발급자를 설정하는 방법에 대한 자세한 내용은 관련 ID 제공업체 설명서를 참조하세요.

    참고

    신뢰할 수 있는 토큰 발급자의 각 사용자 ID를 IAM Identity Center의 해당 사용자에 매핑하는 한 IAM Identity Center에서 사용할 신뢰할 수 있는 토큰 발급자를 최대 10개까지 구성할 수 있습니다.

  • 토큰을 생성하는 OAuth 2.0 권한 부여 서버(신뢰할 수 있는 토큰 발급자)에는 IAM Identity Center에서 토큰 서명을 확인하기 위한 퍼블릭 키를 획득하는 데 사용할 수 있는 OpenID Connect(OIDC) 검색 엔드포인트가 있어야 합니다. 자세한 내용은 OIDC 검색 엔드포인트 URL(발급자 URL) 섹션을 참조하세요.

  • 신뢰할 수 있는 토큰 발급자가 발급한 토큰

    신뢰할 수 있는 토큰 발급자의 토큰은 다음 요구 사항을 충족해야 합니다.

    • 토큰은 서명되고 RS256 알고리즘을 사용한 JSON 웹 토큰(JWT) 형식이어야 합니다.

    • 토큰에는 다음 클레임이 포함되어야 합니다.

      • 발급자(iss)-토큰을 발급한 엔터티입니다. 이 값은 신뢰할 수 있는 토큰 발급자의 OIDC 검색 엔드포인트(발급자 URL)에 구성된 값과 일치해야 합니다.

      • 제목(sub)-인증된 사용자입니다.

      • 대상(aud)-토큰의 의도된 수신자입니다. 이 서비스는 토큰을 IAM Identity Center의 토큰으로 교환한 후 액세스할 수 있는 AWS 서비스입니다. 자세한 내용은 aud 클레임 섹션을 참조하세요.

      • 만료 시간(exp)-토큰이 만료된 이후의 시간입니다.

    • 토큰은 ID 토큰 또는 액세스 토큰일 수 있습니다.

    • 토큰에는 IAM Identity Center 사용자 한 명에게 고유하게 매핑될 수 있는 속성이 있어야 합니다.

  • 선택적 클레임

    IAM Identity Center는 RFC 7523에 정의된 모든 선택적 클레임을 지원합니다. 자세한 내용은 이 RFC의 섹션 3: JWT 형식 및 처리 요구 사항을 참조하세요.

    예를 들어 토큰에는 JTI(JWT ID) 클레임이 포함될 수 있습니다. 이 클레임이 있는 경우 동일한 JTI를 가진 토큰을 토큰 교환에 재사용할 수 없게 됩니다. JTI 클레임에 관한 자세한 내용은 JTI 클레임 세부 정보의 내용을 참조하세요.

  • 신뢰할 수 있는 토큰 발급자에서 사용하도록 IAM Identity Center 구성

    또한 IAM Identity Center를 활성화하고, IAM Identity Center의 ID 소스를 구성하고, 신뢰할 수 있는 토큰 발급자 디렉터리의 사용자에 해당하는 사용자를 프로비저닝해야 합니다.

    이렇게 하려면 다음을 수행해야 합니다.

    • SCIM(System for Cross-domain Identity Management) 2.0 프로토콜을 사용하여 IAM Identity Center와 사용자를 동기화합니다.

    • IAM Identity Center에서 직접 사용자를 생성합니다.

    참고

    Active Directory 도메인 서비스를 ID 소스로 사용하는 경우 신뢰할 수 있는 토큰 발급자는 지원되지 않습니다.

JTI 클레임 세부 정보

IAM Identity Center가 IAM Identity Center에서 이미 교환한 토큰을 교환하는 요청을 받으면 요청은 실패합니다. 토큰 교환을 위한 토큰 재사용을 감지하고 방지하려면 JTI 클레임을 포함시킬 수 있습니다. IAM Identity Center는 토큰의 클레임을 기반으로 토큰의 재사용을 방지합니다.

모든 OAuth 2.0 권한 부여 서버가 토큰에 JTI 클레임을 추가하는 것은 아닙니다. 일부 OAuth 2.0 권한 부여 서버는 JTI를 사용자 지정 클레임으로 추가하는 것을 허용하지 않을 수 있습니다. JTI 클레임 사용을 지원하는 OAuth 2.0 권한 부여 서버는 이 클레임을 ID 토큰에만 추가하거나 액세스 토큰에만 추가하거나 둘 모두에 추가할 수 있습니다. 자세한 내용은 OAuth 2.0 권한 부여 서버 설명서를 참조하세요.

토큰을 교환하는 애플리케이션을 빌드하는 방법에 대한 자세한 내용은 IAM Identity Center API 설명서를 참조하세요. 올바른 토큰을 획득하고 교환하도록 고객 관리형 애플리케이션을 구성하는 방법에 대한 자세한 내용은 애플리케이션 설명서를 참조하세요.