프로젝트 소개

Mandatum은 AI 에이전트에 대한 검증 가능한 권한 위임을 위한 초기 단계의 Go 라이브러리입니다. 에이전트가 공유 자격 증명(서비스 계정, API 키 또는 사람의 세션)을 상속하는 대신, 에이전트의 권한은 명명된 인간 스폰서에 뿌리를 둔 서명된 체인이 됩니다. 각 링크는 해시로 부모에 커밋하며 오직 좁아질 수만 있으므로, 권한은 내려가는 과정에서 커질 수 없습니다. 어떤 링크든 개별적으로 취소할 수 있으며, 제약 조건은 한 번의 호출이 아니라 일련의 행동 시퀀스에 걸쳐 평가됩니다. README는 자격 증명 상속의 세 가지 문제를 제시합니다. 책임을 인간에게 추적할 수 없고, 자격 증명을 공유하는 모든 것을 차단하지 않고는 단일 오작동 에이전트를 취소할 수 없으며, 호출별 권한 부여는 개별적으로는 정당한 호출들의 해로운 조합(예: 신뢰할 수 없는 외부 콘텐츠를 읽은 후 내부 시스템에 쓰기)을 탐지할 수 없다는 것입니다. 작동 방식: 인간이 인증하고 위임 어설션을 받습니다. 그 에이전트는 더 좁은 권한을 하위 위임할 수 있습니다. 리소스 서버(정책 시행 지점)는 오프라인으로 체인을 검증하고, 권한이 호출을 포괄하는지 확인하고, AuthZEN 호환 정책 결정 지점에 문의한 다음, 체인의 이력에 비추어 행동을 허용합니다. README는 행동을 허용하면 그것이 기록되므로, PDP가 거부한 호출은 체인의 호출 예산을 소비해서는 안 된다고 언급합니다. 시퀀스 수준 규칙은 예를 들어 외부 콘텐츠 읽기 후의 변경 호출을 금지할 수 있습니다. 명시된 범위 경계: Mandatum은 권한 부여 엔진이 아니며(OPA, Cedar, OpenFGA, SpiceDB, Cerbos 또는 모든 AuthZEN 준수 PDP를 위한 사실을 확립함), 새로운 프로토콜이 아니고(JOSE, RFC 8693, SPIFFE, AuthZEN, RFC 6962를 사용함), 게이트웨이, 레지스트리, 샌드박스 또는 에이전트 런타임이 아니며(agentgateway, ToolHive 또는 net/http 미들웨어를 통한 MCP 서버 내부에서 실행되도록 의도된 라이브러리임), 블록체인이 아닙니다(감사 로그는 Merkle 트리임). 선행 기술이 인정됩니다: 감쇠 위임을 위한 macaroons와 Biscuit, 워크로드 아이덴티티를 위한 SPIFFE, 토큰 교환 위임 의미론을 위한 RFC 8693. README는 Mandatum이 act 클레임을 재해석하는 대신 이력에 따라 권한을 부여한다고 말하며, 이를 RFC 8693 모델의 확장이라고 설명합니다. 세 가지 좁은 영역에서만 새로움을 주장합니다: 하위 위임 후에도 유지되는 인증된 인간에 뿌리를 둔 체인, 행동 시퀀스에 걸쳐 평가되는 제약 조건, AuthZEN 바인딩. 상태와 한계가 명확히 명시됩니다: 형식, 검증기, 서명 계층, 발급자가 종단 간 작동하며 실제 서명에 대해 테스트됩니다. AuthZEN 바인딩, 시퀀스 평가, JWKS/SPIFFE 키 해석, 게시된 컴팩트 집합으로부터의 로컬 취소, MCP 도구 호출 시행 미들웨어가 구현됩니다. 감사 로그는 구축되지 않았고, 시퀀스 저장소는 인프로세스 전용이며, 어떤 것도 일정에 따라 취소 집합을 게시하지 않고, 제3자 보안 검토가 없었습니다. 발급 흐름과 MCP 시행 경로에 대해 go test를 통한 실행 가능한 예제가 존재합니다. Apache 2.0에 따라 라이선스됩니다.