Lizenzmanagement

Lizenzmanagement oder Software-Lizenzmanagement sichert den legalen Umgang mit proprietärer Software in Unternehmen und Organisationen ab. Idealerweise unterstützt das Lizenzmanagement unterschiedliche Lizenzmodelle und hilft den Verantwortlichen dabei, den Überblick über die im Unternehmen genutzte Software und die vorhandenen Lizenzen zu behalten. Mit einem guten Lizenzmanagement vermeiden Sie strafrechtliche Risiken und überflüssige Lizenzkosten.

Voraussetzungen

Dieses Modul ist momentan eine kostenpflichtige Erweiterung. Das heißt, dass Sie eine Freischaltdatei benötigen. Sie erhalten diese, nachdem Sie die Erweiterung gekauft haben. Zu Evaluierungszwecken stellen wir Ihnen kostenlos eine zeitlich befristete Freischaltung zur Verfügung. Bitte kontaktieren Sie uns dazu per E-Mail.

Weitere Details hierzu finden Sie im Kapitel opsi-Erweiterungen.

Überblick

Das Lizenzmanagement-Modul erleichtert die aufwändige und komplexe Verwaltung von Lizenzen nicht-freier Software, die auf mit opsi verwalteten Clients installiert ist.

Funktion und Features

Die wesentlichen Features dieser opsi-Erweiterung sind:

  • Die Konfiguration der Lizenzverwaltung findet in derselben Oberfläche statt wie die Softwareverteilung und Betriebssystem-Installation (siehe Kapitel opsi-Management-GUI: opsi-configed).

  • Sie können komfortabel Berichte über die installierte lizenzpflichtige Software generieren, auch für nicht über opsi verteilte Software. Letzteres nutzt die Informationen aus der Software-Inventarisierung als Basis.

  • Sie können Installationen und bestehende Lizenzverträge abgleichen.

  • Optional können Sie Lizenzen und Lizenzschlüssel automatisch bereitstellen, zuteilen und reservieren.

Software-Lizenzmodelle

Ein Lizenzmodell legt fest, wer eine Software in welcher Form nutzen darf (siehe Abschnitt Lizenzmodell konfigurieren). Dabei gibt es ganz unterschiedliche Ansätze, wie die Softwarehersteller das regeln:

  • Standard-Einzellizenz: eine Installation auf einem Rechner (mit individuellem Lizenzschlüssel)

  • Volume-Lizenz: maximale Anzahl der Installationen ist festgelegt; als Campus-Lizenz gilt der Schlüssel für eine unbegrenzte Zahl von Installationen

  • OEM-Lizenz: an einen Rechner gebundene Lizenz, Schlüssel gilt nur für bestimmte Hardware

  • Concurrent-User-Lizenz: beliebige Installation der Software, ein Lizenzserver regelt die Anzahl der Nutzungen

Wenn der opsi-Server die Zuteilung der Lizenzen steuert, ist sichergestellt, dass die Lizenz und gegebenenfalls der Schlüssel bei der Deinstallation der Software auch wieder freigegeben werden. Die Zuordnung von Lizenzen kann darüber hinaus auch manuell oder sogar skriptgesteuert erfolgen, z. B. wenn eine Lizenz nicht mit opsi verteilt worden ist.

Datenbankmodell zur Lizenzverwaltung

Lizenzverwaltung ist ein komplexes Thema. opsi setzt auf ein relativ komplexes Datenbankmodell, um die Lizenzen und ihre Schlüssel zu verwalten. Zur besseren Übersicht stellt das folgende Diagramm die beteiligten Tabellen dar. Die blaue Linie markiert die Abgrenzung von Tabellen, deren Inhalte automatisiert aus dem Software-Audit kommen, und Tabellen, deren Daten eigens zur Lizenzverwaltung erhoben oder zugeordnet werden. Nur die Lizenzpool-Datenbank hat Verbindungen zu beiden Bereichen, was auf die Bedeutung dieses Konstrukts hinweist.

Für das Lizenzmanagement relevante Datenbanktabellen
Abbildung 1. Für das Lizenzmanagement relevante Datenbanktabellen

Das Diagramm zeigt außerdem die Bedeutung der Lizenzpools (license pools), die der Abschnitt Lizenzpools ausführlich erklärt.

Lizenzmanagement in opsi-configed

Die Management-Oberfläche opsi-configed bietet eine eigene Abteilung für das Lizenzmanagement an. Sie erreichen den Dialog über die Schaltfläche Lizenzen im Hauptfenster. Voraussetzung ist, dass das die Erweiterung installiert und aktiviert ist. Sie überprüfen das über das Menü Hilfe / Module im Hauptfenster.

`opsi-configed`: Das Lizenzmanagement erreichen Sie über das ganz rechte Symbol (_Lizenzen_).
Abbildung 2. opsi-configed: Das Lizenzmanagement erreichen Sie über das ganz rechte Symbol (Lizenzen).

Das Dialogfenster zur Lizenzverwaltung zeigt am oberen Rand sechs Reiter an:

  • Lizenzpools

  • Lizenz anlegen

  • Lizenzen bearbeiten

  • Lizenzenverwendung

  • Abgleich mit Inventarisierung

  • Statistik

Die folgenden Abschnitte erklären die einzelnen Dialoge und ihre Funktionen.

Lizenzpools

Der Reiter Lizenzpools zeigt die Verknüpfungen der Lizenzpools mit den Informationen der opsi-Datenbank über installierte Software und Installationspakete.

Was ist ein Lizenzpool?

