Plugin guides
1Password-geheimenbroker
1Password-geheimenbroker
De meegeleverde onepassword-plugin biedt agents één beleidsmatig beheerde tool voor
het lezen van een samengestelde set 1Password-velden. Deze is standaard uitgeschakeld en doet
niets totdat plugins.entries.onepassword.config aanwezig is.
Dit is een agenttool, geen SecretRef-provider. Deze injecteert geen omgevingsvariabelen en lost geen geheimen in de OpenClaw-configuratie op.
Beveiligingsmodel
- Alleen authenticatie met een serviceaccount. Het token blijft in een lokaal bestand met aanmeldgegevens
en wordt nooit geaccepteerd in
openclaw.json. - Alleen een samengestelde registry. Agents kunnen geconfigureerde slugs weergeven, maar de plugin inventariseert nooit een 1Password-kluis.
- Beleid per slug:
auto,approveofdeny. - Goedkeuringstoekenningen verlopen. Een gecachte waarde omzeilt nooit het huidige beleid.
- Elke toegangspoging wordt vastgelegd in de gedeelde SQLite-status van OpenClaw. Audit- rijen bevatten de opgegeven reden; zorg dat redenen geen gevoelige informatie bevatten. De broker kopieert een opgehaalde waarde of het servicetoken nooit naar een auditrij.
- Na de huidige tooluitvoering vervangt de door OpenClaw beheerde transcriptopslag
een geslaagde
get-waarde door geredigeerde metadata. - De waarde is tijdens die uitvoering zichtbaar voor het model. Als het model deze naar een latere toolaanroep of een later antwoord kopieert, valt die afzonderlijke registratie buiten de opslaghook van deze plugin. Houd het beleid beperkt en vraag het model niet om een waarde te herhalen.
- De plugin roept
opeenmaal aan per cachemisser. Limietoverschrijdingen of andere fouten worden niet opnieuw geprobeerd. - Elke
op-aanroep wordt uitgevoerd met een minimale omgeving die de integratie met de 1Password-desktopapp uitschakelt (OP_LOAD_DESKTOP_APP_SETTINGS=false,OP_BIOMETRIC_UNLOCK_ENABLED=false), zodat een 1Password-app die op de Gateway-host is geïnstalleerd nooit biometrische of macOS-machtigingsvensters activeert.
Geef het serviceaccount alleen leestoegang tot de kluizen en items die in de pluginconfiguratie zijn geregistreerd.
Voordat je begint
Je hebt het volgende nodig:
- de 1Password-CLI (
op) geïnstalleerd op de Gateway-host - een 1Password-serviceaccount met toegang tot de geselecteerde items
- een speciaal tokenbestand voor het serviceaccount
Schakel de meegeleverde plugin in:
openclaw plugins enable onepasswordMaak de tokenmap en het tokenbestand aan onder de statusmap van OpenClaw:
mkdir -p ~/.openclaw/credentials/onepasswordchmod 700 ~/.openclaw/credentials/onepasswordprintf '%s' "$OP_SERVICE_ACCOUNT_TOKEN" > \ ~/.openclaw/credentials/onepassword/service-account-tokenchmod 600 ~/.openclaw/credentials/onepassword/service-account-tokenunset OP_SERVICE_ACCOUNT_TOKENWanneer OPENCLAW_STATE_DIR is ingesteld, vervang je ~/.openclaw door die map.
De plugin waarschuwt eenmaal wanneer het tokenbestand leesbaar of beschrijfbaar is voor de groep of
andere gebruikers.
Geregistreerde geheimen configureren
Voeg pluginconfiguratie toe aan openclaw.json:
{ "plugins": { "entries": { "onepassword": { "enabled": true, "config": { "vault": "Automation", "defaultPolicy": "approve", "cacheTtlSeconds": 300, "grantTtlHours": 720, "opTimeoutMs": 15000, "items": { "repository-token": { "item": "Repository automation token", "field": "credential", "policy": "approve", "description": "Token for repository automation", }, "model-key": { "item": "Model provider key", "vault": "Agent credentials", "policy": "auto", }, }, }, }, }, },}Slugs gebruiken kleine letters, cijfers en koppeltekens, beginnen met een letter of
cijfer en bevatten maximaal 64 tekens. Een registry kan maximaal 32
slugs bevatten; beschrijvingen kunnen maximaal 200 tekens bevatten. field accepteert één veldlabel
of ID, mag geen komma bevatten en is standaard credential.
Een vault op itemniveau overschrijft de standaardkluis. opBin kan een absoluut
pad naar het uitvoerbare bestand op instellen; anders zoekt de plugin op op via PATH.
Itemtitels mogen niet met een koppelteken beginnen.
De agenttool gebruiken
De toolnaam is onepassword.
Geef geregistreerde slugs weer:
{ "action": "list" }Het resultaat bevat alleen de slug, beschrijving, het beleid en of er een permanente toekenning actief is. Het bevat nooit een geheime waarde en raadpleegt 1Password niet.
Vraag één geheim op:
{ "action": "get", "slug": "repository-token", "reason": "Authenticate the requested repository operation"}reason is verplicht, mag niet leeg zijn en is beperkt tot 300 tekens. Een
geslaagde get retourneert de waarde plus de geconfigureerde slug, itemtitel en
het veldlabel.
Het toolschema declareert ook een interne parameter authorizationNonce. De
beleidslaag injecteert deze na beoordeling van het verzoek om de autorisatie
aan de uitvoerende toolaanroep door te geven. Stel deze nooit handmatig in: de beleidshook overschrijft
elke opgegeven waarde en een onbekende waarde laat het verzoek mislukken.
Beleidsniveaus en goedkeuringen
auto: onmiddellijk ophalen en het verzoek auditen.deny: het verzoek blokkeren en auditen.approve: een niet-verlopen permanente toekenning gebruiken of een persoon vragen om eenmalig of altijd toestemming te geven, of te weigeren.
Eenmalig toestaan autoriseert alleen de huidige toolaanroep. Altijd toestaan schrijft een permanente
toekenning voor die agent en slug naar SQLite; andere agents moeten hun eigen
goedkeuring ontvangen. OpenClaw biedt altijd toestaan alleen aan wanneer de aanroeper een concrete agentidentiteit
heeft. De toekenning verloopt na grantTtlHours, standaard 720 uur.
Een niet-beantwoorde of verlopen goedkeuring weigert het verzoek; de maximale wachttijd voor
goedkeuring is 600 seconden. De plugin bewaart maximaal 1.024 permanente toekenningen; bij die
grens wordt de oudste toekenning verwijderd en moet de betreffende agent de volgende toegang goedkeuren.
Elke beoordeelde autorisatie is eenmalig bruikbaar en wordt via de gedeelde SQLite-status doorgegeven aan de uitvoerende toolaanroep, zodat de overdracht ook werkt wanneer meer dan één plugininstantie actief is in het Gateway-proces. Ongebruikte autorisaties verlopen na het goedkeuringsvenster van 600 seconden.
De cache in het geheugen staat standaard op 300 seconden en is begrensd door de geconfigureerde
slugregistry. Stel cacheTtlSeconds in op 0 om deze uit te schakelen. Het beleid wordt vóór
elke cachezoekactie beoordeeld en cachetreffers worden geaudit. Herladen van de runtimeconfiguratie
wordt van kracht bij elke beleids- en uitvoeringsgrens; als de plugin wordt uitgeschakeld of
een slug wordt verwijderd, geweigerd of naar een ander doel wordt verwezen, worden openstaande autorisaties en
gecachete waarden ongeldig.
Status en auditgeschiedenis bekijken
Toon de gereedheid en registry-aantallen:
openclaw onepassword statusDit rapporteert of het tokenbestand bestaat, of op is gevonden en via welk pad,
het aantal geregistreerde items en de aantallen per beleid. Het leest of toont nooit het
token of geheime waarden.
Toon de 50 meest recente auditrijen:
openclaw onepassword auditopenclaw onepassword audit --limit 100Rijen worden met de nieuwste eerst weergegeven en tonen tijdstempel, agent, slug, resultaat, een errorCode
wanneer de poging is mislukt, en een afgekorte reden. De reden wordt opgeslagen zoals
opgegeven; de broker voegt de opgehaalde waarde nooit toe aan het auditlogboek.
Gedrag van de 1Password-CLI
Bij elke cachemisser wordt op item get uitgevoerd met het geconfigureerde item, de kluis en de exacte
veldselector, JSON-uitvoer, een begrensde time-out en --cache=false. Het childproces
ontvangt alleen dat veld in plaats van het volledige item. Alleen
OP_SERVICE_ACCOUNT_TOKEN en HOME zijn aanwezig in de omgeving van het childproces.
De plugin doet één poging. Bij RATE_LIMITED-fouten moet worden gewacht
voordat een agent later opnieuw een verzoek doet; de plugin maakt geen automatische lus voor nieuwe pogingen.
Foutcodes
Mislukte pogingen bevatten één afgebakende foutcode in het toolresultaat en de auditrij.
1Password-toegangsfouten:
| Code | Betekenis |
|---|---|
TOKEN_MISSING |
Tokenbestand ontbreekt of is leeg |
OP_NOT_FOUND |
Binair bestand op kon niet worden gevonden |
ITEM_NOT_FOUND |
Geconfigureerd item bevindt zich niet in de kluis |
FIELD_NOT_FOUND |
Geconfigureerd veld bevindt zich niet op het item; beschikbare labels worden vermeld |
RATE_LIMITED |
Limiet voor het 1Password-serviceaccount bereikt |
AUTH_FAILED |
Authenticatie van het serviceaccount mislukt |
TIMEOUT |
op overschreed opTimeoutMs |
OP_ERROR |
Elke andere op-fout of ongeldige uitvoer |
Beleids- en validatiefouten:
| Code | Betekenis |
|---|---|
INVALID_ACTION, INVALID_REASON, INVALID_SLUG |
Invoervalidatie van verzoek mislukt |
UNKNOWN_SLUG |
Slug staat niet in de geconfigureerde registry |
TOOL_CALL_ID_MISSING |
Aanroep is zonder toolaanroep-ID binnengekomen |
POLICY_NOT_EVALUATED |
Geen overeenkomende autorisatie voor deze aanroep; het verzoek is niet beleidsmatig goedgekeurd |
POLICY_CHANGED |
Configuratie is gewijzigd tussen goedkeuring en uitvoering |
GRANT_EXPIRED |
Permanente toekenning is vóór de uitvoering verlopen |
APPROVAL_CANCELLED |
De uitvoering is afgebroken terwijl de goedkeuring in behandeling was |