Skip to content

Leben mit Personal Access Tokens: Eigentum, Ablauf und Rotation

Ein Token ist leicht erstellt und leicht vergessen, und das Vergessen ist, woher die Ausfälle kommen. Wem einer gehört, was sein Ablauf mit einem Job macht, den niemand beobachtet, was passiert, wenn der Eigentümer geht, und wie man einen ohne Lücke rotiert.

Aktualisiert · 7 Min. Lesezeit

Jeder Token gehört einer Person

Ein Personal Access Token wird für eine namentlich bekannte Person ausgestellt, in ihrem Namen, und er trägt genau die Tableau-Berechtigungen, die diese Person ohnehin hat. Das macht ihn wert, eine Governance-Grenze darauf zu bauen: Alles, was damit getan wird, hätte der Eigentümer ohnehin tun können, und jede Audit-Zeile nachgelagert trägt ehrlich seinen Namen.

Es macht den Token auch zu einem administrativen Objekt, nicht zu einem technischen. Er hat einen Eigentümer, der Eigentümer hat ein Team, und das Team hat einen Dienstplan. Fast alles Unangenehme auf dieser Seite folgt aus dieser einen Tatsache.

Das erste Artefakt, das sich lohnt, ist ein Register: eine Zeile pro Token, mit dem Job, den er antreibt, der verantwortlichen Person, dem Ort, an dem er gespeichert ist, und dem Ablaufdatum. Vier Zeilen brauchen zehn Minuten und beantworten die Frage, die sonst einen Vormittag kostet, nämlich: Wenn ich das widerrufe, was bleibt stehen.

Eine aktive Sitzung pro Token, und wie man damit plant

Tableau Cloud erlaubt eine aktive Sitzung pro Token. Jede neue Anmeldung mit diesem Token beendet die Sitzung davor, was bequem ist, solange eine Person ihn nutzt, und unangenehm in dem Moment, in dem es zwei Dinge sind.

Die Suite ist um dieses Verhalten herum gebaut, nicht dagegen. Das Gateway meldet sich einmal an, prägt eine einzige Tableau-Sitzung und reicht diese eine Sitzung an jedes Tool weiter. Die Tools teilen sie, statt sich jeweils erneut mit demselben Token anzumelden und die Anmeldung davor ungültig zu machen.

Dieselbe Regel prägt, wie sich ein langer Job verhält. Bevor ein Migrationslauf gegen eine Cloud-Quelle freigegeben wird, sagt die Vorabprüfung es in genau diesen Worten: Nutzen Sie einen Token, der diesem Lauf gewidmet ist, unter einem Namen, den nichts anderes nutzt, und stellen Sie sicher, dass kein Zeitplan, kein Browser-Tab und kein zweites Gerät ihn teilt. Der Lauf wiederholt Authentifizierungsfehler in gestaffelten Runden: Eine Kollision ist überlebbar, aber ein Client, der sich immer wieder mit demselben Token anmeldet, wird ihn trotzdem aushungern. Eine Server-Quelle toleriert gleichzeitige Sitzungen auf einem Token, und deshalb kann eine Gewohnheit, die jahrelang harmlos war, ein Team beim ersten Cloud-Lauf überraschen.

Ein geplanter Job und eine Person, die sich gegenseitig zu stören scheinen, sind meist genau das, und es zeigt sich als unregelmässiges Produktflattern und sieht selten wie das Berechtigungsproblem aus, das es ist. Prüfen Sie, welchen Token jede Seite hält, bevor Sie irgendetwas anderes untersuchen.

Was der Ablauf mit einer Automatisierung macht

Ein Token hat ein Ablaufdatum, und eine darauf gebaute Automatisierung erbt dieses Datum, ohne es je wieder zu erwähnen. Der Ausfall kommt dann beim nächsten geplanten Lauf an, nicht im Moment des Ablaufs. Die Lücke zwischen dem Sterben des Tokens und dem Moment, in dem jemand davon hört, ist ein voller Zyklus. Bei einem monatlichen Job ist das ein Monat.

