지원되는 인증 패턴
AgentCore Identity는 다양한 에이전트 사용 사례를 해결하는 두 가지 기본 인증 패턴을 지원합니다. 이러한 패턴을 이해하면 특정 에이전트 구현에 적합한 접근 방식을 선택하는 데 도움이 됩니다.
이러한 패턴이 특정 산업 및 에이전트 유형에 적용되는 방법에 대한 자세한 예는 사용 사례 예제를 참조하세요.
주제
사용자 위임 액세스(OAuth 2.0 권한 부여 코드 부여)
OAuth 2.0 권한 부여 코드 부여 흐름을 통해 에이전트는 명시적 사용자 동의로 사용자별 데이터에 액세스할 수 있습니다. 이 패턴은 에이전트가 개인 데이터에 액세스하거나 특정 사용자를 대신하여 작업을 수행해야 하는 경우에 필수적입니다. 흐름에는 리소스 소유자(사용자)가 에이전트에게 특정 범위 내에서 데이터에 액세스할 수 있는 권한을 명시적으로 부여하는 사용자 동의 단계가 포함됩니다.
주요 특징
-
권한 부여 프롬프트를 통해 명시적 사용자 동의 필요
-
사용자별 데이터 및 리소스에 대한 액세스 권한을 제공합니다.
-
에이전트 자격 증명과 사용자 권한 부여를 명확하게 구분합니다.
-
에이전트가 액세스할 수 있는 데이터를 제한하는 세분화된 범위 지원
예제 시나리오 - 생산성 에이전트는 사용자의 Google 캘린더에 액세스하여 회의를 예약하고, Gmail을 사용하여 이메일을 보내고, Google Drive를 사용하여 문서를 저장해야 합니다. 에이전트는 OAuth 2.0 권한 부여 코드 부여를 사용하여 필요한 데이터로만 액세스를 제한하는 특정 범위와 함께 각 서비스에 대한 사용자 동의를 얻습니다. 사용자는 Google의 동의 화면을 통해 에이전트에 명시적으로 권한을 부여하고 AgentCore 자격 증명은 나중에 사용할 수 있도록 결과 자격 증명을 안전하게 저장합니다.
이 패턴은 개인 어시스턴트 에이전트, 고객 서비스 에이전트 및 에이전트가 여러 서비스에서 사용자별 데이터에 액세스해야 하는 모든 시나리오에 적합합니다. 자세한 산업별 예는 개인 어시스턴트 에이전트 및 고객 서비스 에이전트를 참조하세요.
Machine-to-machine 인증(OAuth 2.0 클라이언트 자격 증명 부여)
OAuth 2.0 클라이언트 자격 증명 권한 부여 흐름을 통해 사용자 상호 작용 없이 시스템 간에 직접 인증할 수 있습니다. 이 패턴은 에이전트가 사용자별이 아닌 리소스에 액세스해야 하거나 에이전트가 사전 승인된 사용자 동의로 행동하는 경우에 적합합니다.
주요 특징
-
사용자 상호 작용 또는 동의 필요 없음
-
에이전트가 자체 자격 증명을 사용하여 리소스 서버로 직접 인증
-
백그라운드 프로세스, 예약된 작업 및 시스템 수준 작업에 적합
-
권한은 사용자당이 아닌 에이전트 수준에서 정의됩니다.
예제 시나리오 - 엔터프라이즈 데이터 처리 에이전트는 여러 내부 시스템에서 데이터를 수집하여 처리하고 결과를 데이터 웨어하우스에 저장해야 합니다. 에이전트는 OAuth 2.0 클라이언트 자격 증명 부여를 사용하여 자체 자격 증명 및 사전 구성된 권한을 사용하여 각 시스템에서 직접 인증합니다. 사용자 상호 작용은 필요하지 않으며 에이전트가 예약된 간격으로 사전 승인된 사용자 동의로 행동할 때 에이전트가 작동할 수 있습니다.
이 패턴은 엔터프라이즈 자동화 에이전트, 데이터 처리 워크플로 및 DevOps 자동화에 적합합니다. 자세한 산업별 예는 엔터프라이즈 자동화 에이전트 , 데이터 처리 및 분석 에이전트 , 개발 및 DevOps 에이전트를 참조하세요.
On-behalf-of 토큰 교환(OAuth 2.0 토큰 교환)
OBO(On-behalf-of) 토큰 교환을 통해 에이전트는 이미 인증된 사용자를 대신하여 다운스트림 리소스 서버에 액세스할 수 있습니다. 에이전트는 아웃바운드 자격 증명 공급자를 통해 인바운드 사용자 토큰을 새로운 대상 범위의 액세스 토큰으로 교환하여 사용자의 자격 증명과 에이전트의 자격 증명을 모두 결과 토큰에 바인딩합니다. 그러면 다운스트림 서비스는 사용자가 다른 동의 흐름을 거치지 않고도 두 자격 증명을 기반으로 권한 부여 결정을 내릴 수 있습니다.
주요 특징
예제 시나리오: 사용자별 비즈니스 애플리케이션 액세스 - 엔터프라이즈에는 사용자별 액세스 제어를 적용하는 내부 HR 애플리케이션이 있습니다. 각 직원은 자신의 보상 및 혜택 데이터만 볼 수 있습니다. 이 회사는 직원이 기존 액세스 정책을 완화하지 않고 AI 에이전트를 통해이 애플리케이션을 쿼리하도록 하려고 합니다.
-
Mike(자격 증명 관리자)는 OBO 토큰 교환 모드를 포함하여 HR 애플리케이션을 AgentCore 자격 증명의 OAuth 자격 증명 공급자로 구성합니다. 설정한 후에는 사용자별 프로비저닝이 필요하지 않습니다. 에이전트에 인증할 수 있는 모든 직원은 이를 통해 HR 애플리케이션에 연결할 수 있습니다.
-
Bob(에이전트 개발자)은 HR 애플리케이션을 호출하는 도구를 추가합니다. 그는 토큰 교환 로직을 작성하거나 클라이언트 보안 암호를 처리하지 않습니다. 그는 워크로드 액세스 토큰을
GetResourceOauth2Token사용하여를 호출하고 AgentCore 자격 증명은 범위가 지정된 다운스트림 토큰을 반환합니다. Bob은 권한 부여 방법이 아니라 에이전트가 데이터로 수행하는 작업에 중점을 둡니다. -
Sarah(최종 사용자)는 에이전트에 로그인하여 자신의 혜택 요약을 가져오도록 요청합니다. 다시 로그인하라는 메시지가 표시되지 않습니다. 백그라운드에서 AgentCore 자격 증명은 Sarah의 인바운드 토큰을 자신의 자격 증명을 전달하는 다운스트림 액세스 토큰으로 교환합니다. HR 애플리케이션은 기존 액세스 정책을 적용하고 Sarah의 데이터만 반환합니다. Sarah는 애플리케이션에 직접 액세스했을 때와 동일한 데이터를 반환합니다.
이 패턴은 단일 신뢰 도메인에서 여러 자격 증명 인식 서비스를 통과하는 엔터프라이즈 에이전트에 적합합니다. 권한 부여 유형, 구성 및 지원되는 자격 증명 공급자에 대한 심층 분석은 토큰 교환On-behalf-of 섹션을 참조하세요.
올바른 인증 패턴 선택
에이전트 인증 전략을 설계할 때 다음 요소를 고려하여 가장 적합한 패턴을 결정합니다.
| Factor | 사용자 위임 액세스(OAuth 2.0 권한 부여 코드 부여) | Machine-to-machine 인증(OAuth 2.0 클라이언트 자격 증명 부여) | On-behalf-of 토큰 교환(OAuth 2.0 토큰 교환) |
|---|---|---|---|
|
데이터 소유권 |
사용자별 데이터(이메일, 문서, 개인 일정) |
시스템 또는 조직 소유 데이터(분석, 로그, 공유 리소스) |
사용자가 이미 에이전트에 인증된 사용자별 데이터 |
|
사용자 상호 작용 |
사용자가 있고 동의를 제공할 수 있음 |
사용자 상호 작용이 필요하지 않거나 사용할 수 없음 |
사용자가 이미 에이전트에 인증되었습니다. 새 동의 프롬프트가 없습니다. |
|
작업 타이밍 |
대화형 실시간 작업 |
배경, 예약 또는 배치 작업 |
인증된 사용자가 시작한 대화형 실시간 작업 |
|
권한 범위 |
권한은 사용자와 동의 선택에 따라 다릅니다. |
에이전트 수준에서 정의된 일관된 권한 |
인바운드 사용자 토큰 및 다운스트림 공급자 정책에서 파생된 권한 |
많은 에이전트 구현에는 기능의 다양한 측면에 대한 모든 패턴이 필요합니다. 예를 들어 고객 서비스 에이전트는 사용자 위임 액세스를 사용하여 특정 고객의 데이터를 검색하는 동시에 machine-to-machine 인증을 사용하여 회사 지식 기반 및 내부 시스템에 액세스할 수 있습니다. 또한 동일한 에이전트가 on-behalf-of 토큰 교환을 사용하여 사용자에게 다시 메시지를 표시하지 않고 사용자당 권한 부여를 적용하는 다운스트림 서비스에 사용자의 자격 증명을 전파할 수 있습니다. AgentCore Identity는 모든 패턴을 동시에 지원하므로 에이전트는 액세스해야 하는 각 리소스에 가장 적합한 인증 메커니즘을 사용할 수 있습니다.
모든 인증 패턴은 AgentCore Identity의 핵심 기능을 활용합니다.
-
에이전트 코드에 보안 암호를 노출하지 않고 보안 자격 증명 스토리지 보호
-
여러 리소스 유형에 걸쳐 일관된 인증 인터페이스
-
보안 및 규정 준수를 위한 포괄적인 감사 로깅
-
자격 증명 및 컨텍스트를 기반으로 세분화된 액세스 제어
-
AgentCore SDK를 통한 간소화된 통합