Zum Inhalt springen

Zugriffssteuerungsreferenz

Capgo verwendet Zugriffssteuerung auf der Basis von Rollen (RBAC) um zu bestimmen, was jeder Teammitglied tun kann. Rollen sind nach Bereich — vom gesamten Unternehmen bis hin zu einer einzelnen Bundle.

Für eine visuelle Anleitung zur Verwaltung von Mitgliedern im Dashboard, siehe Organisation.


Jede Rolle gehört zu einem Bereich, der bestimmt, welche Ressource sie Zugriff gewährt.

BereichGilt fürBeispielanwendung
OrganisationDie gesamte Organisation und alle ihre AppsDein Mitgründer erhält Super Admin; dein Buchhalter erhält Billing Manager
AppEine einzelne App und ihre KanäleEin Auftragnehmer, der an einer App arbeitet, erhält den Rollenname App Developer
KanalEin einzelner Kanal innerhalb einer AppEin QA-Engineer verwaltet nur den staging Kanal
PaketEine einzelne PaketversionEin Rezensent benötigt Leserecht für eine bestimmte Release

Ein Mitglied kann in einer Rolle pro Scope-Ziel haben — zum Beispiel eine Rolle in einer Organisation, eine Rolle in App A und eine andere Rolle in App B.


Diese Rollen werden zugewiesen, wenn ein Mitglied eingeladen wird. Sie gewähren Zugriff auf die gesamte Organisation.

RolleInternes NameBeschreibung
Super Adminorg_super_adminÄquivalent zum Besitzer. Vollständiger Kontrolle einschließlich Löschung der Organisation, Verwaltung der Abrechnung und Übertragung von Apps. Automatisch der Organisationsersteller zugewiesen.
Adminorg_adminVollständige Verwaltung – Mitglieder, Apps, Kanäle verwalten. Die Organisation nicht löschen, Abrechnung aktualisieren, Apps übertragen oder Benutzer zu Super Admin befördern.
Abrechnungsmanagerorg_billing_adminZugriff auf Abrechnung nur: Abrechnungsinformationen, Rechnungen und Abrechnungsprotokolle anzeigen und aktualisieren. Kein Zugriff auf Apps oder Mitglieder.
Mitgliedorg_memberLeserecht auf die Organisation und alle ihre Apps.
RechtBeschreibungSuper AdministratorAdministratorKostenstellenverwalterMitglied
org.readDie Organisation anzeigen
org.update_settingsOrganisationsname, Logo und E-Mail-Adresse der Verwaltung bearbeiten
org.deleteDie Organisation dauerhaft löschen
org.read_membersMitgliederliste anzeigen
org.invite_userNeue Mitglieder einladen
org.update_user_rolesMitgliederrollen ändern (Admin kann nicht auf Super Admin befördern — durch Rollen-Hierarchie blockiert)
org.read_billingRechnungsinformationen und aktuelles Abonnement anzeigen
org.update_billingZahlungsverfahren und Abonnement aktualisieren
org.read_invoicesRechnungen anzeigen
org.read_auditOrganisationsaktivitäten anzeigen
org.read_billing_auditRechnungsbezogene Audit-Log anzeigen

Beschreibung

__CAPGO_KEEP_0____CAPGO_KEEP_0____CAPGO_KEEP_0__
App Adminapp_adminVollzugriff auf eine App — Kanäle, Geräte, Benutzerrollen für die App. Die App kann nicht gelöscht oder übertragen werden (diese sind Organisations-Ebene-Befehle).
App Entwicklerapp_developerBundles hochladen, Geräte verwalten, native Builds auslösen, Kanal-Einstellungen aktualisieren. Keine Löschung, keine Änderungen der App-Einstellungen, keine Kanal-Erstellung.
App Hosterapp_uploaderLeserecht + Upload neuer Bundle-Versionen.
App Leserapp_readerNur Lesen — Statistiken, Bundles, Kanäle, Protokolle, Geräte.
BerechtigungBeschreibungApp AdminApp EntwicklerApp HosterApp Leser
app.readApp-Daten, -Statistiken und -Metadaten anzeigen
app.update_settingsApp-Einstellungen bearbeiten
app.read_bundlesDie Liste der hochgeladenen Pakete anzeigen
app.upload_bundleEin neues Paketversion hochladen
app.create_channelEin neues Kanal erstellen
app.read_channelsKanäle anzeigen
app.read_logsAktualisierungs-Lieferungsprotokolle anzeigen
app.manage_devicesGeräte zuweisen, überschreiben oder entkoppeln
app.read_devicesGeräteliste anzeigen
app.build_nativeeine native Cloud-Build auslösen
app.read_auditAnwendungsaktivitätsprotokoll anzeigen
app.update_user_rolesAnwendungsrollenzuweisungen verwalten
bundle.deleteEine Bundle löschen

