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.

For a visual walkthrough of managing members in the dashboard, see 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 Zielbereich haben — zum Beispiel eine Organisationenrolle, eine Rolle auf App A und eine andere Rolle auf 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 den Organisationsschöpfer zugewiesen.
Adminorg_adminVollständige Verwaltung — Mitglieder, Apps, Kanäle verwalten. Die Organisation kann nicht gelöscht werden, die Abrechnung aktualisiert werden, Apps übertragen werden oder Benutzer zu Super Admins befördert werden.
Abrechnungsmanagerorg_billing_adminZugriff auf Abrechnung nur: Abrechnungs- und Rechnungsdaten sowie Abrechnungsprotokolle anzeigen und aktualisieren. Kein Zugriff auf Apps oder Mitglieder.
Mitgliedorg_memberLeserecht auf die Organisation und alle ihre Apps.
RechtBeschreibungSuper AdministratorAdministratorKostenstellenverwalterMitglied
org.readOrganisation ansehen
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 aufsteigen — durch Rollen-Hierarchie blockiert)
org.read_billingRechnungsinformationen und aktuelles Abonnement anzeigen
org.update_billingZahlungsmethode und Abonnement aktualisieren
org.read_invoicesRechnungen anzeigen
org.read_auditOrganisationsaktivitäten anzeigen
org.read_billing_auditRechnungsbezogene Audit-Log anzeigen

Gespeichert auf einer einzelnen App. Verwenden Sie diese, wenn ein Teammitglied nur auf eine App arbeiten soll, nicht auf die gesamte Organisation.

RolleInterne BezeichnungBeschreibung
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 App-Einstellungen ändern, keine Kanal-Erstellung.
App Hosterapp_uploaderLeserecht + neue Bundle-Versionen hochladen.
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_logsUpdate-Lieferungsprotokolle anzeigen
app.manage_devicesGeräte zuweisen, überschreiben oder trennen
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

Einschränkt auf ein einzelnes Kanal. Nützlich für die Bereitstellung von zielgerichteter Zugriff auf eine bestimmte Release-Kanal.

RolleInterne BezeichnungBeschreibung
Kanal-Adminchannel_adminVollzugriff auf einen Kanal: Einstellungen, Bündel promoten/abbauen, gezwungene Geräte verwalten.
Kanal-Betrachterchannel_readerLeserecht — aktuelles Bündel, Historie, gezwungene Geräte, Audit-Log.
BerechtigungBeschreibungKanal-AdminKanal-Betrachter
channel.readDer 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 anstelle.

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

Kanalberechtigungen überschreiben (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 pro Benutzer oder Gruppe ohne Änderung der App-Rolle überschreiben.

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

BerechtigungBeschreibungStandardverhalten
LesenKanal und aktuelles Bundle anzeigenVon der Anwendungsrolle geerbt
HistorieBundle-Zuweisungs-Historie anzeigenVon der Anwendungsrolle geerbt
Bundle zuweisenAktives Bundle auf dem Kanal setzen oder ändernVon der Anwendungsrolle geerbt

Jede Berechtigung kann auf:

  • Standard — aus der Rolle des Apps erben (der Standard)
  • Zulassen — ausdrücklich genehmigen, unabhängig von der Rolle der App
  • Verweigern — ausdrücklich blockieren, unabhängig von der Rolle der App

Dies ermöglicht es Ihnen, zum Beispiel einem App-Leser die Möglichkeit zu geben, Pakete auf dem Kanal ohne deren Aufstufung zu einem App-Entwickler zu verknüpfen. staging Rollenhierarchie


Abschnitt mit dem Titel “Rollenhierarchie”

Rollen bilden eine Hierarchie. Eine übergeordnete Rolle

alle Berechtigungen erbt. von seinen Kindern. Das bedeutet, dass ein org_admin alles tun kann, was ein app_admin kann, was wiederum alles tun kann, was 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 auf jedem App in der Organisation kann,.
  • Ein App Admin kann alles tun, was ein Channel Admin kann, auf jedem Kanal in dieser App.
  • Ein App-Entwickler kann alles tun, was ein App-Uploader kann, plus mehr.

Die Hierarchie fließt nur herunter — ein channel_admin erlangt nie 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. Jeder Gruppenmitglied erbt diese Rollen automatisch. gruppen Wie Gruppen funktionieren

Abschnitt mit dem Titel „Wie Gruppen funktionieren“

Eine Gruppe gehört zu einer
  • __CAPGO_KEEP_0__ — sie kann sich nicht auf mehrere Orgs erstrecken. Gruppen können Rollenzuweisungen aufweisen
  • Gruppen können Rollenzuweisungen aufweisen Jeder Umfang: Organisation, Anwendung, Kanal oder Paket. Zum Beispiel kann einer Gruppe die Rolle des App-Entwicklers zugeordnet werden, auf Anwendung A, und die Rolle des Kanal-Admins auf dem Kanal von Anwendung B. staging Wenn die Berechtigungen eines Benutzers ausgewertet werden, werden alle seine Gruppenmitgliedschaften transparent aufgelöst. Wenn eine seiner Gruppen die erforderliche Berechtigung gewährt, wird der Zugriff gewährt.
  • Ein Benutzer kann zu
  • mehreren Gruppen gehören, und die Berechtigungen aller Gruppen addieren sich.Gruppen-basierte Berechtigungen gelten nur für
  • Gruppen-basierte Berechtigungen gelten nur für Benutzerprinzipien — API Schlüssel erben keine Gruppenrollen.
SzenarioOhne GruppenMit Gruppen
5 QA-Engineure benötigen Zugriff auf 3 Apps als Entwickler15 individuelle Rollenzuweisungen1 Gruppe + 3 Rollenzuweisungen
Jemand tritt der QA-Team bei3 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 Gruppenendpunkte 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"
}'

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

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:

WertZugeteilte Rolle
org_super_adminSuper Administrator
org_adminAdministrator
org_billing_adminKundenmanager
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 Pakete für die Implementierungsdetails in Pakete.