CodamAIDocs
Themafertig

Wie ein Attribut wieder verschwindet

Ein Attribut, das kein Modul mehr deklariert, wird stillgelegt, nicht gelöscht.

Ausprägungen
Modul zieht das Attribut zurückein anderes Modul meldet es weiter anModul nicht erreichbarwieder angemeldet, vom selben Modulwieder angemeldet, von einem anderen Modul

Worum es geht

Ein Modul braucht ein Attribut nicht mehr, etwa weil ein Modell seinen Attributfilter verloren hat. Beim nächsten Abgleich fehlt das Attribut in seiner Anmeldung. Was passiert dann?

Warum so vorsichtig? Ein Attribut löschen hieße, den Wert in jedem Konto zu vernichten. Bei einer Rolle geht beim Stilllegen nur eine Berechtigung verloren, die man neu vergeben kann. Ein Attribut ist Inhalt. Und niemand könnte später nachsehen, dass es das Attribut je gab.

Vorher und nachher

angemeldetstillgelegt
Katalog deprecatedAtnullDatum und Uhrzeit des Laufs
Katalog moduledas anmeldende Modulbleibt stehen, bis ein Modul es wieder anmeldet
Eintrag im Benutzerprofildableibt
Werte an den Konten und in CIASdableiben
Claim-Mapper, Claim im Tokendableiben
Werte pro Mandant schreibenlaut Delegationnur noch Plattform-Administratoren

Das Datum bleibt fest. Läuft der Abgleich wieder, stempelt er es nicht neu. So beantwortet deprecatedAt die Frage „Seit wann?“ und nicht „Wann lief der Dienst zuletzt an?“.

Die Ausprägungen

Was mit einem Attribut passiert, das fehlt

Wann: Das Modul, dem das Attribut im Katalog gehört, antwortet und nennt es nicht mehr. Kein anderes Modul im Lauf nennt es.

CIAS setzt deprecatedAt. Der Bericht des Abgleichs führt das Attribut beim Modul unter attributeCatalogue.deprecated.

Ergebnis: stillgelegt

Wann: Das Modul nennt region nicht mehr, ein anderes Modul im selben Lauf nennt es aber, gleich beschrieben.

Solange irgendein Modul das Attribut noch braucht, bleibt es angemeldet.

Ergebnis: nicht stillgelegt

Wann: Das Modul antwortet beim Abgleich nicht, oder seine Anmeldung wird abgewiesen.

CIAS lässt alles, was dem Modul gehört, in Ruhe. Ein Modul, das gerade neu startet, zieht nichts zurück.

Ergebnis: unverändert

Wann: Das Modul nennt das Attribut später wieder.

CIAS löscht deprecatedAt und übernimmt die Beschreibung aus der Anmeldung. Die Delegation setzt es neu aus der Angabe der Installation. Werte gab es die ganze Zeit.

Ergebnis: wieder angemeldet, Bericht: reinstated

Wann: Ein stillgelegtes Attribut wird von einem anderen Modul angemeldet.

Ein stillgelegtes Attribut gehört niemandem mehr. Das neue Modul übernimmt es und wird Eigentümer. Die alte Delegation fällt weg, CIAS setzt sie neu aus der Angabe der Installation.

Ergebnis: wieder angemeldet, neuer Eigentümer

Die Entscheidung

Wird das Attribut in diesem Lauf stillgelegt?
Eigentümer-Modul hat geantwortet?Eigentümer nennt es noch?Ein anderes Modul im Lauf nennt es?Ergebnis
nein––unverändert
jaja–bleibt angemeldet
janeinjableibt angemeldet
janeinneinstillgelegt

Wirklich entfernen

CIAS entfernt ein Attribut nie, weder aus dem Katalog noch aus Keycloak. Wer ein stillgelegtes Attribut wirklich loswerden will, entscheidet das bewusst und von Hand:

  1. Prüfen, dass kein Filter und keine Oberfläche den Wert mehr liest.
  2. Den Claim-Mapper am Client und den Eintrag im Benutzerprofil in der Keycloak-Konsole entfernen. Damit sind die Werte an den Konten weg.

Der Katalogeintrag bleibt als Nachweis, dass es das Attribut gab.

Fallen

Weiter

Quellen im Code und in der Wissensdatenbank
  • CIAS/cias-authorization – DeclaredAttribute (deprecate, reinstate, isDeprecated, deprecatedAt), RoleReconciliationService (catalogueAttributes, stillDeclared, writeProfile additiv)
  • CIAS/cias-authorization – AttributeWritePermission (zurückgezogen: nur Plattform-Administrator), ReconciliationReport.ModuleOutcome.AttributeCatalogue (defined, updated, deprecated, reinstated)
  • CIAS/cias-iam-api – UserProfileManagementPort (ensureAttributes additiv)
  • CIAS/cias-authorization/docs/adr – ADR-040 (Abschnitte 2 und 3)
Suchen