Für jede Art von Lizenz, die Sie mit dieser Erweiterung verwalten möchten, richten Sie einen eigenen Lizenzpool ein. Dieser beschreibt die Zusammenfassung von Berechtigungen, die benötigt werden, um eine bestimmte Art von Software legal zu installieren. Der Lizenzpool steht im Mittelpunkt aller Aktivitäten des opsi-Lizenzmanagements:

  • Er verweist einerseits auf die installierten Software-Items und opsi-Installationspakete.

  • Er fasst andererseits rechtliche und technische Konstruktionen der Installations-Berechtigungen zusammen.

Der Reiter _Lizenzpools_
Abbildung 3. Der Reiter Lizenzpools

Verwaltung von Lizenzpools

Ganz oben im Bereich Lizenzpools finden Sie eine zweispaltige Tabelle, die alle verfügbaren Lizenzpools auflistet. Das Feld description können Sie bearbeiten und dort eigene Beschreibungen eintragen.

Weitere Funktionen zum Bearbeiten erreichen Sie über das Kontextmenü der rechten Maustaste. Über die dort angezeigten Einträge legen Sie einen neuen Pool an, löschen einen vorhandenen, speichern oder verwerfen die Änderungen und laden die Daten neu.

Beim Erzeugen eines neuen Pools, also beim Anlegen einer neuen Zeile in der Tabelle, tragen Sie eine (eindeutige) licensePoolId in das entsprechende Feld ein, beispielsweise pool_fuer_x.

Achten Sie darauf, keine Umlaute für die IDs zu verwenden. Großbuchstaben werden automatisch in Kleinbuchstaben konvertiert!

Anders als die Beschreibung, können Sie die Pool-ID nur bis zum ersten Speichervorgang bearbeiten. Danach ist sie als Schlüssel des Datensatzes unveränderlich. Das Löschen eines Eintrags ist nur dann möglich, wenn es keine Referenz auf diesen Schlüssel in anderen Tabellen gibt. Die rekursive Suche nach solchen Referenzen wird derzeit nicht unterstützt.

Jeder Bearbeitungsvorgang verändert die Statusanzeige der beiden Schaltflächen OK und Cancel. Das grüne Häkchen des OK-Buttons erscheint in Rot, und der Cancel-Button wird aktiviert. Betätigen Sie eine der beiden Schaltflächen oder wählen Sie den entsprechenden Eintrag aus dem Kontextmenü der rechten Maustaste aus, um Ihre Änderungen zu speichern oder zu widerrufen.

Lizenzpools und opsi-Produkte

Normalerweise gehört zu einem opsi-Produkt, das eine lizenzpflichtige Software installiert und dabei das Lizenzmanagement nutzen soll, genau ein Lizenzpool, aus dem die benötigten Lizenzen geschöpft werden. Es ist möglich, dass mehrere Produkte auf denselben Lizenzpool verweisen, wenn es sich z. B. um Varianten desselben Produktes handelt. So nutzen beispielsweise die Produkte win10-x64 und opsi-local-image-win10-x64 beide den Pool p_win10-x64.

Weniger übersichtlich ist die Situation, wenn ein opsi-Produkt mehrere lizenzpflichtige Software-Produkte installiert und daher Lizenzen von mehreren Pools benötigt. Angenommen, zu einem Paket namens Designprogramme gehören Adobe Photoshop und Adobe Writer, muss das opsi-Produkt Lizenzen aus zwei unterschiedlichen Pools anfordern. Im Prinzip liegt diesen Zuordnungen ein n:m-Schema zugrunde.

Zur besseren Übersicht ordnen Sie bei lizenzpflichtiger Software immer nur ein Software-Produkt einem opsi-Produkt zu. Dieses eine opsi-Produkt binden Sie dann an den entsprechenden Lizenzpool. Zwingend notwendig ist diese Beschränkung, wenn Sie das Lizenzmanagement-Modul zusammen mit der WAN/VPN-Erweiterung verwenden.

Die zweite Tabelle von oben im Dialog Lizenzpools (siehe [licensemanagement-licensepools.png]) zeigt alle Zuordnungen zwischen den Lizenzpools und den Produkt-IDs der opsi-Produkte. Klicken Sie auf den Spaltentitel licensePoolId bzw. productId, um die Ansicht zu sortieren. So können Sie alle Zuordnungen von opsi-Produkten zu einem Lizenzpool bzw. alle einem opsi-Produkt zugewiesenen Lizenzpools zusammenhängend darstellen.

Einen neuen Eintrag, also eine neue Zuordnung eines Lizenzpools zu einer Produkt-ID, erstellen Sie über das Kontextmenü der rechten Maustaste. Nach einem Klick ins Tabellenfeld sehen Sie die Liste der verfügbaren Werte.

Lizenzpools und installierte Software

Die untere Hälfte des Lizenzpools-Dialogs (siehe [licensemanagement-licensepools.png]) stellt die Beziehungen zwischen Lizenzpools und der installierten Software auf den opsi-Clients dar — egal, ob diese mit opsi-Werkzeugen oder auf einem anderen Weg installiert wurde. In den einzelnen Spalten sehen Sie zunächst eine eindeutige ID, die aus einer Kombination aller Attribute konstruiert ist und als eindeutiger Schlüssel fungiert. Es folgen Informationen zur Software, darunter den Namen, die Versionsnummer, das Betriebssystem, die Architektur usw.