Gespeichert in einem einzelnen Kanal. Nützlich für die Bereitstellung von zielgerichteter Zugriff auf einen bestimmten Release-Kanal.

RolleInterne BezeichnungBeschreibung
Kanal-Adminchannel_adminVollzugriff auf einen Kanal: Einstellungen, Bündel promoten/rollen zurück, zwingende Geräte verwalten.
Kanal-Betrachterchannel_readerLeserecht — aktuelles Bündel, Historie, zwingende Geräte, Audit-Log.
BerechtigungBeschreibungKanal-AdminKanal-Betrachter
channel.readDen Kanal und sein aktuelles Bündel anzeigen
channel.update_settingsKanal-Einstellungen bearbeiten (Plattform-Toggle, Update-Politik…)
channel.deleteKanal löschen
channel.read_historyBündel-Zuweisungsgeschichte anzeigen
channel.promote_bundleAktives Bündel auf dem Kanal setzen
channel.rollback_bundleZurückrollen zu einem vorherigen Bündel
channel.manage_forced_devicesZwingen Sie bestimmte Geräte zu diesem Kanal
channel.read_forced_devicesZwingen Sie die Liste der zwingenden Geräte anzuzeigen
channel.read_auditKanal-Aktivitätsprotokoll anzeigen

Beschränkt auf eine einzelne Bündel-Version. Selten benötigt – die meisten Teams verwenden App-Rollen stattdessen.

Interne BezeichnungBeschreibungBundles-Administrator
Lesen, Metadaten aktualisieren und einen bestimmten Bundle löschen.bundle_adminBundles-Betrachter
Leserecht auf einen bestimmten Bundle.bundle_readerKanalberechtigungen überschreiben (Dashboard)

Channel permission overrides (Dashboard)

Kanalberechtigungsüberwachungen (Dashboard)

In der Dashboard-Ansicht wird der Zugriff auf Kanäle durch die Rolle des Benutzers im App-Portal standardmäßig bestimmt. Für eine feinere Kontrolle können Sie spezifische Kanalberechtigungen für jeden Benutzer oder Gruppe ohne Änderung seiner App-Rolle überschreiben.

Die Überwachungen werden von der App aus Zugriff konfiguriert, indem Sie auf das Schaltfeld (Schild-Symbol) neben einem Benutzer klicken. Siehe Organisation — Überwachung von Kanalberechtigungen für eine visuelle Anleitung.

Überschreibbare Berechtigungen

Kanalberechtigungsüberwachungen (Dashboard)
BerechtigungenBeschreibungStandardverhalten
LesenKanal und aktuelles Bundle anzeigenVon der Rolle des Apps geerbt
HistorieBundle-Zuweisungs-Historie anzeigenVon der Rolle des Apps geerbt
Bundle zuweisenAktives Bundle auf dem Kanal setzen oder ändernVon der Rolle des Apps geerbt

Jede Berechtigung kann auf:

  • Standard — von der App-Rolle erben (der Standard)
  • Zulassen — ausdrücklich genehmigen, unabhängig von der App-Rolle
  • Verweigern — ausdrücklich ablehnen, unabhängig von der App-Rolle

Dies ermöglicht es Ihnen, zum Beispiel einem App-Leser die Möglichkeit zu geben, Bundles auf dem Kanal ohne sie zum App-Entwickler zu befördern, zu associieren. staging Rollenhierarchie


Abschnitt mit dem Titel „Rollenhierarchie“

Rollen bilden eine Hierarchie. Eine übergeordnete Rolle

erbt alle Berechtigungen Die Rollen bilden eine Hierarchie. Eine übergeordnete Rolle von seinen Kindern. Das bedeutet, dass ein org_admin kann alles tun, was ein app_admin kann, was wiederum alles tun kann ein channel_admin kann, und so weiter.

Super Admin (org_super_admin)
└── Admin (org_admin)
└── App Admin (app_admin)
├── App Developer (app_developer)
│ └── App Uploader (app_uploader)
│ └── App Reader (app_reader)
├── Bundle Admin (bundle_admin)
│ └── Bundle Viewer (bundle_reader)
└── Channel Admin (channel_admin)
└── Channel Viewer (channel_reader)

Wie es in der Praxis funktioniert:

  • Ein Administrator auf der Organisationsebene kann alles tun, was ein App-Administrator kann, auf jedem App in der Organisation.
  • Ein App-Admin auf einer bestimmten App kann alles tun, was ein Channel-Admin kann, auf jedem Kanal in dieser App.
  • Ein App-Entwickler kann alles tun, was ein App-Herausgeber kann, plus mehr.

Die Hierarchie fließt nur abwärts — ein channel_admin never gewinnt Organisationsrechte, selbst wenn sie auch eine App-Rolle innehaben.


Anstatt Rollen jedem Benutzer einzeln zuzuweisen, können Sie Gruppen erstellen und Rollen der Gruppe zuweisen. Jedes Gruppenmitglied erhält diese Rollen automatisch. Wie Gruppen funktionieren

