Tipps & Tricks

test3
Hilfreiche Tipps & Tricks rund um con terra Technologies und FME
Automatisierung mit dem security.manager NEXT

Verwalten von Zugriffsrechten in GitHub

 

Einer der großen Vorteile des security.manager NEXT liegt in seiner Automatisierbarkeit. Aber wie genau kann man sich dies zu Nutze machen? Mit dem folgenden Tipp auf Basis von GitHub wollen wir ein praktisches Beispiel dafür geben, wie Sie Zugriffsrechte verwalten und automatisch anwenden können. Damit lassen sich die folgenden Mehrwerte realisieren:

  • Zugriffsrechte werden an einem zentralen Ort verwaltet, selbst wenn mehrere Personen diese administrieren und bearbeiten („Single Point of Truth“)
  • Alle Änderungen werden historisiert, Sie können jederzeit einfach wieder auf historische Stände zurückgreifen.
  • Nach Änderung von Zugriffsrechten wird der ArcGIS Server automatisch aktualisiert. Dies bedeutet mehr Komfort für den Administrator, beugt Fehlern bei der manuellen Administration vor und sorgt für Konsistenz der Zugriffsrechte zwischen ArcGIS Server und GitHub-Repository.

1. GitHub einrichten 

Zunächst benötigen Sie also einen GitHub-Account. Wenn Sie noch keinen besitzen, können Sie sich auf https://github.com/ kostenlos registrieren. Nach der Anmeldung können Sie zunächst unter Repositories mit dem Button New ein neues Repository anlegen.

 

 

2. Repository einrichten

Vergeben Sie dabei einen Repository name (z. B. secman_policies), und stellen Sie das Repository auf Private, da Ihre Zugriffsrechte vermutlich nicht öffentlich sichtbar sein sollen.


Repository Template

 

3. Verwaltung des Repository mit Visual Studio Code

Nach der Erzeugung wird Ihnen ein Link angezeigt. Kopieren Sie diesen (HTTPS-) Link in die Zwischenablage.

Anschließend öffnen Sie Visual Studio Code. Dies ist ein kostenloser Editor, der Ihnen weitgehende Unterstützung zur Verwaltung Ihres Repositorys und bei der Bearbeitung der Zugriffsrechte bietet. Falls VS Code bei Ihnen noch nicht installiert ist, installieren Sie diesen bitte.

Klicken Sie auf die Schaltfläche Icon (Source Control) Und wählen Sie im Menü des Eintrags Source Control die Option Clone aus.

 

Source Control

 

Geben Sie nun die URL aus der Zwischenablage ein und wählen Sie Clone from URL aus. Nun können Sie ein Verzeichnis anlegen, in dem Sie Ihre Zugriffsrechte verwalten möchten. Anschließend können Sie Ihr Repository öffnen.

 

 

4. Zugriffsrechte definieren

Nun sehen Sie in der Verzeichnisstruktur Ihr neu erzeugtes Repository (falls Sie noch ein Welcome-Fenster sehen, können Sie dies einfach schließen). Wählen Sie neben dem Namen des Repositorys das Symbol New Folder, und legen Sie einen Unterordner mit dem Namen services an.

 

Jetzt können Sie beginnen, Ihre Zugriffsrechte zu definieren. Um für einen Service ein Zugriffsrecht anzulegen, erzeugen Sie dafür eine Datei mit dem Namen <Service-Name>.json (also z. B. SampleWorldCities.json). Für Services, die nicht im Stammverzeichnis des ArcGIS Servers, sondern in einem Unterverzeichnis liegen, legen Sie bitte auch in Ihrem Repository ein Unterverzeichnis mit dem gleichen Namen an und erzeugen dort die Dateien mit den Zugriffsrechten.

 

Weitere Informationen zur Strukturierung des Repositories können Sie unserer Online-Dokumentation entnehmen: https://docs.conterra.de/de/securitymanager-next/latest/reference/policy-cli.html#policies-working-directory

 

 

5. Änderung von Zugriffsrechten

Wenn Sie Änderungen an Ihren Zugriffsrechten vornehmen, sollten Sie diese in Ihrem GitHub-Repository aktualisieren. Wechseln Sie dazu wieder im VS Code auf die Ansicht Source Control, klicken Sie auf das + hinter Changes (Stage all changes) und geben eine kurze Beschreibung der Änderung in das Message-Textfeld ein. Anschließend klicken Sie auf das Check hinter dem Namen Ihres Repositories (Commit). Nun können Sie über die drei Punkte hinter dem Namen Ihres Repositorys die Funktion Push ausführen, um die Änderung in Ihr GitHub-Repository zu übertragen.

 

 

 

6. Anlegen eines Synchronisations-Scripts

Automatische Aktualisierung der Zugriffsrechte auf dem ArcGIS Server

 

Um nach einer Änderung der Zugriffsrechte in Ihrem Repository diese automatisch auf den ArcGIS Server zu übertragen und dort zu aktivieren, können Sie über GitHub Actions einen automatischen Prozess hinterlegen.

 

Zunächst legen Sie dazu im VS Code im Stammverzeichnis Ihres Repositorys eine Datei mit dem Namen sync.sh an. Editieren Sie diese Datei wie folgt:

 


# Abort on errors

set -e

 

