Zum Inhalt springen

Zugriffssteuerungsreferenz

Capgo verwendet Rollenbasierte Zugriffssteuerung (RBAC) um zu bestimmen, was jeder Teammitglied tun kann. Rollen sind nach Spielbereich Spielbereich

— vom gesamten Unternehmen bis hin zu einer einzelnen Bundle. Für eine visuelle Anleitung zum Verwalten von Mitgliedern im Dashboard, siehe.


Organisation

Rollenbereiche

Sektion mit dem Titel “Rollenbereiche”

Jede Rolle gehört zu einem Bereich, der bestimmt, welche Ressource sie Zugriff gewährt.BereichBeispielanwendung
OrganisationDie gesamte Organisation und alle ihre AppsIhr Mitgründer erhält Super-Administrator; Ihr Buchhalter erhält den Beauftragten für Abrechnung
AppEine einzelne App und ihre KanäleEin freier Mitarbeiter, der an einer App arbeitet, erhält Entwickler für App
KanalEin einzelner Kanal innerhalb einer AppEin QA-Engineer verwaltet nur den staging Kanal
PaketEin einzelnes Bundle-VersionEin Rezensent benötigt Leserecht für eine bestimmte Release

Ein Mitglied kann eine Rolle pro Zielbereich haben — zum Beispiel eine Rolle in der Organisation, 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.

RolleInterne BezeichnungBeschreibung
Super Administratororg_super_adminEigentümergleichwert. Vollzugriff einschließlich der Löschung der Organisation, der Verwaltung der Abrechnung und der Übertragung von Apps. Wird automatisch dem Organisationsschöpfer zugewiesen.
Adminorg_adminVollzugriff — Mitglieder, Apps, Kanäle verwalten. Die Organisation kann nicht gelöscht, die Abrechnung aktualisiert, Apps übertragen oder Benutzer zum Super Admin befördert werden.
Abrechnungsverwalterorg_billing_adminAbrechnungszugriff nur: Abrechnungsinfo, Rechnungen und Abrechnungsprotokolle anzeigen und aktualisieren. Kein Zugriff auf Apps oder Mitglieder.
Mitgliedorg_memberLeserecht auf die Organisation und alle ihre Apps.
RechtBeschreibungSuper AdminVerwalterKassenverwalterMitglied
org.readOrganisation ansehen
org.update_settingsOrganisationsname, Logo und E-Mail-Adresse der Verwaltung bearbeiten
org.deleteOrganisation endgültig löschen
org.read_membersMitgliederliste ansehen
org.invite_userNeue Mitglieder einladen
org.update_user_rolesMitgliederrollen ändern (Admin kann nicht auf Super Admin aufsteigen – durch Rollenstruktur blockiert)
org.read_billingRechnungsdaten und aktuelles Abonnement anzeigen
org.update_billingZahlungsmethode und Abonnement aktualisieren
org.read_invoicesRechnungen anzeigen
org.read_auditOrganisationsaktivitätsprotokoll anzeigen
org.read_billing_auditRechnungsspezifisches Auditprotokoll anzeigen

kann tun, über alle Apps und Kanäle hinweg.

Abschnitt mit dem Titel “App-Rollen”

Gespeichert auf ein einzelnes App. Verwenden Sie diese, wenn ein Teammitglied nur an einer App arbeiten soll, nicht an der gesamten Organisation.

RolleInterne BezeichnungBeschreibung
App-Administratorapp_adminVollständige Kontrolle über eine App — Kanäle, Geräte, Benutzerrollen für die App. Kann die App nicht löschen oder übertragen (diese sind Organisationsebenenoperationen).
App-Entwicklerapp_developerBundles hochladen, Geräte verwalten, native Builds auslösen, Kanal-Einstellungen aktualisieren. Keine Löschung, keine Änderungen an App-Einstellungen, keine Kanal-Erstellung.
App-Hochloaderapp_uploaderLeserecht + neue Bundle-Versionen hochladen.
App-Leserapp_readerLeserecht — Statistiken, Pakete, Kanäle, Protokolle, Geräte.
App-Vorschauapp_previewOrganisations- und app-gesteuerte Vorschau- CI-Lebenszyklus: Hochladen eines Pakets und Erstellen eines Vorschaukanals. Das Erstellen dieses Kanals erteilt automatisch nur die Lebenszyklusrechte für ihn.

App-Berechtigungs-Matrix

Berechtigungs-Matrix für Apps
BerechtigungBeschreibungApp-AdministratorApp-EntwicklerApp-HochloaderApp-Leser
app.readAnzeige von App-Daten, -Statistiken und -Metadaten
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 entkoppeln
app.read_devicesGeräteliste anzeigen
app.build_nativeEin natives Cloud-Build auslösen
app.read_auditApp-basierte Aktivitätsprotokolle anzeigen
app.update_user_rolesApp-basierte Rollenzuweisungen verwalten
bundle.deleteEin Paket löschen

