HALO는 리소스 지출, 공개 프로젝트 구성, 최종 사용자 인증 및 프로젝트 관리에 별도의 자격 증명을 사용합니다. 하나의 범용 토큰을 모든 곳에 전달하는 대신 API 표면을 선택하세요.
#자격증명 매트릭스
| 자격 증명 | 예 | API 표면 |
|---|---|---|
| Project 비밀 API 키 | sk-… | Model Gateway, Memory, Agent Access 파트너 /projects 경로에 사용하며 신뢰할 수 있는 백엔드에만 보관합니다 |
| Project 공개 키 | apikey: halo_pk_… | Project Authentication 회원가입, 로그인, 공개 설정 |
| Project 사용자 JWT | apikey + Bearer eyJ… | Project Authentication 현재 사용자 조회·로그아웃, Bearer만 사용하는 Identity OAuth 동의, Agent Access Link 요청의 project_auth 사용자 증명 |
| Identity OAuth Client 액세스 | Bearer eyJ… | Project OAuth userinfo 및 승인된 신원 접근 범위 |
| HALO 플랫폼 소유자 JWT | Bearer … | Project 관리 및 로그인한 소유자의 Access Identity 확인, 동의, 실행 승인, 권한 철회 |
#Project 비밀 API 키
다음으로 시작하는 키 sk- 는 유료 게이트웨이와 Memory 호출을 허용합니다. 다음 경로의 Agent Access 파트너 요청은/api/v1/agent-access/projects/:projectKey 해당 Project 키를 다음 헤더에 전달해 인증합니다: Authorization: Bearer sk-… 또는x-api-key. 키는 백엔드에 보관하세요. 사용자 브라우저에서는 반환된 Link URL을 엽니다.
#Project 공개 키
보내기 apikey 또는x-halo-project-key를 수신할 수 있도록 정확한 URL로 이동하세요. 공급자 승인 엔드포인트로의 탐색은 ?apikey= because a browser redirect cannot add a custom header. The key is public application identity, equivalent to a Supabase publishable key; it is not a client secret.
#Project 사용자 Bearer 토큰
RS256 액세스 토큰은 Authentication 사용자 한 명과 세션 하나를 나타냅니다. 현재 사용자 조회와 로그아웃 호출에는 이 Bearer 토큰 및 해당 Project 공개 키가 모두 필요합니다. Project JWKS와 필수 클레임으로 검증하세요. HALO Project Authentication을 사용하는 백엔드는 이 토큰을 다음 필드로 전달할 수 있습니다: endUser.accessTokenwith endUser.type: "project_auth"로 지정해 Agent Access Link Session을 생성합니다. 이 토큰은 앱 사용자를 식별하며, 사용자의 외부 계정 권한을 부여하거나 Access Identity 동의에 사용하는 HALO 플랫폼 JWT를 대신하지 않습니다.
#HALO 플랫폼 소유자 JWT
HALO 플랫폼 로그인은 Project Authentication 회원가입·로그인과 별도로 이 토큰을 발급합니다. 소유자 관리 경로는 다음 경로 아래에 있습니다: /api/user. 백엔드는 Authentication 설정, 사용자 관리, 세션 철회, API 키 관리, 레지스트리 변경 전에 Project 소유권을 검증합니다. 다음 경로의 Access Identity 기능은/api/v1/agent-access로그인한 HALO 소유자의 토큰으로 신원 확인, 동의 기록, 실행 승인, 접근 권한 철회를 수행합니다.
See the Agent Access 연동문서에서 파트너와 사용자 사이의 연결 흐름을 확인하고,동의 기반 동일 이메일 연결문서에서 외부 사용자 연결 옵션을 확인하세요. 앱 회원가입이나 Identity OAuth 동의로 Agent Tool 권한이 생성되지는 않습니다.