SERVER=<Server-URL>

ROOT="./"

 

#login

TOKEN=$(echo $AGS_PASS | secmanctl login -d $SERVER -u $AGS_USR -p - --plain)

 

# sync

secmanctl sync -d $SERVER -f $ROOT -t $TOKEN


 

Ersetzen Sie dabei <Server-URL> durch die URL Ihres ArcGIS Servers. Bitte überprüfen Sie, dass dabei die Adresse <Server-URL>/admin zugreifbar ist.

 

Dieses Script führt eine Anmeldung am ArcGIS Server durch, speichert das Token, das als Ergebnis dieser Anmeldung zurückgegeben wird, in einer Variablen und ruft damit den sync-Befehl des security.manager-Kommandozeilen-Werkzeugs aus. Bitte beachten Sie, dass hier davon ausgegangen wird, dass der ArcGIS Server Token-Authentifizierung verwendet und mit vertrauenswürdigen HTTPS-Zertifikaten arbeitet. Eine genauere Dokumentation dieses Werkzeugs finden Sie unter https://docs.conterra.de/de/securitymanager-next/latest/reference/policy-cli.html.

 

Aktualisieren Sie ihr GitHub-Repository wie weiter oben beschrieben.

7. Erzeugen einer GitHub-Action

Wechseln Sie nun wieder zu GitHub, melden sich an und wählen Sie das Repository aus. Dort finden Sie einen Menü-Eintrag Actions. Wenn Sie diesen anklicken, erscheint als erste Option Simple workflow, klicken Sie hier auf Set up this workflow. In dem sich nun öffnenden Editierfenster vergeben Sie zunächst einen Namen (z. B. sync.yml) und löschen Sie anschließend die vorhandenen Code-Zeilen. Fügen Sie stattdessen folgenden Code ein:


# Sync workflow for security.manager NEXT

 

namesync

 

env

  AGS_USR${{ secrets.USERNAME }}

  AGS_PASS${{ secrets.PASSWORD }}

 

# Controls when the workflow will run

on:

  # Triggers the workflow on push request events but only for the master branch

  push:

    branches: [ master ]

    

  # Allows you to run this workflow manually from the Actions tab

  workflow_dispatch:

 

jobs:

  # This workflow contains a single job called "sync"

  sync:

    # The type of runner that the job will run on

    runs-onubuntu-latest

.

    steps:

      - usesactions/setup-node@v2

        with

          node-version'14'

      - usesactions/checkout@v2

      - runnpm install @conterra/secmanctl -g

      - runbash ./sync.sh


 

Zunächst werden zwei Umgebungsvariablen gesetzt, die später mit dem Nutzernamen und dem Passwort eines ArcGIS-Administrator-Accounts belegt werden.

 

Weiterhin wird definiert, dass dieser Prozess bei jedem Push-Befehl und manuell ausgeführt werden kann.

 

Innerhalb des Jobs wird ausgewählt, auf welchem System der Job laufen soll (ubuntu-latest). Als nächstes wird npm installiert, um darüber das Kommandozeilenwerkzeug zu laden (siehe https://docs.conterra.de/de/securitymanager-next/latest/installation/installation.html#_installation_%C3%BCber_npm). In der letzten Zeile wird schließlich das sync.sh Script aufgerufen, dass die Synchronisation der Zugriffsrechte aus dem Repository auf den ArcGIS Server durchführt.

 

Über die Schaltfläche Start Commit werden die Änderungen gespeichert.

 

 

8. Sichere Hinterlegung von Nutzername und Passwort

Als letzter Schritt müssen noch der Nutzername und das Passwort des ArcGIS-Administratoraccounts hinterlegt werden. Diese Informationen sollten im GitHub-Repository auf keinen Fall im Klartext hinterlegt werden.

 

Darum klicken Sie in Ihrem GitHub-Repository auf Settings und weiter auf Secrets. Klicken Sie hier auf New repository secret und verwenden als Name USERNAME. Unter Value tragen Sie den Administrator-Benutzernamen des ArcGIS Servers ein und klicken Sie auf Add secret. Für das Passwort verfahren Sie ebenso und verwenden den Namen PASSWORD. Auf diese beiden Secrets wird nun bei Ausführung des Prozesses zurückgegriffen, um die Umgebungsvariablen zu füllen.

 

Somit haben Sie nun erfolgreich ein GitHub-Repository erstellt, das die Zugriffsrechte Ihres ArcGIS Servers verwaltet, und zudem sichergestellt, dass bei jeden „Push“ in dieses Repository der neue Stand auf den ArcGIS Server synchronisiert wird.

 

Dieses Vorgehen kann weiter ausgebaut werden, um beispielsweise mit Stage- und Produktionsumgebungen umzugehen.

 

 

 

 

 

 

Mehr Informationen zu security.manager NEXT finden Sie unter https://www.conterra.de/securitymanager.

Tipps und Tricks

Weitere Tipps und Tricks zum Nachlesen

Informieren Sie sich hier über weitere Tipps und Tricks rund um con terra Technologies, FME und ArcGIS.

Kontakt

Haben Sie noch Fragen? Gerne helfen wir Ihnen weiter.

Rüdiger Gartmann, con terra

Rüdiger Gartmann

+49 251 59689 300