Zwei Einstellungen sollte man auf der eigenen Site lesen, nicht annehmen: das Ablaufdatum, das ein Administrator beim Ausstellen des Tokens gesetzt hat, und was Ihre Site mit einem Token macht, der ungenutzt herumlag. Ein Token, der einen vierteljährlichen Job antreibt, verbringt den grössten Teil seines Lebens untätig, und das ist die Kombination, die Teams kalt erwischt.

Wo ein geplanter Lauf vom persönlichen Token auf eine Dienstberechtigung zurückfallen kann, ist die Designantwort klein, aber entscheidend: Welche Berechtigung tatsächlich authentifiziert hat, wird am Lauf festgehalten und in der Zeile gezeigt. Ohne dieses Protokoll bleibt ein stiller Rückfall unrepariert, und das Problem taucht erst auf, wenn der Rückfall selbst scheitert.

Ein gescheiterter Lauf stellt trotzdem seinen nächsten Auslöser scharf: Ein Zeitplan, der nicht mehr vorrückt, bleibt dauerhaft fällig, und der Runner greift immer wieder danach.

Wenn der Eigentümer eines Tokens geht

Das Konto geht, und der Token geht mit ihm. Das ist korrektes Verhalten, und es ist auch der Moment, in dem mehrere unbeaufsichtigte Jobs auf einmal stehen bleiben, ohne dass einer davon in der Austrittscheckliste erscheint.

Eine Person auf einer Tableau Site kann sechs Arten von Dingen besitzen: Arbeitsmappen, veröffentlichte Datenquellen, Flows, Projekte, Abonnements und Aktualisierungsaufgaben. Ihre Tokens sind eine siebte, und anders als die anderen sechs taucht ein Token in keinem Projektbaum auf. Kümmern Sie sich in derselben Stunde darum wie um die Inhalte, die ihr gehören, sonst findet ein Zeitplan ihn für Sie.

  • Eine Neuzuweisung braucht ein Ziel, das die Inhalte besitzen kann: eine Rolle der Creator-Stufe, einen Explorer mit Veröffentlichungsrecht oder eine Administratorrolle. Ein Ziel ausserhalb dieser Menge ist ein Rollenkonflikt, und den sollte man im Plan erwischen, bevor der Lauf halb durch ist.
  • Jedes Objekt bekommt einen namentlich bekannten neuen Eigentümer. Ein Neuzuweisungsziel ist immer erforderlich: Inhalte werden verschoben, nie unterwegs entfernt.
  • Inhalte mit eingebetteten Zugangsdaten werden gesondert markiert, denn eine Datenquelle einem neuen Eigentümer zu übergeben authentifiziert ihre Verbindung nicht neu.
  • Die Lizenz sollte beim Freigeben festgehalten werden. Die Site-Rolle entspricht einer Stufe, und der Lauf hält fest, was zurückgewonnen wurde, die Zahl, nach der ein Finanzgespräch drei Monate später fragt.

Offboarding und Token-Hygiene sind dieselbe Disziplin, von zwei Enden betrachtet. Ein Register, das die für jeden Token verantwortliche Person nennt, macht aus dem Austrittsgespräch ein Nachschlagen statt einer Untersuchung.

Einen Token rotieren, während die Arbeit weiterläuft

Rotation geht schief, wenn sie als Tausch durchgeführt wird. Als Überlappung durchgeführt ist sie ereignislos.

  1. Stellen Sie zuerst den neuen Token aus, benannt nach dem Job, den er antreiben wird, mit einem frischen Ablaufdatum, das Sie in derselben Minute aufschreiben.
  2. Installieren Sie ihn dort, wo der alte lebt. Installieren ersetzt die vorherige Berechtigung, statt sich ihr anzuschliessen.
  3. Führen Sie den Job einmal von Hand aus und lesen Sie dann die Zeile. Sie muss sagen, dass der persönliche Token authentifiziert hat, nicht die Dienstberechtigung.
  4. Widerrufen Sie den alten Token erst, wenn diese Zeile grün ist.
  5. Tragen Sie das neue Ablaufdatum zwei Wochen früher in einen gemeinsamen Kalender ein, und behandeln Sie den Eintrag als die Arbeit selbst, nicht als Erinnerung.

