특정 최종 사용자를 대신하여 에이전트가 외부 도구 및 서비스 (예: Jira 작업 또는 GitHub 저장소)에 액세스할 수 있도록 하려면 Agent Identity 인증 관리자에서 3-legged OAuth 인증 제공업체를 구성합니다.
3-legged OAuth 인증 제공업체는 사용자 리디렉션 및 토큰을 관리합니다. 이렇게 하면 복잡한 OAuth 2.0 흐름을 처리하기 위해 커스텀 코드를 작성할 필요가 없습니다.
3-legged OAuth 워크플로
3-legged OAuth 인증 제공업체는 에이전트가 사용자를 대신하여 리소스에 액세스하므로 사용자 동의가 필요합니다.
- 프롬프트 및 리디렉션: 채팅 인터페이스에서 사용자에게 로그인하라는 메시지를 표시한 후 사용자를 서드 파티 애플리케이션의 동의 페이지로 리디렉션합니다.
- 동의 및 저장: 사용자가 권한을 부여하면 Agent Identity 인증 관리자가 결과 OAuth 토큰을 Google에서 관리하는 사용자 인증 정보 보관소에 저장합니다.
- 삽입: Agent Development Kit (ADK)를 사용하면 에이전트가 인증 제공업체에서 토큰을 자동으로 검색하여 도구 호출 헤더에 삽입합니다.
시작하기 전에
- 올바른 인증 방법을 선택했는지 확인합니다.
-
Agent Identity Connector API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한을 이미 보유하고 있을 가능성이 높습니다. 그렇지 않은 경우 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 부여받을 수 있습니다. 역할 부여 방법을 알아보세요. - 에이전트를 만들고 배포합니다.
- 사용자 로그인 프롬프트 와 서드 파티 동의 페이지로의 리디렉션을 처리하는 프런트엔드 애플리케이션이 있는지 확인합니다.
- 이 작업을 완료하는 데 필요한 역할이 있는지 확인합니다.
필요한 역할
3-legged 인증 제공업체를 만들고 사용하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
인증 제공업체를 만들려면 다음 안내를 따르세요.
- IAM 커넥터 관리자 (
roles/iamconnectors.admin) - IAM 커넥터 편집자 (
roles/iamconnectors.editor)
- IAM 커넥터 관리자 (
-
인증 제공업체를 사용하려면 다음 안내를 따르세요.
- IAM 커넥터 사용자 (
roles/iamconnectors.user) - Vertex AI 사용자 (
roles/aiplatform.user) - 서비스 사용량 소비자 (
roles/serviceusage.serviceUsageConsumer)
- IAM 커넥터 사용자 (
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이러한 사전 정의된 역할에는 3-legged 인증 제공업체를 만들고 사용하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
3-legged 인증 프로바이더를 만들고 사용하려면 다음 권한이 필요합니다.
-
인증 제공업체를 만들려면:
iamconnectors.connectors.create -
인증 제공업체를 사용하려면 다음 안내를 따르세요.
-
iamconnectors.connectors.retrieveCredentials -
aiplatform.endpoints.predict -
aiplatform.sessions.create
-
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
3-legged 인증 제공업체 만들기
인증 제공업체를 만들어 서드 파티 애플리케이션의 구성 및 사용자 인증 정보를 정의합니다.
3-legged 인증 제공업체를 만들려면 Google Cloud 콘솔 또는 Google Cloud CLI를 사용합니다.
콘솔
- 콘솔 Google Cloud 에서 에이전트 레지스트리 페이지로 이동합니다.
- 인증 제공업체를 만들 에이전트의 이름을 클릭합니다.
- ID 를 클릭합니다.
- 인증 제공업체 섹션에서 인증 제공업체 추가를 클릭합니다.
-
인증 제공업체 추가 창에서 이름과 설명을 입력합니다.
이름에는 소문자, 숫자, 하이픈만 포함할 수 있으며 하이픈으로 끝나서는 안 되고 소문자로 시작해야 합니다.
- OAuth 유형 목록에서 OAuth (3-legged) 를 선택합니다.
- 만들고 계속하기 를 클릭합니다.
- 인증 제공업체를 사용할 수 있는 에이전트 ID 권한을 부여하려면 액세스 권한 부여 를 클릭합니다.
이렇게 하면 인증 제공업체 리소스의 에이전트 ID에 커넥터 사용자 (
roles/iamconnectors.user) 역할이 자동으로 할당됩니다. - 콜백 URL을 복사합니다.
- 별도의 탭에서 서드 파티 OAuth 클라이언트 애플리케이션에 콜백 URL을 등록합니다.
- 인증 제공업체 사용자 인증 정보 섹션에서 다음 정보를 입력합니다.
- 클라이언트 ID
- 클라이언트 보안 비밀번호
- 토큰 URL
- 승인 URL
- 제공업체 구성 추가 를 클릭합니다.
새로 만든 인증 제공업체가 인증 제공업체 목록에 표시됩니다.
gcloud CLI
-
클라이언트를 등록하고 클라이언트 ID와 클라이언트 보안 비밀번호를 가져오도록 OAuth 클라이언트 애플리케이션을 구성합니다. 해당 섹션의 템플릿을 사용하여 리디렉션 URI를 지정합니다.
-
클라이언트 사용자 인증 정보를 사용하여 인증 제공업체를 만듭니다.
gcloud alpha agent-identity connectors create
AUTH_PROVIDER_NAME\ --project="PROJECT_ID" \ --location="LOCATION" \ --three-legged-oauth-client-id="CLIENT_ID" \ --three-legged-oauth-client-secret="CLIENT_SECRET" \ --three-legged-oauth-authorization-url="AUTHORIZATION_URL" \ --three-legged-oauth-token-url="TOKEN_URL" - 인증 제공업체가 목록에 표시되고 상태가
ENABLED인지 확인합니다.gcloud alpha agent-identity connectors list \ --project="
PROJECT_ID" \ --location="LOCATION" -
에이전트와 로컬 개발 환경에서 인증 제공업체의 사용자 인증 정보를 가져올 수 있도록 액세스 권한을 부여합니다. 배포된 에이전트와 개인 사용자 계정이 인증 제공업체에 액세스할 수 있도록 하려면 인증 제공업체 리소스에 커넥터 사용자(
roles/iamconnectors.user) 역할을 부여합니다.-
배포된 에이전트의 SPIFFE ID (에이전트 ID)에 대한 액세스 권한을 부여합니다.
gcloud alpha agent-identity connectors add-iam-policy-binding
AUTH_PROVIDER_NAME\ --project="PROJECT_ID" \ --location="LOCATION" \ --role="roles/iamconnectors.user" \ --member="principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/ENGINE_ID" -
로컬 개발 및 테스트 (
adk web)를 위해 개인 사용자 계정에 대한 액세스 권한을 부여합니다.gcloud alpha agent-identity connectors add-iam-policy-binding
AUTH_PROVIDER_NAME\ --project="PROJECT_ID" \ --location="LOCATION" \ --role="roles/iamconnectors.user" \ --member="user:USER_EMAIL"
-
다음을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트 ID입니다.LOCATION: 인증 제공업체와 에이전트가 배포되는 위치 (예:us-west1)AUTH_PROVIDER_NAME: 인증 제공업체의 이름 (예:bigquery-mcp-3lo-authprovider)AUTHORIZATION_URL: 승인 서버 URL (예:https://accounts.google.com/o/oauth2/v2/auth)TOKEN_URL: 토큰 서버 URL (예:https://oauth2.googleapis.com/token)CLIENT_ID: 서드 파티 서비스에서 생성한 OAuth 클라이언트 ID입니다.CLIENT_SECRET: 서드 파티 서비스에서 생성한 OAuth 클라이언트 보안 비밀번호입니다.