Beispiel für die Konfiguration - SSA für Manager

  1. Erstellen Sie ein Projekt oder verwenden Sie ein bereits existierendes Projekt.
  2. Verwenden Sie die CA sowie die verfügbaren Zertifikate, die Sie erstellt haben.
    VORSICHT: Die Zertifikate müssen sich auf der gleichen Partition befinden wie das WinCC OA-Projekt. Wenn ein Projekt z.B. auf D: gespeichert ist, müssen auch die Zertifikate auf D: gespeichert sein.
    VORSICHT: Die Zertifikate dürfen aus Sicherheitsgründen nicht im Projekt gespeichert werden. Die Zertifikate für den Webserver sind eine Ausnahme. Diese werden automatisch in das Projekt kopiert. Die Webserver-Zertifikate werden für alle Funktionen verwendet, die den Webserver benötigen. Solche Funktionen sind z.B. die Desktop UI und ULC UX.
  3. Sie benötigen die folgenden Zertifikate:
    • Die ca-chain.cert.pem-Datei benötigen Sie nur für den Server. Die Datei dient zur Überprüfung von Zertifikaten.
      Abbildung 1. ca-chain.cert.pem-Datei
    • Verwenden Sie auch die Zertifikate norole.cert.pem, para.cert.pem, revoked.cert.pem sowie rootuser.cert.pem sowie die crl.cert.pem-Datei aus dem Verzeichnis in dem diese gespeichert wurden:
    Abbildung 2. norole.cert.pem, para.cert.pem, revoked.cert.pem sowie rootuser.cert.pem-Dateien
    Abbildung 3. crl.cert.pem-Datei
    • Sie benötigen auch die Keys:

      • norole.key.pem
      • para.key.pem
      • revoked.key.pem
      • rootuser.key.pem
    Anmerkung: Schlüssel müssen nur auf dem Rechner existieren wo der Manager diese für die Authentifizierung verwendet. Auf dem Server wird nur die rootuser.key.pem benötigt, wenn der Server die Manager nur als Benutzer root startet. Die anderen Schlüssel werden nur auf den Clients, die eine Verbindung zum Server aufbauen, benötigt. Um die Clients zu authentifizieren, benötigt der Server nur die Chain-Datei.

    Abbildung: norole.key.pem, para.key.pem, revoked.key.pem, rootuser.key.pem

  4. Setzen Sie die folgenden Config-Einträge:
    [general]
     accessControlPlugin = "AccessControlPlugin"
    
    [webClient] 
    clientSideAuth = 0
    httpsPort = "443"
    httpPort = "0"
    rootPanel = "vision/login.pnl"
    mobileRootPanel = "vision/login.pnl"
    
    [ui]
    httpServer = "https://localhost:443"
    VORSICHT: Wenn Sie die Serverseitige Authentifizierung für UI-Manager verwenden, muss der Config-Eintrag [general] accessControlPlugin = "AccessControlPluginUser" verwendet werden!

    Setzen Sie die folgenden Server-Einstellungen:

    [general]
     ssaChainFile = "SSA_cert/ca-chain.cert.pem"
     ssaCRL = "SSA_cert/crl.cert.pem" 
    Anmerkung: In diesem Beispiel wird die Chain-Datei verwendet (siehe oberhalb). Wenn Sie Windows Cert Store-Zertifikate verwenden, benötigen Sie den config-Eintrag ssaChertCheck.

    Die folgenden Einstellungen für alle Control-Manager:

    [general]
    ssaPrivateKey = "file:SSA_cert/rootuser.key.pem"
    ssaCertificate = "file:SSA_cert/rootuser.cert.pem" 
        
    The following settings for the UI manager:
    [httpServer]
    uiArguments = "-p vision/login.pnl -centered -iconBar -menuBar -ssa"
        
    The following settings for different Control managers:
    [ctrl_3]
    ssaPrivateKey = "file:SSA_cert/para.key.pem"
    ssaCertificate = "file:SSA_cert/para.cert.pem"
        
    [ctrl_4]
    ssaPrivateKey = "file:SSA_cert/revoked.key.pem"
    ssaCertificate = "file:SSA_cert/revoked.cert.pem"
        
    [ctrl_5]
    ssaPrivateKey = "file:SSA_cert/norole.key.pem"
    ssaCertificate = "file:SSA_cert/norole.cert.pem"
        
    [ctrl_6]
     ssaPrivateKey = "file:SSA_cert/para.key.pem"
     ssaCertificate = "file:SSA_cert/para.cert.pem"  
    Abbildung 4. Config-Datei mit Config-Einträgen
  5. Erstellen Sie im Script Editor 3 Scripte mit z.B. folgendem Code:
    void main()
    {
      DebugTN("ich bin script 1 und laufe");
    }
  6. In der Konsole fügen Sie 5 CTRL-Manager und ein UI-Manager hinzu und setzen Sie die folgenden Manageroptionen:
    CTRL -num 2 webclient_http.ctl
    UI -m gedi -ssa
    CTRL -num 3 script1.ctl -user para:
    CTRL -num 4 script2.ctl -user para: //The option does not work since the wrong certificate is available, no //certificate for the user para but for the user "revoked"
    CTRL -num 5 script3.ctl -user para: //The option does not work since the wrong certificate is available, no //certificate for the user para, but for the user "norole".
    CTRL -num 6 script1.ctl -user operator: //The option does not work since this is the wrong user
    //not the user para but the user "operator"   
    Abbildung 5. Konsole mit gestarteten Managern
    Wenn Sie das Script 1 starten, wird im Log Viewer folgendes ausgegeben:
    WCCOActrl (3), 2017.12.04 15:36:41.746, SYS, INFO, 103, User names/passwords initialized
    WCCOActrl3:2017.12.04 15:36:41.878["The script 1 is running"]
    WCCOActrl (3), 2017.12.04 15:36:43.879, SYS, INFO, 181, Closing connection to (SYS: 0 Data -num 0 CONN: 1)