App-Vorschau-Berechtigung

Verwendung

App-Vorschau für eine Organisation- und App-genaue CI-Schlüssel, die ein PR-Vorschau-Lebenszyklus ohne umfassenden App- oder Organisationseinstellungen verwaltet. (app_previewund

Die app_preview die Bindung gewährt nur diese Anwendungsrechte:

ZugriffsberechtigungErmöglicht
app.readDas ausgewählte App lesen
app.read_bundlesDie hochgeladenen Pakete lesen
app.upload_bundleEin Paket hochladen
app.create_channelEin Kanal erstellen

Wenn ein App-Vorschau-Schlüssel einen Kanal erstellt, Capgo gibt diesem Schlüssel automatisch einen Kinderecht für den neuen Kanal: channel_preview Zugriffsberechtigung

ErmöglichtRead the selected app
channel.readLese den von der Schlüssel erstellten Kanal
channel.promote_bundleSetze die vom Schlüssel hochgeladene Bundle auf diesem Kanal
channel.deleteLösche diesen Kanal

Da app_preview behält app.read, kann der Schlüssel die Metadaten des Kanals in der ausgewählten App auflisten. Die automatische Kindbindung ist ein Grenze: sie gewährt keine Lebenszyklusmutationen für einen Kanal, den der Schlüssel nicht erstellt hat. __CAPGO_KEEP_0__ registriert den Vorabansichtsschlüssel, der jeden Kanal erstellt und jedes Bundle hochgeladen hat. Daher kann ein App-Vorabansichtsschlüssel jeden nicht öffentlichen Vorabansichtskanal erstellen, das eigene Bundle promoten und diesen Kanal und das Bundle atomisch löschen,

Capgo records the preview key that created each channel and uploaded each bundle. Therefore an App Preview key can create each non-public preview channel it needs, promote its own bundle, and atomically delete that channel and bundle with channel delete --delete-bundle, Geräte- oder Rollenmanagement,

It does not include app.update_settings, device or role management, channel.update_settings, channel.rollback_bundleAufgezwungene Geräteverwaltung, oder allgemein bundle.delete.


Gespeichert auf einem einzelnen Kanal. Nützlich für die Bereitstellung von zielgerichteten Zugriffen auf einen bestimmten Release-Kanal.

RolleInterne BezeichnungBeschreibung
Kanaladministratorchannel_adminVollzugriff auf einen Kanal: Einstellungen, Bundles vor- und zurücksetzen, zwingende Geräte verwalten.
Kanalbetrachterchannel_readerLeserecht — aktuelles Bundle, Historie, zwingende Geräte, Audit-Protokoll.
Kanalvorschauchannel_previewSystemzugeordnet zum App-Vorschau-Schlüssel, der den Kanal erstellt hat: Leserecht, eigenen Bundle vorziehen und den Kanal löschen.
BerechtigungBeschreibungKanaladministratorKanalbetrachterKanalvorschau
channel.readDer Kanal und dessen aktuelles Bundle anzeigen
channel.update_settingsKanal-Einstellungen bearbeiten (Plattform-Toggle, Update-Politik…)
channel.deleteDen Kanal löschen
channel.read_historyBundle-Zuweisungsgeschichte anzeigen
channel.promote_bundleDas aktive Bundle auf dem Kanal festlegen
channel.rollback_bundleZurückrollen zu einem vorherigen Bundle
channel.manage_forced_devicesZwingen Sie bestimmte Geräte zu diesem Kanal
channel.read_forced_devicesAnzeigen der Liste der zwingend eingebundenen Geräte
channel.read_auditAnzeigen der Aktivitätsprotokolle des Kanals

Bundle-Rollen zuweisen

Rollen innerhalb eines Bundles

Geskoperter auf eine einzelne Bundle-Version. Selten benötigt — die meisten Teams verwenden stattdessen App-Rollen.

RolleInterne BezeichnungBeschreibung
Bundle-Administratorbundle_adminEin bestimmtes Bundle lesen, aktualisieren und löschen.
Bundle-Betrachterbundle_readerLeserecht für ein bestimmtes Bundle.

Kanalberechtigungsüberprüfungen (Dashboard)

Überschrift: "Kanalberechtigungsüberprüfungen (Dashboard)"

In der Dashboard-Ansicht wird der Zugriff auf einen Kanal durch die Rolle des Benutzers im App-Portal bestimmt. Für eine feinere Kontrolle können Sie spezifische Kanalberechtigungen pro Benutzer oder Gruppe ohne Änderung der App-Rolle überschreiben. Ein bestimmtes Bundle lesen, aktualisieren und löschen.

Übernahmen werden von der App aus konfiguriert Zugriff Zugriff Zugriff Organisation — Übernahme von Kanalberechtigungen

BerechtigungBeschreibungStandardverhalten
LesenDer Kanal und dessen aktuelles Bundle anzeigenVon der App-Rolle geerbt
GeschichteBündelzuweisungsgeschichte anzeigenVon der App-Rolle geerbt
Bündel zuweisenAktuelles Bündel auf dem Kanal setzen oder ändernVon der App-Rolle geerbt

Jede Berechtigung kann auf folgende Weise festgelegt werden:

  • Standard — von der App-Rolle (der Standard) erben
  • Erlauben — explizit erteilen, unabhängig von der App-Rolle
  • Verweigern — explizit blockieren, unabhängig vom App-Rollenstatus

Mit diesem können Sie zum Beispiel einem App-Leser die Möglichkeit geben, Kanäle zu verbinden, ohne sie zu einem App-Entwickler zu befördern. staging Rollenhierarchie


Abschnitt mit dem Titel „Rollenhierarchie“

Rollen bilden eine Hierarchie. Eine übergeordnete Rolle

erbt alle Berechtigungen deren Kinder. Das bedeutet, dass ein alles tun kann, was ein org_admin tun kann, was in der Folge alles tun kann, was ein app_admin tun kann, und so weiter. channel_admin __CAPGO_KEEP_0__

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 Ein Administrator auf Organisations-Ebene kann alles tun, was ein App-Administrator kann, auf jedem App in der Organisation.
  • Ein App-Administrator auf einer bestimmten App kann alles tun, was ein Kanal-Administrator kann, auf jedem Kanal in dieser App.
  • Ein App-Entwickler kann alles tun, was ein App-Herausgeber kann, plus noch mehr.

Die Hierarchie fließt nur abwärts — ein channel_admin erhält nie Berechtigungen auf Organisations-Ebene, selbst wenn sie auch eine Rolle auf Anwendungsebene innehaben.


Stattdessen können Sie Rollen anstatt jedem Benutzer einzeln zuweisen, Gruppen erstellen Gruppen und Rollen zuweisen an die Gruppe. Jeder Mitglied der Gruppe erhält diese Rollen automatisch.

  • Eine Gruppe gehört zu einer Organisation — sie kann sich nicht auf mehrere Orgs erstrecken.
  • Gruppen können Rollenzuweisungen auf jeder Ebenehaben: Org, App, Kanal oder Bundle. Zum Beispiel kann eine Gruppe dem App-Entwickler Rollen auf App A und dem Kanal-Admin Rolle im staging Kanal von App B.
  • Wenn die Berechtigungen eines Benutzers bewertet 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 Gruppenangehören, und die Berechtigungen aller Gruppen sind additiv.
  • Gruppen-basierte Berechtigungen gelten nur für Benutzerprinzipale — API Schlüssel erben keine Gruppenrollen.

Wann Gruppen verwenden

Wann Gruppen verwenden
SzenarioOhne GruppenMit Gruppen
5 QA-Engineure benötigen Zugriff auf 3 Apps15 individuelle Rollenzuweisungen1 Gruppe + 3 Rollenzuweisungen
Jemand tritt der QA-Team beiFügen Sie 3 Rollenzuweisungen manuell hinzuFü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.

Gruppen auflisten

Terminal-Fenster
In die Zwischenablage kopieren
curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \
-H "authorization: <API_KEY>"

Berechtigung. org.read_members Gruppe erstellen

Abschnitt mit dem Titel „Gruppe erstellen“

Terminal-Fenster
Alle Gruppen-Endpunkte erfordern eine Authentifizierung und werden unter __CAPGO_KEEP_0__ bereitgestellt.
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"
}'