Der Installationsschritt ist sicher, während Arbeit läuft. Eine festgeschriebene Berechtigung wird in eine temporäre Datei geschrieben und dann an ihren Platz verschoben, sodass ein Lauf, der mitten in der Rotation startet, entweder die alte oder die neue Berechtigung liest und nie die Hälfte einer Datei.

Schritt drei ist der, den die Leute überspringen, und es ist der einzige Schritt, der irgendetwas beweist. Wenn der Lauf mit der Dienstberechtigung gelingt, ist der persönliche Token bereits kaputt, die Rotation hat nichts getestet, und Sie haben gerade Ihren Beleg widerrufen.

Wo ein Token von einem Administrator für eine gehostete Bereitstellung festgeschrieben ist, wird die Abmeldeschaltfläche absichtlich ausgeblendet, denn der nächste Seitenaufruf würde ihn ohnehin wieder verbinden. Diese Berechtigung wird stattdessen in der Admin-Konsole geändert, wo jeder, der sie sucht, auch nachsehen würde.

Wo die Berechtigung lebt, wenn niemand angemeldet ist

Geheimnisse in dieser Suite gelten nur für die Sitzung, was sauber hält, bis ein Job um halb drei laufen muss, ohne dass jemand da ist. Die Ausnahme ist ausdrücklich, eng und es wert, verstanden zu werden, bevor Sie sich darauf verlassen.

  • Der Scheduler hält den Zeitplan, den Rhythmus und die Aufbewahrung. Er hält absichtlich keine eigene Berechtigung.
  • Das Geheimnis wird serverseitig aufgelöst und an einen kurzlebigen Endpunkt übergeben, der sich anmeldet, holt, wofür er gekommen ist, und sich wieder abmeldet.
  • Ein festgeschriebener Token ist ruhend verschlüsselt, wird nie protokolliert und nie an einen Browser zurückgegeben: Der Statusaufruf liefert nur den Token-Namen. Ein Klick entfernt ihn.
  • Unter einem Maschinenschlüssel versiegelt jeder Benutzerbereich seine Berechtigung mit einem eigenen abgeleiteten Schlüssel. Der Token einer Person kann nicht mit dem einer anderen gelesen werden.

Eine Zeile in dieser Liste leistet mehr, als sie aussieht. Die Site, auf die ein Zeitplan zeigt, wird serverseitig aus der laufenden Sitzung gestempelt, nie aus der Anfrage gelesen, denn ein Aufrufer, der sie setzen könnte, könnte einen geplanten Lauf auf eine andere Site richten, während er die Berechtigung von jemand anderem hält.

Eine Routine, die ein volles Quartal übersteht

  1. Prüfen Sie das Register, wenn jemand kommt oder geht, nicht in einem vierteljährlichen Zyklus, den niemand einhält.
  2. Geben Sie jedem unbeaufsichtigten Job einen eigenen Token. Einen mit einer Person zu teilen ist das, was die Abmeldung erzeugt, die niemand erklären kann.
  3. Lesen Sie einmal im Monat die festgehaltene Berechtigung auf geplanten Läufen. Zwei Minuten, und es ist der einzige Ort, an dem ein stiller Rückfall auftaucht.
  4. Rotieren Sie durch Überlappung: ausstellen, installieren, einen Lauf beweisen, dann widerrufen.
  5. Behalten Sie die Zeile eines widerrufenen Tokens und notieren Sie das Datum daneben. Die Historie ist das, was die nächste Untersuchung kurz macht.

All das ist gewöhnlich. Es ist der eine Teil der Berechtigungsverwaltung, zu dem keine Oberfläche je jemanden auffordert. Schreiben Sie es einmal auf und behalten Sie es.