Die Enterprise Plus Edition verfügt über eine REST API: Über diese Schnittstelle ist es Ihnen möglich, Password Safe von außen anzusprechen, um beispielsweise Daten für andere Programme auszulesen. Die REST API ist ausschließlich über unsere Wrapper mit C# und JavaScript ansprechbar.

In der JavaScript Version der API finden Sie alle Enums unter dem globalen Objekt “PsrApiEnums”.

Voraussetzungen und Download

Die API ist ausschließlich in der Enterprise Plus Edition verfügbar. Im Kunden Informations System können Sie den API-Client für die gewünschte Programmiersprache herunterladen. Um die API nutzen zu können, aktivieren Sie im AdminClient, im Modul WebClient, die Webservices.

Verwendung der API

Das zentrale Objekt ist „PsrApi“. Dieses enthält diverse „Manager“, die die gesamte Business-Logik enthalten. Zunächst muss ein „PsrApi“-Objekt angelegt werden. Der einzige Übergabeparameter dieser Klasse ist der Endpoint der Password Safe WebServices. Falls Sie den WebClient einsetzen, können Sie “aufruf-des-webclient/api” als Endpoint verwenden. Andernfalls verwenden Sie direkt der Password Safe Server, also “ip-des-servers:11016”.

C#

var psrApi = new PsrApi(„passwordsafe.company.com/api“);

JavaScript

const psrApi = new PsrApi(„passwordsafe.company.com/api“)

Login

Ohne einen vorherigen Login ist die Verwendung der API nicht möglich. Der erste Parameter der Login-Methode ist die gewünschte Datenbank, gefolgt von Benutzername und dem Passwort. Beachten Sie, dass alle Methoden der API, die einen Server-Call nach sich ziehen, asynchron implementiert sind. In C# werden also Objekte des Typs „Task“ und in JavaScript Objekte des Typs „Promise“ zurückgegeben.

C#

await psrApi.AuthenticationManager.Login(„Company“, „username“, „password“);

JavaScript

await psrApi.authenticationManager.login(„Company“, „username“, „password“)

Methoden

Anschließend können Sie alle Methoden der API verwendet werden. So können Sie beispielsweise nach Datensätzen suchen und ein Passwort entschlüsseln:

C#

// Passwörter, Formulare und Dokumente sind alle Container
var conMan = psrApi.ContainerManager;

// Den Standard-Filter für Passwörter abrufen
var passwordListFilter = await conMan.GetContainerListFilter(PsrContainerType.Password, true);

var contentFilter = passwordListFilter.FilterGroups.OfType().FirstOrDefault()?.SearchList.FirstOrDefault();
if (contentFilter != null)
{
    // Nach Passwörtern suchen, die „mateso“ enthalten
    contentFilter.Search = "mateso";
    contentFilter.FilterActive = true;
}

// Alle Passwörter abrufen, die dem Filter entsprechen
var passwords = await conMan.GetContainerList(PsrContainerType.Password, passwordListFilter);

// Das Formularfeld vom Typ Passwort suchen
var passwordItem = passwords.FirstOrDefault(p => p.Items.Any(i => i.ContainerItemType == PsrContainerItemType.ContainerItemPassword))?.Items.FirstOrDefault(i => i.ContainerItemType == PsrContainerItemType.ContainerItemPassword);
if (passwordItem != null)
{
    // Wert des Formularfelds entschlüsseln
    var plainText = await conMan.DecryptContainerItem(passwordItem);
    Console.WriteLine("Plaintext value of the container item: " + plainText);
}

// Logout nach vollendeter Arbeit nicht vergessen, um tote Sitzungen zu verhindern
await psrApi.AuthenticationManager.Logout();

JavaScript

// Passwörter, Formulare und Dokumente sind alle Container
const conMan = psrApi.containerManager

// Den Standard-Filter für Passwörter abrufen
const passwordListFilter = await conMan.getContainerListFilter(PsrApiEnums.PsrContainerType.Password, true)

const contentFilter = passwordListFilter.FilterGroups.find(fg => 'SearchList' in fg).SearchList[0]
if (contentFilter) {
  // Nach Passwörtern suchen, die "mateso" enthalten
  contentFilter.Search = 'mateso'
  contentFilter.FilterActive = true
}

// Alle Passwörter abrufen, die dem Filter entsprechen
const passwords = await conMan.getContainerList(PsrApiEnums.PsrContainerType.Password, passwordListFilter)

// Das Formularfeld vom Typ Passwort suchen
const passwordItem = passwords
  .find(p => p.Items.some(i => i.ContainerItemType === PsrApiEnums.PsrContainerItemType.ContainerItemPassword)).Items
  .find(i => i.ContainerItemType === PsrApiEnums.PsrContainerItemType.ContainerItemPassword)
if (passwordItem) {
  // Wert des Formularfelds entschlüsseln
  const plainText = await conMan.decryptContainerItem(passwordItem)
  console.log('Plaintext value of the container item: ' + plainText)
}

// Logout nach vollendeter Arbeit nicht vergessen, um tote Sitzungen zu verhindern
await psrApi.authenticationManager.logout()

Technische Dokumentation

Die komplette technische Dokumentation der API finden Sie unter folgendem Link: Password Safe API

War das hilfreich?

Ja Nein
You indicated this topic was not helpful to you ...
Could you please leave a comment telling us why? Thank you!
Thanks for your feedback.