Auf höherer Ebene besteht das System aus einem Authentifizierungsbereich, einem Autorisierungsbereich, Rollen und Teams. Der Authentifizierungsbereich überprüft die Identität des Benutzers oder des Systems, die sich in IBM UrbanCode Deploy anmelden möchten. Der Autorisierungsbereich verwaltet Benutzergruppen. Rollen verwalten Berechtigungen. Teams verbinden Benutzer mit Rollen und sicheren Produktbereichen.
Ein guter Ausgangspunkt für ein besseres Verständnis des teambasierten Sicherheitssystems ist die Kenntnis der Berechtigungen. IBM UrbanCode Deploy benutzt den Begriff Berechtigung auf eine Weise, die den meisten Lesern bekannt ist: Jede Berechtigung steuert den Zugang zu einem Produktbereich oder einer Produktfunktion. Die meisten Berechtigungen beziehen sich auf typische Aktivitäten wie Erstellen, Lesen, Aktualisieren und Löschen. Berechtigungen definieren, was getan werden kann, und nicht, wer etwas tun kann.
Die meisten Produktbereiche verfügen über einen Satz Berechtigungen, die bestimmen, wie die Benutzer damit interagieren. Die Berechtigungen eines Produktbereichs werden von Sicherheitstypen definiert. Der Komponentenproduktbereich verfügt über Sicherheitstypen, die sich auf die Fähigkeit der Komponenteninteraktion des Benutzers auswirken. Die Sicherheitstypen, die für den Agentenproduktbereich verfügbar sind, betreffen Agenten usw.
Für die meisten Produktbereiche können mehrere Produktbereiche definiert werden. Jeder zulässige Sicherheitstyp wird mit einem "Standard"-Typ bereitgestellt, der für ihn definiert wird, beispielsweise "Standard-Agent" oder "Standard-Komponente". Jeder zusätzliche Typ in einem Bereich enthält dieselbe Gruppe von Berechtigungen. Beispielsweise hat jeder Agententyp dieselbe Berechtigungsmenge: Bearbeiten und Anzeigen. Siehe Sicherheitstypen.
Eine Rolle ist eine Gruppe von erteilten Berechtigungen. Das Definieren einer Rolle besteht aus der Erteilung von Berechtigungen für alle Sicherheitstypen, die von der Rolle betroffen sind. Die Rolle "Entwickler" kann Berechtigungen enthalten, Anwendungen zu erstellen, aber nicht, sie in einer Produktionsumgebung auszuführen. Alternativ kann die Rolle "Implementierer" die Berechtigung enthalten, Anwendungen auszuführen, nicht aber, sie zu erstellen. Sie entscheiden über die Anzahl der Rollen und ihre Funktionen. Im Lieferzustand bietet IBM UrbanCode Deploy eine Rolle, die Administratorrolle, der alle Berechtigungen für alle Sicherheitsgruppen erteilt werden.
Ein Team ist ein Konstrukt, das Benutzer oder Gruppen mit Rollen verknüpft. Wenn ein Benutzer einem Team hinzugefügt wird, erhält diese Person eine Rolle zugeordnet. Benutzer können ohne Rollenzuordnung keinem Team hinzugefügt werden. Rollenmitglieder erhalten automatisch alle Berechtigungen, die für die Rolle definiert sind. Gruppen können auch Rollen hinzugefügt werden. In diesem Fall erhalten alle Gruppenmitglieder automatisch die Berechtigungen, die für die Rolle definiert wurden.
Wenn ein Team erstellt wird, sind alle Benutzer und Gruppen für die Zuordnung verfügbar und alle Rollen können verwendet werden. Benutzer können mehr als einer Rolle zugeordnet werden. Wenn ein Benutzer einer Rolle zugeordnet wird, die eine bestimmte Berechtigung erteilt, und einer anderen Rolle, die diese Berechtigung nicht erteilt, wird der Benutzer als berechtigt angesehen.
Teams sichern Ressourcen. Um eine Umgebung zu sichern, wird dieser beispielsweise ein Team zugewiesen. Nachdem eine Umgebung gesichert wurde, können nur Teammitglieder, denen eine Rolle mit der entsprechenden Berechtigung zugeordnet wurde, die Umgebung verändern.
Das Systemteam, das mit IBM UrbanCode Deploy ausgeliefert wird, hat den Benutzer mit Administratorberechtigung, dem die Administratorrolle zugewiesen ist. Die Administratorrolle verfügt über alle Berechtigungen, die allen standardmäßigen Sicherheitstypen, dem Server sowie den Webbenutzerschnittstelle-Einstellungen zugewiesen wurden. Das Systemteam kann nicht gelöscht werden.
Zwei Arten von Berechtigungen sind möglich: Typen mit einem bestimmten Geltungsbereich und Typen mit einem allgemeinen Geltungsbereich. Die Umgebungssicherheitstypen haben vier Berechtigungen: Erstellen, Bearbeiten, Ausführen und Anzeigen. Mit Ausnahme der Berechtigung \"Erstellen\" betreffen diese Berechtigungen ausschließlich eine bestimmte Ressource. Sie sind auf eine bestimmte Umgebung beschränkt. Wenn ein Team mit der Ausführungsberechtigung der Produktionsumgebung zugewiesen ist, können nur Teammitglieder mit dieser Berechtigung Anwendungen in der Umgebung ausführen. Teammitglieder mit anderen Rollen, die die Ausführungsberechtigung nicht enthalten, können hier keine Anwendung ausführen. Mitglieder von Teams, die der Umgebung nicht zugewiesen sind, können Anwendungen nicht ausführen, auch wenn sie über die Ausführungsberechtigung verfügen.
Die Erstellungsberechtigung ist von anderen Berechtigungstypen verschieden. Der Typ "Erstellen" ist nicht auf eine bestimmte Ressource ausgerichtet, sondern breiter angelegt. Teammitglieder mit einer Erstellungsberechtigung können Ressourcen des betreffenden Typs erstellen, ohne dass zuerst Teammitglieder an eine bestimmte Ressource angehängt werden müssen. Um das Umgebungsbeispiel weiter fortzuführen: Benutzer mit der Erstellungsberechtigung können Umgebungen erstellen, auch wenn ihr Team nicht einer bestimmten Umgebung zugewiesen ist.
In der folgenden Abbildung ist das Team productionTeam der Umgebung tutorialProdEnvironment zugewiesen. Die Rolle productionRole hat die Ausführungsberechtigung für Umgebungen. Teammitglieder mit dieser Rollen, beispielsweise prodDeployer, können Anwendungen in der Umgebung ausführen. Teammitglieder ohne diese Rolle, beispielsweise developerLead, können Anwendungen nicht ausführen, auch wenn das Team der Umgebung zugewiesen ist.

Wenn ein Team einem Objekt zugeordnet ist, ist der Sicherheitstyp ebenfalls festgelegt. Durch Variieren der Sicherheitstypen können Sie eine Feinabstimmung der Berechtigungen vornehmen. Beispielsweise kann ein Team einen Satz Berechtigungen für eine Komponente und durch Änderung des Sicherheitstyps einen anderen Satz für andere Komponenten haben.