Die Werte ermittelt das opsi-Software-Audit (siehe Abschnitt Hard- und Software-Inventarisierung mit hwaudit und swaudit); es liest Informationen aus der Registry aus und meldet diese an den opsi-Server zurück. Die Tabelle SOFTWARE_CONFIG der opsi-Datenbank speichert die Werte für jeden Client. Sofern noch nicht vorhanden, werden sie in die Tabelle SOFTWARE aufgenommen. Diese bildet die Grundlage für die im Lizenzmanagement angezeigte Tabelle.

Welche Daten Sie in der Tabelle unten im Lizenzpools-Dialogs sehen, bestimmen zwei verschiedene Ansichten:

  • Beschränkung der Anzeige auf bestimmte Daten (Alle anzeigen, Ausblenden von Software, die anderen Pools zugeordnet ist, Nur die keinem Pool zugeordnete Software zeigen); das ist die Voreinstellung

  • Beschreibung, was die Markierung von Zeilen bedeutet (Auswahl = Gesamte Liste der zugewiesenen/zuzuweisenden SW-Einträge, Auswahl = SW-Einträge, die (neu) zugewiesen werden)

Software-Tabelle: Konfiguration der Anzeige
Abbildung 4. Software-Tabelle: Konfiguration der Anzeige

Sie sehen hier also alle Zuweisungen von Software-Items (aus der Datenbanktabelle SOFTWARE) zu einem Lizenzpool (Tabelle LICENSE_POOL). Sämtliche Einträge, die zum in der oberen Tabelle ausgewählten Lizenzpool gehören, erscheinen als farblich hinterlegte, markierte Zeilen. Alle Zuordnungen von Pools und Software entsprechen der Datenbanktabelle AUDIT_SOFTWARE_TO_LICENSE_POOL.

Ändern Sie die Markierung, um die Zuordnung von Software-Items zu den einzelnen Lizenzpools zu bearbeiten: Mit [Strg]+Mausklick bzw. [Umschalt]+Mausklick beeinflussen Sie die Mehrfachauswahl in der Software-Tabelle. Ein einfacher Klick in eine Zeile startet die Auswahl neu.
Wenn es in der Datenbank noch eine Zuordnung eines Software-Items zu einem Lizenzpool gibt, die Software aber laut Datenbank nicht mehr existiert, erscheint die Schaltfläche fehlend aktiviert. Betätigen Sie die Schaltfläche, um ein neues Dialogfenster zu öffnen. Es listet die referenzierte, aber anscheinend nicht mehr vorhandene Software auf und bietet an, Zuordnungen aus der Tabelle AUDIT_SOFTWARE_TO_LICENSE_POOL zu entfernen.

Navigieren in der Software-Tabelle

Eine Veränderung bei den blau unterlegten Zeilen bedeutet eine Datenänderung. Daher verhalten sich die Funktionen zur Navigation in der Tabelle anders als sonst. Ein rotes Sternchen am Zeilenanfang markiert den Ort, an dem der Cursor steht.

Software-Tabelle: Cursor in der Zeile
Abbildung 5. Software-Tabelle: Cursor in der Zeile

Um den Cursor neu zu platzieren, stehen Ihnen folgende Möglichkeiten zur Verfügung:

  • mittels impliziter Suche nach einem Tabellenwert (zum Beispiel automatisch bei der Anzeige der zugeordneten Software-Einträge beim Wechsel der Lizenzpoolzeile),

  • durch eine über das Suchfeld der Tabelle angestoßene manuelle Suche,

  • mithilfe der roten Pfeil-Buttons in der Navigationsleiste der Tabelle.

  • durch Klicken in die Sternchenspalte der gewünschten Zeile (während ein Klick in dem Datenteil der Zeile die Zeilenauswahl neu setzt!)

  • Suchen Sie nach einem Wert (z. B. indem Sie beim Wechsel des Lizenzpools die zugeordneten Software-Items anzeigen).

  • Verwenden Sie das Suchfeld über der Tabelle.

  • Betätigen Sie die Schaltflächen mit den roten Pfeilen über der Tabelle zur Navigation.

  • Klicken Sie die mit dem Sternchen markierte Spalte der Zeile an. (Achtung: Ein Klick in die Daten selbst setzt die Zeilenauswahl neu!)

Compliance-Check durchführen

Mit der Zuordnung von Software-Items zu Lizenzpools haben Sie bereits die Grundlage für den von Microsoft geforderten Compliance-Check geschaffen. Das Prinzip ist einfach: Mit ein paar Mausklicks markieren Sie die Software-Items in einem bestimmten Pool. Um die Gesamtzahl der einem Pool zugeordneten Installationen zu ermitteln, öffnen Sie den Reiter Statistik (siehe Abschnitt Statistik).

Um korrekte Ergebnisse zu erhalten, ist es wichtig, die Zuordnungen von Software-Items zu einem Lizenzpool sorgfältig zu pflegen. Diese müssen unbedingt vollständig sein. Wenn eine neue lizenzpflichtige Anwendung hinzukommt, muss die Software also dem Pool zugeordnet werden.

Filtern der Software-Tabelle

Über das Kontextmenü der rechten Maustaste erreichen Sie Funktionen zum Filtern der zugeordneten Software-Items. Sie können entweder alle oder nur die markierten Einträge anzeigen.

Software-Tabelle: das Kontextmenü der rechten Maustaste
Abbildung 6. Software-Tabelle: das Kontextmenü der rechten Maustaste

Das ist hilfreich, da die Zeilen der zugeordneten Software-Items nicht unbedingt aufeinanderfolgen in der Software-Tabelle. Nachdem Sie Nur markierte Einträge zeigen ausgewählt haben, verändert sich die Anzeige:

Software-Tabelle: einem Pool zugeordnete Software-Items anzeigen
Abbildung 7. Software-Tabelle: einem Pool zugeordnete Software-Items anzeigen

Alternativ verwenden Sie das Filter-Icon neben dem Suchfeld. Wenn ein Filter aktiv ist, erscheint das Symbol durchgestrichen.

Auch im gefilterten Zustand können Sie die Zuordnungen bearbeiten, genauer gesagt: Zuordnungen entfernen.

Zuordnungen zu Softwarenamen vervollständigen

Wenn der Hersteller einer Software eine neue Version, ein Update oder einen Patch verteilt, erhält die neue Variante auch eine neue Windows-Software-ID. Daher gibt es danach auch einen neuen Eintrag in der Software-Tabelle mit einer neuen ID. Was die Lizenz betrifft, ist die neue Version in der Regel genauso zu behandeln wie die alte — wenn es einen Lizenzvertrag für die Vorgängerversion gab, existiert wahrscheinlich auch einer für den Nachfolger. Das heißt, dass der Bedarf für eine Lizenzierung für beide Ausgaben in demselben Lizenzpool angemeldet werden muss. Eine Abdeckung wird dann über den gemeinsamen Lizenzpool organisiert.

Beim Ausrollen neuer Versionen sollten Sie daher daran denken, eine Zuordnung zum richtigen Lizenzpool hinzuzufügen. Natürlich gibt es auch Software, die Updates ohne Ihr Zutun einspielt — dann fehlt nach der Aktualisierung eventuell die korrekte Zuordnung. Für diese Fällte bietet die Management-Oberfläche opsi-configed ab Version 4.1.9.8 einen eigenen Dialog, der die Vervollständigung erleichtert. Sie öffnen das Fenster per Klick auf die Schaltfläche Name → Pool in der unteren Hälfte des Lizenzpools-Reiters.

Zuordnung von IDs, Namen und Pools
Abbildung 8. Zuordnung von IDs, Namen und Pools
Oft ist das Feld name für die Identifikation des benötigten Lizenzpools ausreichend, sodass Sie Unterschiede in anderen Bestandteilen der Software-ID ignorieren können.

Der Dialog zeigt zwei weitere Tabellen an. Wenn Sie vor dem Öffnen die Standardeinstellung Alle Software-Namenseinträge anzeigen aktiviert haben, zeigt die erste Spalte der ersten Tabelle die Softwarenamen alphabetisch sortiert an. Die zweite Spalte listet alle IDs auf, die mit dem jeweiligen Namen verbunden sind (wobei der Name als eigentlich erster ID-Bestandteil nicht wiederholt wird).

Die zweite Tabelle listet zum in der ersten Tabelle ausgewählten Namen die IDs einzeln auf. Für jede ID zeigt sie an, ob eine Zuordnung zu einem Lizenzpool besteht und wie dieser heißt. Die Lizenzpool-Zuordnungen können Sie so vereinheitlichen:

  • alle Zuordnungen entfernen

  • den im Hauptfenster ausgewählten Pool allen ID-Varianten zuweisen (vermutlich der Standard)

  • alles dem ausgewählten Pool zuweisen, falls die Varianten verschiedenen Pools zugeordnet sind

Wenn Sie systematisch die Lizenzpool-Zuordnungen überprüfen möchten, sollten Sie vor dem Klick auf die Schaltfläche Name → Pool im Hauptfenster die Option Nur Namen mit varianter Zuordnung zu Lizenzpool aktivieren. Die Tabelle im sich öffnenden Dialog zeigt nun nur die Softwarenamen an, zu denen es mehrere IDs gibt und für die unterschiedliche Lizenzpool-Zuordnungen existieren.

Hauptfenster: Optionen für die Zuordnung von IDs, Namen und Pools
Abbildung 9. Hauptfenster: Optionen für die Zuordnung von IDs, Namen und Pools
Sofern solche unaufgelösten Zuordnungen existieren, erscheint ein kleines i in diesem grauen Kasten. Wir haben uns bewusst für ein dezentes Design entschieden, weil es durchaus korrekt und erforderlich sein kann, dass Varianten einer Software unterschiedlich lizenziert sind.

Die dritte Option (Nur Namen ganz ohne Lizenzpoolzuordnung) ermöglicht Ihnen, nach eventuell vergessenen Zuordnungen von Lizenzen zu suchen.

Noch nicht zugeordnete Software erkennen

Selbstverständlich ist es möglich, sämtliche installierten Anwendungen einem Lizenzpool zuzuweisen — auch freie Software. Wenn Sie dann eine neue Software bzw. eine neue Version einer vorhandenen installieren, sind bisher nicht zugeordnete Software-Items gut identifizierbar.

Damit eine solche Strategie in der Praxis funktioniert, benötigen Sie Pseudo-Lizenzpools wie beispielsweise freie Software oder Betriebssystem-Komponenten. Diesen Pools ordnen Sie dann Software-Items zu, für die keine Lizenzierung existiert oder erforderlich ist.

opsi-configed bietet für solche Szenarien zusätzliche Anzeigeoptionen an (siehe auch Software-Tabelle: Konfiguration der Anzeige):

Software-Tabelle: Andere Anzeige auswählen
Abbildung 10. Software-Tabelle: Andere Anzeige auswählen