Abschnitt mit dem Titel „Wie Gruppen funktionieren“

Eine Gruppe gehört zu
  • einer Organisation — sie kann nicht auf mehrere Orgs ausgedehnt werden. Gruppen können Rollenzuweisungen aufnehmen.
  • __CAPGO_KEEP_0__ jeder Bereich: Organisation, Anwendung, Kanal oder Paket. Zum Beispiel kann einer Gruppe die Rolle des "App-Entwicklers" auf App A und die Rolle des "Kanal-Admins" auf dem Kanal von App B zugewiesen werden. App-Entwickler Rolle Kanal-Admin Wenn die Berechtigungen eines Benutzers ausgewertet werden, werden alle seine Gruppenzugehörigkeiten transparent aufgelöst. Wenn eine seiner Gruppen die erforderliche Berechtigung gewährt, wird der Zugriff genehmigt. staging Ein Benutzer kann mehreren Gruppen angehören
  • , und die Berechtigungen aller Gruppen sind additiv.
  • Gruppen-basierte Berechtigungen gelten nur für __CAPGO_KEEP_0____CAPGO_KEEP_1__
  • __CAPGO_KEEP_2__ Benutzerprinzipien — API Schlüssel erben keine Gruppenrollen.
SzenarioOhne GruppenMit Gruppen
5 QA-Engineure benötigen Zugriff auf 3 Apps15 individuelle Rollenzuweisungen1 Gruppe + 3 Rollenzuweisungen
Jemand tritt der QA-Team beiHändisch 3 Rollenzuweisungen hinzufügenFügen Sie sie der Gruppe hinzu
Jemand verlässt das QA-TeamEntfernen Sie 3 Rollenzuweisungen manuellEntfernen Sie sie aus der Gruppe

Alle Gruppen-Endpunkte erfordern eine Authentifizierung und werden unter /private/groups.

Terminalfenster
curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \
-H "authorization: <API_KEY>"

Benötigt org.read_members Genehmigung.

Terminalfenster
curl -X POST "https://api.capgo.app/private/groups/<ORG_ID>" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "QA Team",
"description": "Quality assurance engineers"
}'

Erforderlich org.update_user_roles Genehmigung (Super Administrator oder Administrator).

Gruppe aktualisieren

Sektion: Gruppe aktualisieren
Terminalfenster
curl -X PUT "https://api.capgo.app/private/groups/<GROUP_ID>" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "QA Team",
"description": "Updated description"
}'
Terminalfenster
curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \
-H "authorization: <API_KEY>"

Wenn eine Gruppe gelöscht wird, werden auch alle ihre Rollenzuweisungen entfernt. Mitglieder werden nicht aus der Organisation gelöscht.

Terminalfenster
curl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \
-H "authorization: <API_KEY>"
Terminalfenster
curl -X POST "https://api.capgo.app/private/groups/<GROUP_ID>/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "user_id": "<USER_UUID>" }'

Der Benutzer muss bereits Mitglied der Organisation sein. Die Hinzufügung eines bestehenden Mitglieds ist eine No-Operation.

Terminalfenster
curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \
-H "authorization: <API_KEY>"

Terminalfenster
curl -X GET "https://api.capgo.app/organization/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "orgId": "<ORG_ID>" }'

Antwort:

[
{
"uid": "user-uuid",
"email": "alice@example.com",
"image_url": "https://...",
"role": "org_admin",
"is_tmp": false
}
]
Terminalfenster
curl -X POST "https://api.capgo.app/organization/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"orgId": "<ORG_ID>",
"email": "bob@example.com",
"invite_type": "org_admin"
}'

Gültige Werte für invite_type:

WertZugeteilter Rolle
org_super_adminSuper Administrator
org_adminAdministrator
org_billing_adminKundenverwaltungsberechtigter
org_memberMitglied
Terminalfenster
curl -X DELETE "https://api.capgo.app/organization/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"orgId": "<ORG_ID>",
"email": "bob@example.com"
}'

Terminalfenster
npx @capgo/cli organization list --apikey <API_KEY>
Terminalfenster
npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>

Die eingebauten Rollen decken die meisten Teamstrukturen ab. Die Erstellung von benutzerdefinierten Rollen steht auf unserem Roadmap – wenn Ihr Team diese Funktion benötigt, kontaktieren Sie uns. Ihr Use Case wird uns direkt helfen, diese Funktion zu priorisieren.

Wenn Sie Access Control Reference zur Planung von Dashboard- und API-Operationen verwenden, verbinden Sie es mit API-Übersicht für die Implementierungsdetails in API Übersicht, Einführung für die Implementierungsdetails in Einführung, API Schlüssel für die Implementierungsdetails in API Schlüssel, Geräte für die Implementierungsdetails in Geräte, und Bundles für die Implementierungsdetails in Bundles.