In diesem Kapitel erfahren Sie, wie Sie Ihre Arbeitsumgebung für die Nutzung des One Identity-GitHub-Repositorys einrichten, sodass Sie anschließend eigene Webanwendungen entwickeln können.
Voraussetzungen:
Um Ihre Arbeitsumgebung einzurichten
-
Beantragen Sie Zugriff auf das One Identity-GitHub-Repository. Das One Identity-GitHub-Repository steht Ihnen unter folgender URL zur Verfügung: https://github.com/OneIdentity/IdentityManager.Imx
-
Erstellen Sie einen Fork des One Identity-GitHub-Repositorys (siehe https://docs.github.com/en/get-started/quickstart/fork-a-repo).
-
Installieren Sie npm (siehe https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).
-
Führen Sie folgenden Befehl in einem Kommandozeilenprogramm aus:
npm install -g @angular/cli@<Versionsnummer>
Für den Zugriff auf die API wird der Typescript-API-Client verwendet.
Für jedes One Identity Manager-Modul, das API-Dienste bereitstellt, existiert eine Angular-Bibliothek imx-api-<Modulname>.tgz als NPM-Paket im Ordner imx-modules des Repositorys.
HINWEIS: Die API-Client-Bibliotheken sind nicht von Angular abhängig und können somit aus allen Javascript-Programmen verwendet werden.
Die TypeScript-API-Clients bestehen aus den folgenden Teilen:
-
Endpoint-basierte Methoden:
Die Klasse V2Client des API-Clients enthält für jeden API-Endpoint eine Methode. Der Name der Methode wird nach dem folgenden Schema generiert:
<URL-Pfad des API-Endpoints>_<HTTP-Methode>
Beispiel
Die Methode GET portal/serviceitems wird zur Typescript-Methode portal_serviceitems_get.
-
Entity-basierte Methoden:
Die Klasse TypedClient des API-Clients enthält für jede entity-basierte API-Methode eine Wrapper-Klasse, die es ermöglicht, Entities zu laden und zu speichern.
Beispiel für Methoden für interaktive Entities
Für die Methode portal/serviceitems/interactive gibt es die Eigenschaft TypedClient.PortalServiceItemsInteractive vom Typ der Wrapper-Klasse PortalServiceItemsInteractiveWrapper.
Je nach Umfang der unterstützten Operationen einer API-Methode gibt es die folgenden Methoden an der Wrapper-Klasse:
-
Die Methode createEntity wird zum Erstellen einer neuen Entity verwendet.
-
Die Methode Get_byid wird zum Laden einer interaktiven Entity vom API Server verwendet. Der API Server unterstützt pro Anfrage nur das Laden eines einzelnen Objekts aus der Datenbank als interaktive Entity. Dabei müssen die Primärschlüsselwerte des Objekts als Methodenparameter angegeben werden.
-
Die Methoden Put und Post werden zum Speichern von Entities mit der PUT-Operation verwendet. Diese Methoden dürfen nicht direkt aufgerufen werden, sondern werden über die Methode commit() des Interfaces IEntity angesteuert.
Kapselung als Service
Der Zugriff auf die API ist pro Angular-Bibliothek in einem eigenen Angular-Service gekapselt, der sich in eigene Klassen importieren lässt:
-
In der Angular-Bibliothek qbm heißt der Service imx_SessionService.
-
In der Angular-Bibliothek qer heißt der Service QerApiService.
-
In allen anderen Angular-Bibliotheken heißt der Service ApiService.
Um eigene HTML-Anwendungen zu erstellen und zu bearbeiten, können Sie Angular-Bibliotheken ändern und Plugins zum API Server hinzufügen.
Detaillierte Informationen zum Thema
Wenn Sie den Code einer Angular-Bibliothek ändern, müssen Sie eigene Versionen aller Angular-Anwendungen, die die geänderte Angular-Bibliothek verwenden sollen, erstellen und bereitstellen.
Wenn Sie beispielsweise die Angular-Bibliothek qer ändern, müssen Sie auch die Angular-Anwendungen qer-app-portal, qer-app-operationssupport und qer-app-pwdportal kompilieren, da all diese Anwendungen die Angular-Bibliothek qer enthalten.
Wenn Sie den Code einer Angular-Plugin-Bibliothek ändern, müssen Sie eine eigene Version der Angular-Plugin-Bibliothek selbst und aller von ihr abhängigen Angular-Plugin-Bibliothek erstellen und bereitstellen.
Wenn Sie beispielsweise die Angular-Plugin-Bibliothek tsb ändern, müssen Sie auch die Angular-Plugin-Bibliotheken aad und o3t kompilieren, da diese Angular-Plugin-Bibliotheken die Angular-Plugin-Bibliothek tsb enthalten.