Angenommen, Sie haben bisher sämtliche Software einem Lizenzpool zugeordnet, dann sehen die einzelnen Arbeitsschritte so aus:

  1. Sie installieren eine (neue) Software auf einem opsi-Client.

  2. Dort starten Sie das opsi-Produkt swaudit.

  3. Handelt es sich tatsächlich um eine neue Software, erscheint ein neuer Eintrag in der Software-Tabelle. Es kann vorkommen, dass Sie dort mehrere Einträge sehen, beispielsweise für zusätzlich installierte Bibliotheken.

  4. Wählen Sie einen passenden Lizenzpool aus und aktivieren Sie die Option Ausblenden von Software, die anderen Pools zugeordnet ist. Die neuen Tabellenzeilen sind nun die einzigen, die markiert sind.

  5. Passt der vorausgewählte Lizenzpool, dann fügen Sie mit [Strg]+Mausklick einen neuen Eintrag hinzu.

Anders sehen die Arbeitsschritte aus, wenn Sie beliebige, noch nicht zugeordnete Software-Items auf Lizenzpools verteilen möchten:

  1. Aktivieren Sie die Option Nur die keinem Pool zugeordnete Software zeigen.

  2. Im Bereich Bearbeitungsmodus aktivieren Sie Auswahl = SW-Einträge, die (neu) zugewiesen werden.

  3. Markieren Sie mit [Strg]+Mausklick die gewünschten Zeilen; optional können Sie die Suchfunktion oder einen Filter verwenden.

  4. Wählen Sie jetzt den Lizenzpool aus, dem Sie die markierten Software-Items zuordnen wollen.

  5. Betätigen Sie die nun grüne Schaltfläche OK zum Speichern.

  6. Setzen Sie abschließend den Bearbeitungsmodus zurück auf Auswahl = Gesamte Liste der zugewiesenen/zuzuweisenden SW-Einträge.

Beachten Sie, dass sich die hier beschriebenen Funktionen (scheinbar) abweichend verhalten, wenn ein Filter für die Tabelle aktiv ist.

Lizenzen anlegen

Auf diesem Reiter richten Sie Lizenzen ein und stellen diese dann über einen Lizenzpool bereit. Das Dialogfenster zeigt im oberen Bereich eine (nicht editierbare) Tabelle mit den verfügbaren Lizenzpools an. Wählen Sie dort einen Pool aus, für den Sie eine Lizenz einrichten möchten.

Der Reiter _Lizenz anlegen_
Abbildung 11. Der Reiter Lizenz anlegen

Das Lizenzkonzept

Zunächst sollten einige wichtige Begriffe geklärt werden:

  • Lizenzierung

  • Lizenzschlüssel

  • Lizenzierungsrecht

  • Lizenzmodell

  • Lizenzvertrag

  • Lizenzierungsoption

  • Lizenznutzung

Lizenzierung (licensing) ist die faktische Zuweisung der Erlaubnis, eine Software zu nutzen. Dazu gehört auch die Installation. Oft, aber nicht immer, ist dafür ein Lizenzschlüssel (license key) erforderlich.

Das Lizenzierungsrecht ist die in ihrem Geltungsumfang definierte Erlaubnis, solche Zuweisungen durchführen zu dürfen. In der opsi-Datenbank entspricht die software license dem Lizenzierungsrecht. Der Datensatz heißt dementsprechend softwareLicenseId. Wie das Lizenzierungsrecht genau aussieht, also für wie viele Rechner und wie lange eine Lizenz gültig ist, beschreibt das Lizenzmodell (licensing model). Der Lizenzvertrag (license contract) stellt das Lizenzierungsrecht im juristischen Sinn fest und dokumentiert es.

Eine Lizenzierungsoption (licensing option) definiert die Möglichkeit, ein Lizenzierungsrecht für einen bestimmten Lizenzpool anzuwenden. Die Kombination aus softwareLicenseId und licensePoolId legt unter opsi diese Lizenzierungsoption fest. Zur Lizenzierungsoption gehört auch der Wert eines Lizenzschlüssels (licenseKey), sofern dieser für die Installation erforderlich ist.

Die Lizenznutzung (license usage) dokumentiert die Anwendung einer Lizenzierungsoption für einen Client, sie ist also die vollzogene und berechtigte Lizenzierung einer Software-Installation. Die Beschreibung setzt sich zusammen aus softwareLicenseId, licensePoolId und hostId (eindeutiger Name des opsi-Clients). Zusätzlich wird der verwendete Lizenzschlüssel notiert (licenseKey).

Lizenzvertrag erfassen

Nachdem Sie den Lizenzpool ausgewählt haben, für den Sie eine Lizenzierungsoption anlegen wollen, bestimmen Sie nun den Lizenzvertrag. In der Tabelle Lizenzvertrag auswählen oder erfassen können Sie einen vorhandenen Vertrag auswählen oder einen neuen Vertrags-Datensatz anlegen.

Die erste Spalte zeigt die licenseContractId, die zur Identifizierung des Lizenzvertrags in der Datenbank dient. Es folgen Angaben zum Vertragspartner (partner), zum Abschlussdatum (conclusionDate), zum Benachrichtigungsdatum (notificationDate) und zum Ablaufdatum (expirationDate). Das letzte Feld (notes) ist für Ihre eigenen Notizen gedacht. Hier können Sie beispielsweise den Aufbewahrungsort der zum Vertrag gehörenden Dokumente oder ein Aktenzeichen notieren.

Einen neuen Datensatz legen Sie über das Kontextmenü der rechten Maustaste an. Es wird automatisch eine neue eindeutige ID (basierend auf dem aktuellen Datum und Zeitstempel) erstellt. Sie können die Standardeinstellung verwenden, wenn der Kauf der Software den Lizenzvertrag impliziert oder wenn der Vertrag auf andere Weise dokumentiert und nachvollziehbar ist. Andernfalls können und sollten Sie die Daten bearbeiten, um den zugrundeliegenden Vertrag ordentlich nachverfolgen zu können. Tragen Sie dann beispielsweise ein Aktenzeichen ins Feld notes ein.

