App öffnen
Moonborn — Developers

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):

RolleReadWriteNotable Can-Do
ownerallealleOrg transferieren, Workspace löschen
adminallealleMitglieder, Billing managen
editorallePersonas + ChatPersonas erstellen + refinen
viewerallekeineRead-only
api-onlyscopedscopedService-Accounts, kein UI-Zugriff
billingRechnungenZahlungsmethodenfür Finance-Team-Mitglieder
auditorAudit-Log + Configkeinefü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/Users
  • PATCH/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