Workspace + RBAC-Setup
Bring einen Moonborn-Workspace auf, lade Teammitglieder ein, weise Rollen zu und konfiguriere einen SSO + SCIM-Provider für org-weite Identität.
Workspaces sind der Moonborn-Projekt-Container; Orgs sitzen darüber. RBAC bindet Nutzer an Rollen, Rollen an Aktionen, Aktionen an Resources. Dieses Tutorial deckt die praktische Sequenz: Org erstellen, Workspace erstellen, Teammitglieder einladen, Rollen zuweisen und (für Enterprise) SAML + SCIM verdrahten.
1. Org + Workspace erstellen
Wenn du dich registrierst, wird automatisch eine Org erstellt — das ist deine Billing-Root. Innerhalb davon erstelle einen oder mehrere Workspaces:
const ws = await client.workspaces.createWorkspace({
name: 'Product team',
description: 'Persona-Arbeit für die Consumer-Oberfläche.',
});2. Teammitglieder einladen
const invitation = await client.memberships.inviteMember({
email: 'designer@acme.co',
role: 'editor',
workspaceId: ws.id,
});
console.log(invitation.acceptUrl);Die Einladungs-E-Mail landet mit einer Accept-URL. Bis akzeptiert,
sitzt die Membership in pending.
3. Eingebaute Rollen
Sieben Rollen kommen out-of-the-box (PRD §H, plan.md §1.6):
| Rolle | Read | Write | Notable Can-Do |
|---|---|---|---|
owner | alle | alle | Org transferieren, Workspace löschen |
admin | alle | alle | Mitglieder, Billing managen |
editor | alle | Personas + Chat | Personas erstellen + refinen |
viewer | alle | keine | Read-only |
api-only | scoped | scoped | Service-Accounts, kein UI-Zugriff |
billing | Rechnungen | Zahlungsmethoden | für Finance-Team-Mitglieder |
auditor | Audit-Log + Config | keine | für Compliance-Teams |
Custom-Rollen sind Enterprise — sie erlauben dir, eine Resource × Action Matrix zu definieren, die auf deine Org zugeschnitten ist.
4. Rollen ändern
await client.memberships.updateMembership({
id: 'mem_...',
role: 'admin',
});Das Membership-Audit-Log zeichnet jede Rollenänderung mit Actor + Timestamp auf.
5. SAML SSO aufsetzen (Enterprise)
Für Orgs im Enterprise-Plan, swappe den Default-Credentials-Provider gegen SAML 2.0:
await client.config.setItem({
key: 'identity.sso.saml.enabled',
value: true,
scope: 'org',
scopeId: 'org_...',
});
await client.config.setItem({
key: 'identity.sso.saml.idp_metadata_url',
value: 'https://your-idp.example.com/metadata',
scope: 'org',
scopeId: 'org_...',
});Initiiere einen SAML-Flow an POST /v1/auth/sso/saml/initiate; der
IdP posted zurück an /v1/auth/sso/saml/acs. Siehe den
SSO / SAML-Setup-Guide für die IdP-seitige
Konfiguration.
6. SCIM-Provisioning aufsetzen (Enterprise)
SCIM lässt deinen IdP User-Lifecycle-Änderungen (create, update, deaktivieren) automatisch nach Moonborn pushen. Die Endpoints folgen RFC 7644:
GET/POST /v1/auth/scim/v2/UsersPATCH/DELETE /v1/auth/scim/v2/Users/{id}GET/POST /v1/auth/scim/v2/Groups
Konfiguriere deinen IdP (Okta, Azure AD, Google) mit diesen Endpoints + dem SCIM-Bearer-Token aus Settings → SSO. Neueinstellte auto-provisionieren; Abgänge auto-deprovisionieren.
7. IP-Allowlists (Enterprise)
await client.config.setItem({
key: 'identity.ip_allowlist.cidrs',
value: '203.0.113.0/24,198.51.100.0/24',
scope: 'org',
scopeId: 'org_...',
});Verbindungen außerhalb der Allowlist werden am Gateway abgelehnt. Nützlich für Orgs, die API-Zugriff auf Corporate-Netze einschränken.
8. Auditieren
Jede Rollenänderung, jede Membership-Änderung, jeder Config-Edit landet im immutablen Audit-Log:
const events = await client.audit.listEvents({
workspaceId: ws.id,
category: 'rbac',
limit: 50,
});Das Audit-Log ist hash-chained und wird gemäß
privacy.retention.audit_log_years (Standard 7 für Enterprise,
1 für Pro/Team) gehalten.
Tarif
- Basis-Workspaces + 4 eingebaute Rollen: Free.
- Editor / api-only / billing / auditor-Rollen: Pro.
- SCIM + SAML SSO + IP-Allowlists + Custom-Rollen: Enterprise.
Weiter
- Der Use Case: Enterprise RBAC + SSO.
- Compliance-Posture: Audit + compliance use case.
- Memberships API reference.