Eine Änderung der Vertrags-ID ist nur möglich, solange der Datensatz noch nicht gespeichert wurde. Beim Speichern der Daten prüft der opsi-Dienst, ob die ID eindeutig ist. Ist das nicht der Fall, wird eine neue ID erzeugt, die nicht mehr geändert werden kann.

Lizenzmodell konfigurieren

Im Abschnitt Lizenzmodell konfigurieren können Sie folgende vier Varianten über Schaltflächen einrichten:

  • Standardlizenz: Installation auf einem beliebigen Rechner (mit individuellem Lizenzschlüssel, der auch nur einmal verwendet wird).

  • Volume: Maximale Anzahl der Installationen ist festgelegt; eine Volumen-Lizenz legitimiert n Installationen (ggf. mit einem einzigen Lizenzschlüssel); n=0 bedeutet, dass der Schlüssel beliebig oft verwendet werden darf (Campus-Lizenz).

  • OEM: Lizenz ist an einen Rechner gebunden, Schlüssel gilt nur für bestimmte Hardware (häufig bei PCs mit vorinstalliertem Betriebssystem).

  • Concurrent: Aus opsi-Sicht ist das eine Volumen-Lizenz, die beliebig oft genutzt werden darf; de facto wird die Anzahl der in Anspruch genommenen Lizenzen jedoch anders kontrolliert , z. B. durch einen Lizenzserver.

In allen vier Fällen enthält das Feld ID jeweils einen Vorschlag, der sich aus Datum und Zeit zusammensetzt; Sie können den Vorschlag übernehmen oder abändern. Abhängig vom gewählten Lizenzmodell können Sie die anderen Felder anpassen oder nicht.

Beachten Sie, dass das Feld Ablaufdatum die Gültigkeit des Lizenzierungsrechts definiert. Das inhaltlich gleichbedeutende Feld expirationDate in der Lizenzvertrags-Tabelle dient derzeit lediglich zur Dokumentation. Aktuell ist eine Verwendung nicht implementiert, das kann sich künftig aber ändern.

Betätigen Sie die Schaltfläche Abschicken, um die Daten an den opsi-Service zu übermitteln und in die Datenbank aufzunehmen. Dabei werden Datensätze für ein Lizenzierungsrecht basierend auf dem ausgewählten Vertrag und der Lizenzierungsoption erzeugt. Diese sehen Sie ganz unten auf dem Reiter im Bereich Verfügbare Lizenzoptionen. Nach dem Speichern wird diese Tabelle neu geladen und die neu erzeugte Option automatisch markiert.

Falls erforderlich können Sie über diese Tabelle den erfassten Lizenzschlüssel korrigieren.

Lizenzen bearbeiten

In 90 % der Fälle sollten die Funktionen auf den beiden Reitern Lizenzpools und Lizenz anlegen genügen, um Lizenzoptionen zu erfassen und zu bearbeiten. Der dritte Reiter Lizenzen bearbeiten erlaubt Feinjustierungen: Hier können Sie Interna der Lizenzoptionen betrachten und gegebenenfalls anpassen.

Der Reiter _Lizenzen bearbeiten_
Abbildung 12. Der Reiter Lizenzen bearbeiten

Beispiel: Downgrade-Option konfigurieren

Das folgende Beispiel zeigt, wie Sie eine Lizenz mit Downgrade-Option konfigurieren. Das bedeutet, dass anstelle der gekauften Software auch die entsprechende Vorgängerversion installiert werden darf. Ein vorhandener Lizenzschlüssel darf also für eine zusätzliche Installation verwendet werden, für die er ursprünglich nicht legitimiert war.

Das opsi-Modell bildet diese Konstruktion folgendermaßen ab: Auf dem Reiter Lizenz anlegen erfassen Sie die Lizenz regulär. Als Ergebnis erhalten Sie eine neue Lizenzoption (angezeigt in der unteren Tabelle), die auf einem gleichfalls neu angelegten Lizenzierungsrecht beruht (softwareLicenseId). Diesen Wert benötigen Sie für das weitere Vorgehen. Entweder kopieren Sie Sie den Wert in die Zwischenablage oder Sie suchen ihn in der zweiten Tabelle auf dem Reiter Lizenzen bearbeiten heraus.

Über das Kontextmenü der rechten Maustaste erreichen Sie die Funktion Übertrage Lizenzierungs-ID in Lizenzoptions-Zeile, welche die ID kopiert.
_Lizenzen bearbeiten_: Kopieren der Lizenz-ID über das Kontextmenü
Abbildung 13. Lizenzen bearbeiten: Kopieren der Lizenz-ID über das Kontextmenü

Als Nächstes stellen Sie eine Verknüpfung des vorhandenen Lizenzierungsrechts mit einem weiteren Lizenzpool her:

  1. Legen Sie in der ersten Tabelle (Verfügbare Lizenzoptionen) des Reiters Lizenzen bearbeiten einen neuen Datensatz an.

  2. Tragen Sie die ID des Lizenzierungsrechts (softwareLicenseId) und die ID des zusätzlichen Lizenzpools ein.

  3. Speichern Sie die Änderungen — jetzt haben Sie zwei Lizenzoptionen registriert, die auf das gleiche Lizenzierungsrecht verweisen.

