Nutzung von openCode: Plattformguidelines
Aufbau und Funktionsweise der openCode-Plattform Kopiert!
Ziel der Plattformguidelines ist es, das Benutzen der openCode-Plattform zu vereinfachen und die wesentlichen Aspekte zum Umgang mit openCode zentral darzustellen. Dementsprechend möchten wir mit diesem Dokument eine gebündelte Hilfestellung zu den nebenstehenden Themen anbieten.
1. Allgemeine Hilfestellung zu Open Source Kopiert!
openCode bietet den Nutzenden allgemeine Hilfestellungen zum Umgang mit Open-Source-Software (OSS). Hier werden die besonderen Bedürfnisse der Öffentlichen Verwaltung adressiert und aufgeführt in welcher Form openCode diese fördern kann. Weiterführende Hilfestellungen und Handreichungen bieten auch andere Artikel in diesem Wissensbereich, so zum Beispiel die Themen Lizenz Compliance, unser Open-Source-Glossar, dem Code of Conduct und die Nutzungsbedingungen. Die Nutzung der Plattform und der dazugehörigen Dienste ist nur zulässig, wenn Nutzende diese Nutzungsbedingungen akzeptieren. Diese sind die vertragliche Basis für das Verhältnis zu den Betreibenden der Plattform und den anderen Nutzenden. Wir möchten mit diesen Nutzungsbedingungen einen möglichst kooperativen und verlässlichen Raum für Open Source in der Öffentlichen Verwaltung schaffen.
Direkter Kontakt: Die openCode Kontaktstelle steht allen Nutzenden zur Verfügung. Zum aktuellen Zeitpunkt beschränkt sich das Angebot auf Anfragen zur Plattform, perspektivisch sollen mithilfe dieser Kontaktstelle auch bei Fragen zu Open Source in der Öffentlichen Verwaltung im Hinblick auf einzelne Regularien und Standardverfahren unterstützt werden. Anfragen richten Sie bitte an info@opencode.de
2. Accounterstellung Kopiert!
Zugelassener Personenkreis zur Accounterstellung
Lesender Zugriff auf die Plattform ist für die meisten Informationen ohne Account möglich. Dies schließt alle Komponenten, insbesondere den Code mit ein. Einzelne Informationen, darunter Empfehlungen und Inhalte, die ausschließlich für die Öffentliche Verwaltung von Interesse sind, sowie für schreibende Zugriffe benötigen Akteure auf openCode einen Account. Berechtigt zur Erstellung eines Accounts ist jede natürliche Person.
Eine Hürde für Open Source im komplexen Umfeld der Öffentlichen Verwaltung ist nachvollziehbare Urheberschaft. openCode setzt auf Nachverfolgbarkeit durch multiple Personas. Das bedeutet, dass für einzelne Dienstherren/Auftraggeber, sowie für private Kontributionen jeweils gesonderte Accounts nötig sind. Durch die Möglichkeit mehrere Accounts anzulegen wird den Kontribuierenden die Chance gegeben, die Urheberschaft, insbesondere im dienstlichen Auftrag für die Nachnutzung nachvollziehbare zu dokumentieren.
Bei der Erstellung eines Accounts wird abgefragt, ob eine Person minderjährig ist. Gibt eine Person bei der Erstellung an, minderjährig zu sein, so ist der Account nach dem vollständigen Ausfüllen aller Informationen in einem gesperrten Zustand. Die minderjährige Person wird automatisch per E-Mail aufgefordert eine formlose Bestätigung nebst Kopie des Lichtbildausweises aller Sorgeberechtigten an den Plattformbetreiber zu senden. Nach erfolgreicher Verifikation wird der Account zur vollständigen Nutzung freigeschalten.
Notwendige Informationen zur Accounterstellung
Zur Erstellung eines Accounts werden verschiedene Informationen und die Zustimmung zu den Nutzungsbedingungen und der Datenschutzerklärung abgefragt. Jeder Account muss genau einer Person zuordenbar sein, daher werden Informationen zu Vornamen und Name in Verbindung mit einem wahlweise anonymen, aber einzigartigen Benutzername benötigt. Der Benutzername ist dabei frei wählbar, solange er auf openCode einzigartig ist. Zur Kontaktaufnahme und Verifizierung ist die Angabe einer E-Mail-Adresse notwendig.
Wird die Plattform im Auftrag eines Unternehmens oder einer Organisation verwendet, muss diese Organisation angegeben werden. openCode verifiziert zusätzlich anhand der E-Mail-Adresse die Zugehörigkeit einer Person zur Öffentlichen Verwaltung oder Unternehmen in deren Auftrag.
Die Grundlage für die openCode-Plattform ist „von der Verwaltung - für die Verwaltung“. Daraus folgend ist es notwendig, dass die bereitgestellten Projekte nur durch Teilnehmende der Öffentlichen Verwaltung, oder in deren Namen eingestellt werden, um die Relevanz der Projekte für die Öffentliche Verwaltung sicherzustellen. Die hierzu eingesetzte Identifizierung und damit einhergehende Erhöhung der Rechte zu Maintainer und Repository Owner innerhalb der Plattform ist ausschließlich Mitarbeitenden der Öffentlichen Verwaltung oder Unternehmen im Auftrag der Öffentlichen Verwaltung vorbehalten. Registrierte Accounts ohne Auftrag der Öffentlichen Verwaltung erhalten Basisrechte als Contributor für existierende Projekte, können aber nicht eigenständige Maintainer eines Projekts sein oder eigene neue Projekt als Repository Owner erstellen.
Für eine automatische Verifizierung von Mitarbeitenden der Öffentlichen Verwaltungen wird eine Allowlist aller E-Mail-Domains aus dienstlichen E-Mail-Domains der Öffentlichen Verwaltung verwendet, welche dem Mitarbeitenden bei der Erstellung verschiedene Rechte zuweist. E-Mail-Adressen von Unternehmen, die im Auftrag der Öffentlichen Verwaltung arbeiten und denen damit gleiche Rechte zustehen, müssen auf individueller Basis durch einen Mitarbeitenden der Öffentlichen Verwaltung als Dienstherrn des beauftragten Unternehmens freigegeben werden.
Sicherheitsmerkmale bei der Accounterstellung / Zwei-Faktor-Authentifikation
Bei der Anmeldung muss neben Benutzername und Passwort die Zwei-Faktor-Authentifikation verwendet werden. Dabei wird ein individueller QR-Code generiert, der mit einem Authenticator-Tool gescannt wird. Neben Benutzername und Passwort wird damit ein Einmalpasswort pro Login benötigt, welches durch das Authenticator-Tool erzeugt wird. Das Authenticator-Tool ist in der Regel eine Smartphone-Applikation. Die Nutzung der Zwei-Faktor-Authentifikation ist für Maintainer und Repository Owner für die Ausübung ihrer privilegierten Berechtigungen zwingend notwendig.
Für Passwortanforderungen an jeden Nutzenden wird dem Umsetzungshinweis ORP .4.M22 des Bundesamt für Sicherheit in der Informationstechnik BSI Grundschutz „ORP .4: Identitäts- und Berechtigungsmanagement“ in ORP .4.A22 zu Regelungen der Passwortqualität gefolgt. Verwendet der Nutzende eine sichere Zwei-Faktor-Authentifikation, wird ein Passwort mit mindestens 8 Zeichen Länge und drei genutzten Zeichenarten gefordert. Zeichenarten können beispielsweise Großbuchstaben, Kleinbuchstaben, Nummern oder Sonderzeichen sein.
Maintainern und Repository Ownern wird empfohlen, direkt nach der Anmeldung Schlüssel zur Signatur von Commits und Artefakten zu hinterlegen.
3. Anmeldung auf openCode Kopiert!
Die Anmeldung auf openCode und aller dazugehörigen Services geschieht über Keycloak, einer OSS lizensierten, zentralen „Single Sign-On“-Lösung (SSO-Lösung). Notwendig ist für jeden Nutzenden der Benutzername oder die E-Mail-Adresse der Accounterstellung, sowie das gewählte Passwort. Zusätzlich ist bei aktivierter Zwei-Faktor-Authentifikation ein Einmalpasswort durch das Authenticator-Tool notwendig.
4. Orientierung auf openCode Kopiert!
openCode beschreibt die technische Infrastruktur als Grundlage für die Open-Source-Kollaboration der Öffentlichen Verwaltung. Zu den wesentlichen Anwendungen und Funktionalitäten, welche genutzt werden können, zählen:
Code Repository als (Git-)versionierter Ablageort für Quellcode:
Unsere Code Repository Plattform ist ein (Git-)versionierter, öffentlicher Ablageort für Quellcode. Sie stellt hierbei die Grundlage für die kollaborative Zusammenarbeit der Öffentlichen Verwaltung dar, indem es den Nutzenden den Raum zur Verfügung stellt, in dem sie Projekte anlegen, gemeinsam entwickeln und verwalten können. Mehr dazu finden Sie in den technischen Grundlagen.
Softwareverzeichnis als durchsuchbarer Katalog:
Verzeichnis ausgewählter, auf openCode verfügbarer Open-Source-Projekte und Lösungen für die Öffentliche Verwaltung.
Discourse als Anwendung für Kommunikation auf openCode:
Jedes Open Source Projekt auf openCode besitzt automatisch die Funktionalität eines Diskussionsforums durch die Implementierung des Open-Source-Projekts „Discourse“. Ein Diskussionsforum dient dem inhaltlichen Austausch zu einem Projekt und der inhaltlichen Diskussion zwischen den Entwickelnden des Projekts und dessen Nutzenden oder zwischen den Nutzenden allein. An einer Diskussion kann jeder registrierte Nutzende teilnehmen und dabei neue Diskussionsthemen in gesonderten, sogenannten Topics eröffnen, sowie zu bestehenden Themen in existierenden Topics Kommentare verfassen.
5. Verwendung von openCode Kopiert!
Open-Source-Projekte und Lösungen verwenden
Open Source Projekte auf openCode können grundsätzlich durch alle Nutzenden, auch Gäste ohne registrierten Account, eingesehen werden.
Open Source verwenden bedeutet, dass die Teilnehmenden bestehende Open-Source-Projekte und Lösungen nutzen. Bei diesem Nutzen ist grundsätzlich zwischen zwei unterschiedlichen Formen zu unterscheiden:
- Open-Source-Software als Bestandteil für eigene Entwicklungsleistungen der Nutzenden, bspw. Verwendung und Integration von OSS-Komponenten in eigene Projekte und Lösungen.
- Open-Source-Softwarelösungen als zur Verwendung vorbereitete, d. h. ausführbare Anwendungen.
Die Teilnehmenden treten in beiden Fällen kaum gegenüber dem Open-Source-Projekt in Erscheinung. Die Nutzungsrechte der Komponenten werden entsprechend der Lizenz erteilt. Mögliche Auflagen und Anforderungen durch die Open-Source-Softwarelizenz des verwendeten Projekts sind hierbei zu beachten. Weiterhin sind grundsätzliche Aspekte hinsichtlich IT-Sicherheit, Wartung, Projektkontinuität und Interoperabilität in der bestehenden Software- und Prozesslandschaft durch die Nutzenden zu prüfen, da Open Source Projekte möglicherweise nicht ausreichend für einzelne Anforderungen aufgestellt sind.
An Open-Source-Projekten teilnehmen
An Open-Source-Projekten teilzunehmen heißt, sich aktiv an Projekten als Contributor zu beteiligen. Teilnehmen können auf openCode hierbei grundsätzlich alle registrierten Nutzenden.
Die Teilnehmenden, die Open Source beisteuern möchten, haben dabei als Contributor folgende Punkte zu beachten:
- Bei der Erstellung des beizusteuernden Quellcodes müssen die Anforderungen der Open Source Softwarelizenz des bestehenden Projektes berücksichtigt werden.
- Der beizusteuernde Quellcode darf weder persönliche oder vertrauliche Informationen noch geschütztes geistiges Eigentum oder Patente enthalten.
- Es ist zu prüfen, ob der beizusteuernde Quellcode projektweite Formalia, etwa ein vorheriges Unterzeichnen eines Contributor License Agreement (CLA) notwendig macht.
- Durch das Beisteuern treten die Teilnehmenden öffentlich in Erscheinung. Dementsprechend sind grundlegende Verhaltensweisen und Prinzipien guter Programmierung zu beachten, da Verstöße gegen diese im Zweifelsfall zu negativer Reputation führen können.
Open-Source-Projekte und Lösungen erstellen
Open Source Projekt erstellen, können auf openCode nur registrierte Akteure mit identifizierten Accounts denen die Rolle als möglicher Repository Owner zugeordnet ist, somit im Auftrag der Öffentlichen Verwaltung agieren.
Die genaue Rollenbeschreibung für Repository Owner kann den Nutzungsbedingungen entnommen werden.
Besondere Aufmerksamkeit bei der Erstellung neuer Open Source Projekte gilt den Fähigkeiten des Erstellers und Repository Owners. Nutzende, welche ein Open Source Projekt erstellen möchten, haben dabei als Projekt Owner unter anderem folgende Punkte zu beachten:
- Die Lizenzierung von Software unter einer Open-Source-Lizenz ist nur möglich, wenn eine entsprechende Rechteposition besteht, die dies urheberrechtlich zulässt. Grundsätzliche Leitfrage zur Rechteposition ist der Anteil des geistigen Eigentums. Wurde 100% des Source Codes durch die Teilnehmenden, Bediensteten derselben Behörde oder des eigenen Unternehmens erstellt und niemandem sonst Nutzungsrechte eingeräumt, so scheint die Rechteposition zur Open Source Lizenzierung zulässig. Die „Lizenzsierungsleitfragen" im Anhang der Lizenz Compliance können bei der Prüfung unterstützen. Im Zweifelsfall sollte rechtlicher Rat eingeholt werden.
- Eine unveränderte Nutzung der EVB-IT Vorlagen sieht häufig keine ausreichende Rechteposition zur Lizenzierung einer Software als Open Source vor.
- Eine Empfehlung der zu wählenden Lizenz gibt es nicht, da die jeweiligen Lizenzbedingungen den Anforderungen des Einzelfalls genügen müssen. Pauschal empfiehlt es sich dennoch, gängige und weitverbreitete Lizenzen zu verwenden, die den Nutzern eher bekannt sind als selten verwendete Lizenzen. In der Lizenz Compliance und in den FAQ der Plattform befinden sich einige von openCode empfohlene Lizenzen und beispielhafte Einsatzzwecke.
- Teilnehmende, welche ein Open-Source Projekt erstellen, müssen technisch und kapazitiv in der Lage sein, ein Open Source Projekt zu verwalten und sich über alle einhergehenden Pflichten im Klaren sein.
Verwendung von openCode als Person
Einer Person steht je nach Berechtigung und Einhaltung der Nutzungsbedingungen frei, wie sie die Plattform verwenden möchte, so kann sie Open Source Projekte als Nutzender verwenden, als Contributor teilnehmen oder als Repository Owner erstellen.
Alles kann im privaten Kontext mit einem privaten Account geschehen, oder mit einem über eine dienstliche E-Mail-Adresse verifizierten Account im Namen des Dienstherrn, beziehungsweise der eigenen Organisation. Verwendet eine Person die Plattform über einen dienstlichen Account, so muss die Person dafür die entsprechende Vertretungsmacht besitzen.
Verwendung von openCode als Gruppe
Die openCode Plattform erlaubt die optionale Erstellung von Gruppen. Diese dienen der Gruppierung von Personen und Projekten gleichermaßen. Das Code Repository von openCode macht keine Vorschriften darüber, wie diese Gruppen zu gestalten sind. Gruppierungen einer Kommune, eines Kommunaldienstleisters oder eines Projektes sind zulässig.
Gruppen erleichtern für eine Gruppierung von Personen das Management verschiedener Open-Source-Projekte und Repositories. So können Berechtigungen für Projekte allen Gruppenmitgliedern automatisch zugewiesen und die Issues und Merge Requests aller Repositories in einer Gruppe aggregiert dargestellt werden. Andere Nutzenden können beispielsweise bei Issues oder Merge Requests eine ganze Gruppe adressieren und damit den Workflow beschleunigen, da der nächste freie Mitarbeitende der Gruppe die Anfrage bearbeiten kann.
Gruppen können auf bis zu 20 Ebenen in Sub-Gruppen unterteilt werden, sodass eine Vielzahl an Organisationsstrukturen abgebildet werden kann. Die Abbildung von Entwicklerteams in Sub-Gruppen einer übergeordneten Organisationsstruktur erleichtert die Arbeit durch Kommunikation innerhalb einer Sub-Gruppe, einfachem Berechtigungsmanagement und der Darstellung von Gruppen-Aktivitäten. Gruppen erstellen können ausschließlich identifizierte Nutzende. Die Person, die eine Gruppe erstellt, wird zum Owner der Gruppe und kann zusätzliche Owner oder Maintainer hinzufügen. Sub-Gruppen können nur durch die Owner oder Maintainer einer Gruppe erstellt werden. Gruppen mit Bezug oder hoher Ähnlichkeit zu bestehenden Institutionen und Marken dürfen nur mit jeweiliger Zustimmung der Verantwortlichen erstellt werden.