SAML 2.0 및 OAuth 2.0 애플리케이션에 대한 Single Sign-On 액세스
IAM Identity Center를 사용하면 사용자에게 SAML 2.0 또는 OAuth 2.0 애플리케이션에 대한 Single Sign-On 액세스를 제공할 수 있습니다. 다음 주제에서는 SAML 2.0 및 OAuth 2.0에 관한 대략적인 개요를 제공합니다.
SAML 2.0
SAML 2.0은 SAML 기관(ID 제공업체 또는 IdP라고 함)과 SAML 2.0 소비자(서비스 제공업체 또는 SP라고 함) 간에 사용자에 대한 정보를 전달하는 SAML 어설션을 안전하게 교환하는 데 사용되는 업계 표준입니다. IAM Identity Center는 이 정보를 사용하여 AWS 액세스 포털 내에서 애플리케이션을 사용할 권한이 있는 사용자에게 페더레이션된 Single Sign-on 액세스를 제공합니다.
OAuth 2.0
OAuth 2.0은 애플리케이션이 암호를 공유하지 않고도 사용자 데이터에 안전하게 액세스하고 공유할 수 있게 해주는 프로토콜입니다. 이 기능은 사용자가 애플리케이션이 리소스에 액세스하도록 허용할 수 있는 안전하고 표준화된 방법을 제공합니다. 액세스는 다양한 OAuth 2.0 승인 플로우를 통해 작동합니다.
IAM Identity Center를 사용하면 퍼블릭 클라이언트에서 실행되는 애플리케이션이 사용자를 대신하여 프로그래밍 방식으로 액세스 AWS 계정 및 서비스를 위한 임시 자격 증명을 검색할 수 있습니다. 퍼블릭 클라이언트는 일반적으로 로컬에서 애플리케이션을 실행하는 데 사용되는 데스크톱, 노트북 또는 기타 모바일 디바이스입니다. 퍼블릭 클라이언트에서 실행되는 AWS 애플리케이션의 예로는 AWS Command Line Interface (AWS CLI), AWS Toolkit및 AWS 소프트웨어 개발 키트(SDK)가 있습니다. 이러한 애플리케이션이 자격 증명을 획득할 수 있도록 IAM Identity Center는 다음 OAuth 2.0 흐름의 일부를 지원합니다.
참고
이러한 권한 부여 유형은 이 기능을 지원하는 AWS 서비스에서만 사용할 수 있습니다. 이러한 서비스는 모든 AWS 리전에서 이러한 권한 부여 유형을 지원하지 않을 수 있습니다. 지역별 차이점에 대한 AWS 서비스 관련 설명서를 참조하세요.
OpenID Connect(OIDC)는 OAuth 2.0 프레임워크를 기반으로 하는 인증 프로토콜입니다. OIDC는 인증에 OAuth 2.0을 사용하는 방식을 지정합니다. IAM Identity Center OIDC 서비스 API를 통해 애플리케이션은 OAuth 2.0 클라이언트를 등록하고 이러한 흐름 중 하나를 사용하여 IAM Identity Center 보호 API에 대한 권한을 제공하는 액세스 토큰을 획득합니다. 애플리케이션은 의도한 API 사용자를 선언할 액세스 범위를 지정합니다. IAM Identity Center 관리자로서 ID 소스를 구성한 후 애플리케이션 최종 사용자가 아직 로그인하지 않은 경우 해당 최종 사용자가 로그인 프로세스를 완료해야 합니다. 그런 다음 최종 사용자는 애플리케이션이 API를 호출하도록 허용하는 데 동의해야 합니다. 이러한 API 호출은 사용자의 권한을 사용하여 수행됩니다. 이에 대한 응답으로 IAM Identity Center는 사용자가 동의한 액세스 범위가 포함된 액세스 토큰을 애플리케이션에 반환합니다.
OAuth 2.0 권한 부여 흐름 사용
OAuth 2.0 권한 부여 흐름은 흐름을 지원하는 AWS 관리형 애플리케이션을 통해서만 사용할 수 있습니다. OAuth 2.0 흐름을 사용하려면 IAM Identity Center 인스턴스와 사용 중인 지원되는 AWS 관리형 애플리케이션을 단일 AWS 리전에 배포해야 합니다. AWS 관리형 애플리케이션의 리전별 가용성과 사용하려는 IAM Identity Center의 인스턴스를 확인하려면 각각의 AWS 서비스에 대한 문서를 참조하세요.
OAuth 2.0 흐름을 사용하는 애플리케이션을 사용하려면 최종 사용자가 애플리케이션이 연결될 URL을 입력하고 IAM Identity Center 인스턴스를 등록해야 합니다. 애플리케이션에 따라 관리자는 사용자에게 IAM Identity Center 인스턴스의 AWS 액세스 포털 URL 또는 발급자 URL을 제공해야 합니다. IAM Identity Center 콘솔
애플리케이션에 로그인하고 동의를 제공하기 위한 최종 사용자 경험은 애플리케이션이 PKCE를 통한 권한 부여 코드 허용과 디바이스 인증 권한 허용 중 어떤 것을 사용하는지에 따라 달라집니다.
PKCE를 통한 권한 부여 코드 허용
이 흐름은 브라우저가 있는 디바이스에서 실행되는 애플리케이션에서 사용됩니다.
-
브라우저 창이 열립니다.
-
사용자가 인증하지 않은 경우 브라우저는 사용자 인증을 완료하도록 리디렉션합니다.
-
인증 후 동의 화면이 표시되며 해당 화면에는 다음 정보가 표시됩니다.
-
애플리케이션 이름
-
애플리케이션이 사용에 대한 동의를 요청하는 액세스 범위
-
-
사용자는 동의 프로세스를 취소하거나 동의를 제공할 수 있으며 애플리케이션은 사용자의 권한에 따라 액세스를 진행합니다.
디바이스 인증 권한 허용
이 흐름은 브라우저가 있거나 없는 디바이스에서 실행되는 애플리케이션에서 사용할 수 있습니다. 애플리케이션이 흐름을 시작하면 애플리케이션이 흐름의 뒷부분에서 사용자가 확인해야 하는 URL과 사용자 코드를 제공합니다. 흐름을 시작하는 애플리케이션이 사용자가 동의한 디바이스와 다른 디바이스에서 실행 중일 수 있으므로 사용자 코드가 필요합니다. 코드는 사용자가 다른 디바이스에서 시작한 흐름에 동의하는지 확인합니다.
-
브라우저가 있는 디바이스에서 흐름이 시작되면 브라우저 창이 열립니다. 브라우저가 없는 디바이스에서 흐름이 시작되면 사용자는 다른 디바이스에서 브라우저를 열고 애플리케이션이 제공한 URL로 이동해야 합니다.
-
어느 경우든 사용자가 인증하지 않은 경우 브라우저는 사용자 인증을 완료하도록 리디렉션합니다.
-
인증 후 동의 화면이 표시되며 해당 화면에는 다음 정보가 표시됩니다.
-
애플리케이션 이름
-
애플리케이션이 사용에 대한 동의를 요청하는 액세스 범위
-
애플리케이션이 사용자에게 제공한 사용자 코드
-
-
사용자는 동의 프로세스를 취소하거나 동의를 제공할 수 있으며 애플리케이션은 사용자의 권한에 따라 액세스를 진행합니다.
액세스 범위
범위는 OAuth 2.0 흐름을 통해 액세스할 수 있는 서비스에 대한 액세스를 정의합니다. 범위는 서비스를 위한 방식으로, 리소스 서버가 작업 및 서비스 리소스와 관련된 권한을 그룹화하는 방법이라고도 부르며, OAuth 2.0 클라이언트가 요청할 수 있는 세부적인 작업을 지정합니다. OAuth 2.0 클라이언트가 IAM Identity Center OIDC 서비스에 등록하면 클라이언트는 사용자가 동의를 제공해야 하는 의도한 작업을 선언할 범위를 지정합니다.
OAuth 2.0 클라이언트는 OAuth 2.0(RFC 6749)의 섹션 3.3scope
값을 사용하여 액세스 토큰에 대해 요청되는 액세스 권한을 지정합니다. 클라이언트는 액세스 토큰을 요청할 때 최대 25개의 범위를 지정할 수 있습니다. 사용자가 PKCE 또는 디바이스 권한 부여 흐름으로 권한 부여 코드 부여 중에 동의를 제공하는 경우 IAM Identity Center는 범위를 반환하는 액세스 토큰으로 인코딩합니다.
AWS는 지원되는 AWS 서비스에 대해 IAM Identity Center에 범위를 추가합니다. 다음 표에는 퍼블릭 클라이언트를 등록할 때 IAM Identity Center OIDC 서비스가 지원하는 범위가 나열되어 있습니다.
퍼블릭 클라이언트를 등록할 때 IAM Identity Center OIDC 서비스에서 지원하는 액세스 범위는 다음과 같습니다.
범위 | 설명 | 지원되는 서비스 |
---|---|---|
sso:account:access |
IAM Identity Center 관리 계정 및 권한 세트에 액세스합니다. | IAM Identity Center |
codewhisperer:analysis |
Amazon Q Developer 코드 분석에 대한 액세스를 활성화합니다. | AWS Builder ID 및 IAM Identity Center |
codewhisperer:completions |
Amazon Q 인라인 코드 제안에 대한 액세스를 활성화합니다. | AWS Builder ID 및 IAM Identity Center |
codewhisperer:conversations |
Amazon Q 채팅에 대한 액세스를 활성화합니다. | AWS Builder ID 및 IAM Identity Center |
codewhisperer:taskassist |
소프트웨어 개발용 Amazon Q Developer Agent에 대한 액세스를 활성화합니다. | AWS Builder ID 및 IAM Identity Center |
codewhisperer:transformations |
코드 변환용 Amazon Q Developer Agent에 대한 액세스를 활성화합니다. | AWS Builder ID 및 IAM Identity Center |
codecatalyst:read_write |
Amazon CodeCatalyst 리소스를 읽고 쓸 수 있으므로 모든 기존 리소스에 액세스할 수 있습니다. | AWS Builder ID 및 IAM Identity Center |