Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 24 Next »

Das Control Center stellt der App folgende Schnittstelle zur Verfügung:

Authentifizierung

Die App verwendet während der Geräteaktivierung einen gültigen Lizenzschlüssel für die Authentifizierung:

Authentifizierung am ControlCenter
{
    "username": "5668FC8C-A124-4F36-A764-03E292CA9ED0",
    "password": "5668FC8C-A124-4F36-A764-03E292CA9ED0"
}

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.

Seed CC
{
    "RealmConfig": {
        "Realm": "Integrated"
    },
    "AuthenticationPluginData": {
        "Roles": [{
                "Name": "Admin"
            }, {
                "Name": "System"
            }
        ],
        "RoleClaims": [{
                "RoleName": "Admin",
                "ScopeName": "Base.Admin",
                "ClaimName": "General",
                "AllowedPermissions": 31
            }, {
                "RoleName": "System",
                "ScopeName": "Base.System",
                "ClaimName": "General",
                "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"
}

/Check - Gerät aktivieren

POST auf /api/Core/ControlCenter/Mobile/LicenceApp/Check

Input ist ein Parameter mit 

{
  "Licence": "<Lizenz>",
  "DeviceId": "<optional: Geräte-ID>",
  "DeviceInfo": "<optional: Geräte Info>"
}

Antwort ist:

{
    "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

New = 10,
Inuse = 20,
Revoked = 30,
Invalid = 50

Erweiterung für modul-basierte Lizenzierung

Der Knoten Modules ist eine Ergänzung für die Lizenzierung.

  • Name identifiziert das lizenzierte Modul
  • ValidUntil 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.

Gültige Module sind

Module
// Enthält alle bisher definierten Module. Weitere Module werden fortlaufend ergänzt.
ArticleInformation
Inventory
Arrival

/Free - Gerät deaktivieren

POST auf api/Core/ControlCenter/Mobile/LicenceApp/Free

Input ist ein Parameter mit 

{
  "Licence": "<Lizenz>",
  "DeviceId": "<optional: Geräte-ID>",
  "DeviceInfo": "<optional: Geräte Info>"
}

Antwort ist:

{
    "LicenseStatus": "new"
}

mit LicenseStatus

New = 10,
Invalid = 50

Persistenz

Die App muss die verwendete Lizenz sowie den Sync-Interval auf dem lokalen Gerät speichern.


  • No labels