복합 ID(Composite Identity)
AI가 생성한 GitLab 플랫폼 쓰기 작업에 복합 ID(Composite Identity)를 사용하는 방법과 토큰 생성, 인가 평가, 액터 귀속 방법을 설명합니다.
보안상의 이유로, 쓰기 작업을 수행하는 GitLab 플랫폼의 AI 생성 활동에는 복합 ID를 사용해야 합니다. 복합 ID를 사용하는 기능: Amazon Q를 통한 GitLab Duo 사전 요구 사항 # 복합 ID 토큰을 생성하려면 다음이 필요합니다: 기본 토큰 소유자인 서비스 계정 사용자 . 인스턴스 전체 또는 그룹 범위로 지정할 수 있습니다. 인스턴스 전체 계정은 GitLab 자체 기능에 일반적으로 사용되며, 고객 에이전틱 플로는 범위를 좁게 지정한 계정을 사용해야 합니다. 특정 권한이 있는 사용자만 서비스 계정을 생성 할 수 있습니다. 계정이 생성되는 위치와 방법을 미리 계획하세요. 서비스 계정은 여러 기능에서 공유할 수 있지만, 동일한 계정을 공유하면 UI에서 작업을 구분하기 어려워집니다(예: 동일 사용자가 MR을 생성하고 리뷰하는 것처럼 보일 수 있음). 가용성 및 라이선스: 서비스 계정은 Premium 및 Ultimate에서 사용 가능합니다. 따라서, 복합 ID는 GitLab Premium 또는 Ultimate 라이선스가 필요합니다. 서비스 계정에는 composite_identity_enforced 가 true 로 설정되어 있어야 합니다. 이 설정은 서비스 계정 생성 UI에서는 제공되지 않으며, 프로그래밍 방식으로 구성해야 합니다. 복합 ID에 사용되는 OAuth 애플리케이션은 user:* 의 동적 스코프를 활성화해야 합니다. 이 스코프는 OAuth 애플리케이션 UI에서 제공되지 않으며, 프로그래밍 방식으로 구성해야 합니다. 복합 ID 토큰 생성 방법 # OAuth 토큰만 지원됩니다. 서비스 계정은 로그인할 수 없는 봇 사용자이므로, 일반적인 인가 코드 플로 (브라우저 동의)는 작동하지 않습니다. 서드파티 서비스와 통합하는 경우: 서비스 계정 + OAuth 앱에 대한 OAuth 그랜트를 수동으로 생성하세요. Amazon Q 예시 를 참고하세요. AI 요청을 시작한 사람 사용자에 대한 구체적인 동적 스코프가 그랜트 스코프에 포함되어야 하며, user:$ID 형식으로 지정합니다(예: user:123 ). 필요에 따라 다른 스코프도 포함하세요(예: api ). https://gitlab.example.com/oauth/token 을 통해 그랜트를 액세스 토큰으로 교환합니다. 서드파티 서비스와 통합하지 않는 경우: 액세스 그랜트 단계를 건너뛰고 OAuth 액세스 토큰을 직접 생성할 수 있으며, 스코프에 user:$ID 와 필요한 기본 스코프를 포함시킵니다. grant_type=refresh_token 을 사용하여 표준 https://gitlab.example.com/oauth/token> 엔드포인트를 통해 토큰을 갱신합니다. 반환된 액세스 토큰은 서비스 계정에 속하지만, 스코프에 user:$ID 를 포함합니다. 표준 OAuth 액세스 토큰처럼 갱신됩니다. 최소 예시 # OAuth 애플리케이션 생성(이 단계는 맞춤형 OAuth 앱을 원하는 경우에만 필요합니다. GitLab Duo Workflow 기본 OAuth 애플리케이션과 서비스 계정