Hallo Forum,
trotz langer Recherche bin ich nicht weitergekommen. Ich hoffe, Ihr könnt helfen.
Es geht um verschlüsselte Felder in einem Notes-Dokument.
Folgende Situation:Eine Anwendung beinhaltet Dokumente in den das Body-Feld (und nur dieses) verschlüsselt abgelegt wurde (Text + Attachments).
Bisher wurden die zugriffsberechtigten User vom Ersteller des Dokuments manuell eingetragen (Autoren und Leserfeld).
Das hat auch soweit funktioniert.
Feld: PublicEncryptionKeys
Das Feld enthält alle User (Autoren und Leser) des Dokuments. Die Namen der einzelnen User und der aufgelösten Gruppen sind hierarchisch als Liste in diesem Feld hinterlegt. Zudem wird immer als Notanker der „SuperAdmin“ User in das Autoren- und PublicEncryptionKeys mit eingetragen.
Feld: $SealData existiert nach dem Speichern aus dem UI.
Ziel:Die Anwendung soll soweit erweitert werden, dass die Berechtigungen im Backend via periodischem Agenten neu gerechnet werden können.
Wenn sich z.B. die Mitglieder einer Gruppe ändern.
Problem:Löse ich im Backend z.B. eine geänderte Gruppe auf und trage die User in das Autoren- und in das PublicEncryptionKeys Feld ein.
Wird vor dem Speichern der Befehl Call doc.encrypt() aufgerufen erhalte ich einen Fehler.
Wird ohne den Befehl Call doc.encrypt() gespeichert, erhalte ich keinen Fehler.
Bei der Prüfung der Felder sind dann die neuen User auch korrekt eingetragen.
Nur wenn ich mit dem neuen User (der über die Gruppe hinzukam) das Dokument öffne, bekomme ich die Fehlermeldung.
Ich benötige den Dekodierungsschlüssel zum Bearbeiten/Lesen des Feldes.
Der Agent wurde im Namen des „SuperAdmin“ gestartet und auch mit der Signatur des Server.
- Der Agent hat die Sicherheitsstufe 3 (Bechränkte Operationen mit vollst. Admin Rechten zulassen)
- Der Server ist zudem noch als Autor und im Feld PublicEncryptionKeys eingetragen.
Aus der Noteshilfe:
If the script is running on a server, it must have permission to use Encrypt. If the script is part of a scheduled agent running in the background on a server, and the EncryptionKeys property is set with one or more named keys, the server's ID must contain those keys, not the signer of the agent. The agent must also have a runtime security level of at least "Allow restricted operations".
Was ist hier mit der Zeile genau gemeint?
the server's ID must contain those keys
Beim Speichern prüfe ich unter anderem folgendes:
Was muss beim Speichern beachtet werden?
- Muss das $SealData Feld gelöscht werden?
- Müssen evtl. ander Felder gelöscht werden?
Falls nein, sollte der folgende Code doch funktionieren:
Call doc.encrypt() 'Dokument/Felder verschlüsseln
Call doc.save(True, False)
Was mach ich falsch?
Kann mir jemand einen Tipp geben?
Grüße
Bernd