Benötigt org.update_user_roles Zugriffsberechtigung (Super Admin oder Zugriffsberechtigung).

Abschnitt: Ein Gruppe aktualisieren
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"
}'

Zwischenablage kopieren

Eine Gruppe löschen
Terminalfenster
curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \
-H "authorization: <API_KEY>"

Wenn ein Gruppe gelöscht wird, werden auch alle ihre Rolle-Zuweisungen 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. Ein bestehendes Mitglied hinzufügen ist eine No-Operation.

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

Terminal-Fenster
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
}
]
Terminal-Fenster
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"
}'

Zulässige Werte für invite_type:

WertZugeordneter Rolle
org_super_adminHochrangiger Administrator
org_adminAdministrator
org_billing_adminRechnungsverwaltung
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 benutzerdefinierter Rollen steht auf unserem Roadmap – wenn dies etwas ist, das Ihr Team benötigt, Kontaktieren Sie unsIhr Use Case wird direkt unsere Priorisierung dieses Features beeinflussen.

Wenn Sie Access Control Reference verwenden Access Control Reference um das Dashboard und die API-Operationen zu planen, verbinden Sie es mit API-Übersicht für die Implementierungsdetails in der API-Übersicht Einführung für die Implementierungsdetails in der Einführung API-Schlüssel für die Implementierungsdetails in API Schlüsseln Geräte für die Implementierungsdetails in Geräten und Bundles für die Implementierungsdetails in Bundles.