Das Control Center stellt der Vl App folgende Schnittstelle zur Verfügung:
Authentifizierung
Die App verwendet während der Geräteaktivierung einen gültigen Lizenzschlüssel für die Authentifizierung:Erstellung eines gültigen Access Tokens mittels POST auf /api/Core/ControlCenter/Mobile/LicenceApp/RequestToken
. Dieses Access Token muss anschliessend als Bearer Token jedem nachfolgenden Request mit gesendet werden.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "usernameUsername": "5668FC8C-A124-4F36-A764-03E292CA9ED0<Lizenzschlüssel>", "passwordPassword": "5668FC8C-A124-4F36-A764-03E292CA9ED0<Lizenzschlüssel>" } |
Damit dies funktioniert, wird beim Abgleich der Lizenzen von VinX I-AG zum Control Center für jede Lizenz ein Benutzer in der CC-integrierten User-DB angelegt. Weiter muss dieser (Lizenz-)Benutzer folgende Berechtigungen haben:
ScopeNamesInfrastructure.ReaderScope
ClaimNamesInfrastructure.GeneralClaim
PermissionKind.Read
Zur Vereinfachung der Verwaltung wird die Rolle "AppUser" angelegt, die diese Berechtigungen hat. Die Benutzer müssen dann nur noch in dieser Rolle sein.
Diese Basiskonfiguration Berechtigung - Rollen soll über eine Seed-Datei Seed.Realm.Integrated.json eingelesen werden. Passwörter siehe Kee Pass.Antwort ist:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "RealmConfigaccess_token": { "Realm": "Integrated" }...", "AuthenticationPluginData": { "Roles": [{ "Name": "Admin" }, { "Name": "System" } ], "RoleClaims": [{ "RoleName": "Admin", "ScopeName": "Base.Admin", "ClaimName": "General", "AllowedPermissions": 31 }, { "RoleName": "System", "ScopeName": "Base.Systemrefresh_token": "...", "ClaimName"token_type": "GeneralBearer", "AllowedPermissions": 31 } ], "Users": [{ "Name": "SystemAdmin", "Password": <pwd> }, { "Name": "Support", "Password": <pwd> } ], "UserRoles": [{ "RoleName": "Admin", "UserName": "Support", },{ "RoleName": "System", "UserName": "SystemAdmin", } ], "UserClaims": [] }, "Type": "IAG.IdentityServer.Configuration.Model.Realm.RealmImportExport" } |
...
username": "<Lizenzschlüssel>",
} |
Gerät aktivieren
POST auf /api/Core/ControlCenter/Mobile/LicenceApp
/
Check
...
Code Block |
---|
{ "Licence": "<Lizenz><Lizenzschlüssel>", "DeviceId": "<optional: Geräte-ID>", "DeviceInfo": "<optional: Geräte Info>" } |
...
Code Block |
---|
{ "LicenseStatus": "Inuse", "TenantId": "d5c56c87-2ab2-4053-a0dd-7164049fd64f", "Backends": [ { "Id": "81d6444d-6e89-42f0-822e-6283b0578e76", "Url": "http://1.1.1.1:8088", "Name": "PROD", "SyncInterval": 10, "Color": "#00ffff" }, { "Id": "91538297-641d-4ee9-b5b6-5767be80890f", "Url": "http://1.1.1.1:8085", "Name": "TEST", "SyncInterval": 10, "Color": "#ff8000" } ], "Modules": [ { "Name": "ArticleInformation" }, { "Name": "Inventory", "ValidUntil": "2022-04-14T00:00:00.000000Z" } ] } |
mit licenseStatus
Code Block |
---|
New = 10, Inuse = 20, Revoked = 30, Invalid = 50 |
Erweiterung für modul-basierte Lizenzierung
Der Knoten Modules
ist eine Ergänzung für die Konzept Lizenzierung.
Name
identifiziert das lizenzierte ModulValidUntil
enthält den Zeitpunkt, bis zu welchem das Modul in der App verfügbar ist- Fehlt
ValidUntil
im JSON, so ist das Modul für unbegrenzte Zeit verfügbar - Module, welche im JSON nicht aufgeführt werden, stehen der App nicht zur Verfügung.
...
Code Block | ||||
---|---|---|---|---|
| ||||
// Enthält alle bisher definierten Module. Weitere Module werden fortlaufend ergänzt. ArticleInformation Inventory Arrival |
...
Gerät deaktivieren
POST auf api/Core/ControlCenter/Mobile/LicenceApp
/
Free
...
Code Block |
---|
{ "Licence": "<Lizenz><Lizenzschlüssel>", "DeviceId": "<optional: Geräte-ID>", "DeviceInfo": "<optional: Geräte Info>" } |
...
Code Block |
---|
{ "LicenseStatus": "new" } |
mit LicenseStatus
Code Block |
---|
New = 10, Invalid = 50 |
Persistenz
...