Configuration
Toegangsgroepen
Toegangsgroepen zijn benoemde afzenderlijsten die je eenmaal definieert en vanuit kanaal-allowlists verwijst met accessGroup:<name>.
Gebruik ze wanneer dezelfde mensen toegang moeten krijgen tot meerdere berichtkanalen, of wanneer één vertrouwde set moet gelden voor autorisatie van zowel privéberichten als groepsafzenders.
Toegangsgroepen verlenen op zichzelf geen toegang. Een groep is alleen relevant wanneer een allowlist-veld ernaar verwijst.
Statische groepen voor berichtafzenders
Statische afzendergroepen gebruiken type: "message.senders".
{
accessGroups: {
operators: {
type: "message.senders",
members: {
"*": ["global-owner-id"],
discord: ["discord:123456789012345678"],
telegram: ["987654321"],
whatsapp: ["+15551234567"],
},
},
},
}
Ledenlijsten zijn gesleuteld op berichtkanaal-id:
| Sleutel | Betekenis |
|---|---|
"*" |
Gedeelde vermeldingen die worden gecontroleerd voor elk berichtkanaal dat naar de groep verwijst. |
discord |
Vermeldingen die alleen worden gecontroleerd voor Discord-allowlistmatching. |
telegram |
Vermeldingen die alleen worden gecontroleerd voor Telegram-allowlistmatching. |
whatsapp |
Vermeldingen die alleen worden gecontroleerd voor WhatsApp-allowlistmatching. |
Vermeldingen worden gematcht met de normale allowFrom-regels van het doelkanaal. OpenClaw vertaalt geen afzender-id's tussen kanalen. Als Alice een Telegram-id en een Discord-id heeft, vermeld dan beide id's onder de juiste sleutels.
Groepen verwijzen vanuit allowlists
Verwijs naar een groep met accessGroup:<name> overal waar het berichtkanaalpad afzender-allowlists ondersteunt.
Voorbeeld van DM-allowlist:
{
accessGroups: {
operators: {
type: "message.senders",
members: {
discord: ["discord:123456789012345678"],
telegram: ["987654321"],
},
},
},
channels: {
discord: {
dmPolicy: "allowlist",
allowFrom: ["accessGroup:operators"],
},
telegram: {
dmPolicy: "allowlist",
allowFrom: ["accessGroup:operators"],
},
},
}
Voorbeeld van groepsafzender-allowlist:
{
accessGroups: {
oncall: {
type: "message.senders",
members: {
whatsapp: ["+15551234567"],
googlechat: ["users/1234567890"],
},
},
},
channels: {
whatsapp: {
groupPolicy: "allowlist",
groupAllowFrom: ["accessGroup:oncall"],
},
googlechat: {
spaces: {
"spaces/AAA": {
users: ["accessGroup:oncall"],
},
},
},
},
}
Je kunt groepen en directe vermeldingen combineren:
{
channels: {
discord: {
dmPolicy: "allowlist",
allowFrom: ["accessGroup:operators", "discord:123456789012345678"],
},
},
}
Ondersteunde berichtkanaalpaden
Toegangsgroepen zijn beschikbaar in gedeelde autorisatiepaden voor berichtkanalen, waaronder:
- afzender-allowlists voor privéberichten, zoals
channels.<channel>.allowFrom - groepsafzender-allowlists, zoals
channels.<channel>.groupAllowFrom - kanaalspecifieke afzender-allowlists per ruimte die dezelfde regels voor afzendermatching gebruiken
- opdracht-autorisatiepaden die afzender-allowlists van berichtkanalen hergebruiken
Kanaalondersteuning hangt ervan af of dat kanaal is aangesloten op de gedeelde helpers voor OpenClaw-afzenderautorisatie. Huidige gebundelde ondersteuning omvat Discord, Google Chat, Nostr, WhatsApp, Zalo en Zalo Personal. Statische message.senders-groepen zijn ontworpen om kanaalonafhankelijk te zijn, dus nieuwe berichtkanalen zouden ze moeten ondersteunen door de gedeelde Plugin SDK-helpers te gebruiken in plaats van aangepaste allowlist-uitbreiding.
Discord-kanaaldoelgroepen
Discord ondersteunt ook een dynamisch toegangsgroeptype:
{
accessGroups: {
maintainers: {
type: "discord.channelAudience",
guildId: "1456350064065904867",
channelId: "1456744319972282449",
membership: "canViewChannel",
},
},
channels: {
discord: {
dmPolicy: "allowlist",
allowFrom: ["accessGroup:maintainers"],
},
},
}
discord.channelAudience betekent "sta Discord-DM-afzenders toe die dit guild-kanaal momenteel kunnen bekijken." OpenClaw lost de afzender via Discord op tijdens autorisatie en past Discord ViewChannel-machtigingsregels toe.
Gebruik dit wanneer een Discord-kanaal al de bron van waarheid is voor een team, zoals #maintainers of #on-call.
Vereisten en foutgedrag:
- De bot heeft toegang nodig tot de guild en het kanaal.
- De bot heeft de Discord Developer Portal Server Members Intent nodig.
- De toegangsgroep faalt gesloten wanneer Discord
Missing Accessretourneert, de afzender niet kan worden opgelost als guild-lid, of het kanaal bij een andere guild hoort.
Meer Discord-specifieke voorbeelden: Discord-toegangscontrole
Beveiligingsopmerkingen
- Toegangsgroepen zijn allowlist-aliassen, geen rollen. Ze maken geen eigenaars aan, keuren geen koppelingsverzoeken goed en verlenen op zichzelf geen toolmachtigingen.
dmPolicy: "open"vereist nog steeds"*"in de effectieve DM-allowlist. Naar een toegangsgroep verwijzen is niet hetzelfde als publieke toegang.- Ontbrekende groepsnamen falen gesloten. Als
allowFromaccessGroup:operatorsbevat enaccessGroups.operatorsontbreekt, autoriseert die vermelding niemand. - Houd kanaal-id's stabiel. Geef de voorkeur aan numerieke/gebruikers-id's boven weergavenamen wanneer het kanaal beide ondersteunt.
Probleemoplossing
Als een afzender zou moeten matchen maar wordt geblokkeerd:
- Controleer of het allowlist-veld de exacte verwijzing
accessGroup:<name>bevat. - Controleer of
accessGroups.<name>.typecorrect is. - Controleer of de afzender-id onder de overeenkomende kanaalsleutel staat, of onder
"*". - Controleer of de vermelding de normale allowlist-syntaxis van dat kanaal gebruikt.
- Controleer voor Discord-kanaaldoelgroepen of de bot het guild-kanaal kan zien en Server Members Intent heeft ingeschakeld.
Voer openclaw doctor uit nadat je de configuratie voor toegangscontrole hebt bewerkt. Dit detecteert veel ongeldige combinaties van allowlists en beleid vóór runtime.