Der opsi-Service rechnet jede Anwendung einer der beiden Optionen auf die maximale Zahl von Installationen an, die das Lizenzierungsrecht einräumt. Daher gibt er bei einer solchen Downgrade-Option für Einzel-PC-Lizenzen mit maxInstallations = 1 immer nur für eine Lizenz den Schlüssel zurück.

Lizenzenverwendung

Die über den opsi-Service registrierten Lizenzierungen können Sie auf dem Reiter Lizenzenverwendung einsehen.

Der Reiter _Lizenzenverwendung_
Abbildung 14. Der Reiter Lizenzenverwendung

Außerdem können Sie hier die Verwendung der Lizenzen manuell verwalten. Das ist z. B. dann sinnvoll, wenn eine Software von Hand auf einzelnen Clients installiert werden soll und nicht in die opsi-Verteilung eingebunden ist:

  • Markieren Sie eine Tabellenzeile und rufen Sie aus dem Kontextmenü der rechten Maustaste den Eintrag Zeilen löschen auf, um eine Lizenzoption wieder freigegeben.

  • Wenn Sie in der oberen Tabelle das Feld licenseKey bearbeiten, können Sie den für eine Lizenzierung verwendeten Schlüssel (neu) bestimmen.

  • Der Abschnitt Lizenz reservieren für Client unten im Dialog dient dazu, eine Lizenzoption anzufordern und zu belegen.

Bei einer erneuten Installation eines PCs bleiben die vorher zugeordnete Lizenzoptionen erhalten, sofern Sie diese nicht ausdrücklich gelöscht haben. Geben Sie eine solche Option entweder in diesem Reiter oder mit opsi-script wieder frei (siehe Abschnitt Lizenzen anfordern und freigeben).

Abgleich mit Inventarisierung

Die Tabelle Abgleich mit der Software-Inventarisierung zeigt für jeden Client (hostID) und Lizenzpool (licensePoolId) an, ob das opsi-Lizenzmanagement zuständig ist oder nicht (Spalte used_by_opsi). Die letzte Spalte (SWinventory_used) verrät außerdem, ob auf dem Client laut Software-Inventarisierung (swaudit) eine (Windows-)Software installiert ist, die eine Lizenz aus dem Pool benötigt.

Der Reiter _Abgleich mit Inventarisierung_
Abbildung 15. Der Reiter Abgleich mit Inventarisierung

Damit die Ergebnisse von swaudit die Lizenzenverwendung beschreiben können, müssen die entsprechenden Software-IDs den richtigen Lizenzpools zugeordnet sein (Reiter Lizenzpools).

Das Lizenzmanagement zählt beim Abgleich mit der Software-Inventarisierung maximal 1 Vorkommen pro Client und Lizenzpool. Ist beispielsweise ein Lizenzpool office2010 mit 10 verschiedenen Mustern aus der Inventarisierung verknüpft, die alle darauf hinweisen, dass ein MS Office 2010 installiert ist, wird das nur als eine Installation gezählt — auch wenn alle 10 Muster auf einem Client gefunden werden.

Um zusätzliche Informationen zu den Clients in der Tabelle darzustellen, bearbeiten Sie die Host-Parameter-Seite des Servers im opsi-configed und erweitern configed.license_inventory_extradisplayfields entsprechend.

Sie können die Daten per Copy & Paste in eine Tabellenkalkulation übernehmen oder über das Kontextmenü der rechten Maustaste ausdrucken. Dazu muss der opsi-configed über die entsprechenden Rechte verfügen. Er darf nicht als Applet-Sandbox im Browser, sondern muss als eigenständige Anwendung laufen.

Statistik

Auf dem letzten Reiter erhalten Sie eine Übersicht über den allgemeinen Stand der Lizenzierungen. Sie sehen hier unter anderem die genutzten und noch freien Lizenzoptionen der verschiedenen Lizenzpools.

Der Reiter  _Statistik_
Abbildung 16. Der Reiter Statistik

Zusätzlich zu den registrierten Lizenzenverwendungen (used_by_opsi) und den danach noch freien Lizenzen (remaining_opsi) sehen Sie die Gesamtzahl tatsächlicher Installationen, die eigentlich eine Lizenz benötigen (SWinventory_used). Die Daten der Spalte SWinventory_used liefert das opsi-Produkt swaudit und erhält sie nach einem Scan der Registry auf den Clients. Die Zuordnungen der so ermittelten Software-IDs zu den jeweiligen Lizenzpools verwaltet der Reiter Lizenzpools (siehe Abschnitt Lizenzpools).

Sie können die Daten der per Copy & Paste in eine Tabellenkalkulation übernehmen oder über das Kontextmenü der rechten Maustaste ausdrucken. Dazu muss der opsi-configed über die entsprechenden Rechte verfügen. Er darf nicht als Applet-Sandbox im Browser, sondern muss als eigenständige Anwendung laufen.

Beispiel: Downgrade-Option

Wenn Sie eine Downgrade-Option konfiguriert haben (siehe Abschnitt Beispiel: Downgrade-Option konfigurieren), stellt die Tabelle Übersicht Lizenzenverwendung das ebenfalls dar. Eine Downgrade-Lizenz räumt je eine Lizenzierungsoption für (mindestens) zwei Lizenzpools ein. Nur eine der beiden kann tatsächlich genutzt werden. Sobald daher eine Lizenzoption verwendet wird, verringert sich in der Spalte remaining_opsi in beiden Zeilen der Wert um 1. Scheinbar vermindert sich also die Zahl der verfügbaren Lizenzen um 2 — das ist aber völlig korrekt und spiegelt die tatsächliche Berechtigungs-Situation wider.

Zuteilung und Freigabe per Skript

Immer, wenn Sie eine Software auf einem Rechner installieren und dafür eine Lizenzoption erfassen, führt das zu einer Lizenznutzung. In einer opsi-Umgebung finden diese Installationen skriptbasiert und automatisch statt. Das Skript setzt dazu Aufrufe an den zentral laufenden opsi-Service ab.

Zum Einsatz kommt das Programm opsi-script (früher opsi-winst unter Windows). Das Skript kümmert sich um die automatisch Software-Installation und -Konfiguration, Sie können es aber auch als eigenständiges Programm einsetzen. Weitere Informationen zur Skriptsprache und zu den einzelnen Befehlen finden Sie im opsi-script-Handbuch.

Die nächsten Abschnitte stellen die für die Lizenzverwaltung relevanten opsi-script-Kommando vor.

Lizenzen anfordern und freigeben

Es gibt zwei Funktionen für die Lizenzverwaltung (siehe (String-)Funktionen für die Lizenzverwaltung [W/L/M):

  • DemandLicenseKey(poolId [, productId [,windowsSoftwareId]])
    Mit der Funktion getAndAssignSoftwareLicenseKey starten Sie eine Abfrage an den opsi-Service, ob es für den Computer eine reservierte Lizenz gibt. So können Sie beispielsweise mit dem Setup-Skript einer Betriebssystem-Installation eine Lizenzoption "ziehen" und den benötigten Schlüssel anfordern.

  • FreeLicense(poolId [, productId [,windowsSoftwareId]]])
    Mit der Funktion freeSoftwareLicense geben Sie eine Lizenz wieder frei und führen sie in den Pool der nicht verwendeten Lizenzoptionen zurück.

Anstelle der Lizenzpool-ID können Sie jeweils die Produkt-ID oder eine Windows-Software-ID als Parameter übergeben.

Wenn Sie eine Software erneut installieren und das Skript über DemandLicenseKey eine Lizenz anfordert, dann wird die vorher zugeordnete Lizenzoption weiter verwendet, die Funktion liefert also denselben Schlüssel wie vorher. Ist das nicht gewünscht, heben Sie die Verwendung durch FreeLicense mit dem Aufruf deleteSoftwareLicenseUsage auf. Entsprechend bleiben bei einer erneuten Installation die Lizenzverwendungen erhalten. Sie geben Sie mit dem Aufruf deleteAllSoftwareLicenseUsages (zusammen mit der Host-ID des betreffenden PCs als Parameter) frei.
Die Boolesche Funktion opsiLicenseManagementEnabled prüft, ob das Lizenzmanagement freigeschaltet ist (siehe Boolesche Ausdrücke [W/L/M]).

Service-Methoden zum Lizenzmanagement

Sie können Service-Methoden zum Lizenzmanagement mit dem Kommandozeilenwerkzeug opsi-admin (siehe Auf der Kommandozeile: opsi-admin) verwenden, um z. B. mit einem Skript Lizenzschlüssel aus einer Datei einzulesen.

Entsprechende Beispiele finden Sie in den Produkten license-test-*.opsi unter https://download.uib.de/opsi4.1/misc/license-management/. Sie installieren diese Pakete mit dem Befehl opsi-package-manager -i. Anschließend finden Sie im Verzeichnis /var/lib/opsi/depot/<produkt> die dazugehörigen Skripte (create_license-\*.sh).

Lizenzverträge mit opsi-admin bearbeiten

Die Service-Methoden rufen Sie z. B. über opsi-admin auf; mit \* gekennzeichnete Parameter sind optional:

method createLicenseContract(*licenseContractId, *partner, *conclusionDate, *notificationDate, *expirationDate, *notes)

Die Methode erstellt einen neuen Lizenzvertrags-Datensatz mit der ID licenseContractId bzw. bearbeitet einen bestehenden. Geben Sie die ID nicht an, wird sie automatisch generiert. Die beiden Parameter partner (Vertragspartner) und notes (Notizen zum Vertrag) sind frei wählbare Strings. conclusionDate (Datum des Vertragsabschlusses), notificationDate (Erinnerung) und expirationDate (Ablaufdatum) übergeben Sie im Format JJJJ-MM-TT, z. B. 2023-02-28.

Mit den String-Funktionen getLastServiceErrorClass und getLastServiceErrorMessage kann auf einen Fehler reagiert werden, wenn z. B. keine freie Lizenz mehr verfügbar ist:

if getLastServiceErrorClass = "None"
        comment "kein Fehler aufgetreten"
endif

Die Fehlerklasse LicenseMissingError wird zurückgegeben, falls eine Lizenz angefordert wird, aber nicht verfügbar ist. Die Fehlerklasse LicenseConfigurationError wird zurückgegeben, wenn die Konfiguration keine eindeutige Zuordnung eines Lizenzpools zu einer Software zulässt.

Beispielprodukte und Templates

Im Downloadbereich finden Sie vier Beispiele: je ein Produkt zur Verwendung von Retail-, OEM- und Volumenlizenzen sowie ein Produkt, das alle drei Lizenztypen vereint.

Diese Produkte belegen bei der Installation Lizenzen und geben sie bei der Deinstallation wieder frei. Außerdem hinterlassen die Beispiele entsprechende Spuren in der Software-Inventarisierung, die das Lizenzmanagement zum Abgleich verwenden kann.

Wie im vorigen Abschnitt erwähnt, enthalten die Produkte ein Shell-Skript, mit dem Sie zu Testzwecken automatisiert die Lizenzpools, Lizenzverträge und Lizenzen anlegen können.