Skip to content

Beta: Administratoren

Beta: Dieses Feature befindet sich in der Erprobungsphase. Der Rückbau oder Breaking-Changes können in jedem Release erfolgen, bis das Feature als stabil deklariert wird.

Release 26: Das "Named Admins"-Feature erfordert CMI Server Release 26 oder höher. Die Einstellungen können zwar vor einem Release-Update des CMI Servers gesetzt werden, haben jedoch erst einen Effekt, wenn der CMI Server aktualisiert wurde. Es kann einige Minuten dauern, bis der CMI STS das Update auf eine unterstützte CMI Server Version erkennt.

Dieses Kapitel beschreibt die Handhabung von Benutzern mit Administrator-Rechten. Mit einer Reihe von Richtlinien kann gesteuert werden, wie der CMI STS mit Benutzern umgeht, die ein Administrationsrecht haben.

Named Admin Provider

In der Sektion AdministrativeUsers.NamedAdminProvider kann ein OIDC Provider konfiguriert werden. Benutzer, die sich über diesen Provider anmelden können, werden als "Named Administrators" behandelt. WS Federation Provider werden nicht unterstützt. Es können die selben Konfigurationsparameter verwendet werden, die in Identity Provider (IDP) dokumentiert sind. Dabei gilt:

  • Die interne Provider ID ist immer admin
  • Auf die Eigenschaft Type kann verzichtet werden, ein OIDC Provider wird in jedem Fall erwartet
  • Der Provider kann nur global konfiguriert werden und nicht auf Mandanten-Ebene
{
    "AdministrativeUsers": {
        "NamedAdminProvider": {
            // OIDC Provider Konfiguration
            "Authority": "...",
            "CallbackPath": "/signin-oidc-admin",
            // ... weitere Provider-Einstellungen

            // Linkname auf der Benutzeroberfläche
            "DisplayName": "Administration",

            // BenutzerID-Claim für die automatische Benutzererstellung
            "IdClaimType": "sub"
        }
    }
}

CMI Server Administrator-Richtlinien

Es können Administrator-Richtlinien festgelegt werden, die festlegen, unter welchen Umständen der CMI STS das Login von Benutzern mit Administrationsrecht an CMI Servern erlaubt.

Die Richtlinien können global konfiguriert werden und durch Mandanten-lokale Konfiguration überlagert werden.

  • Global: AdministrativeUsers.CmiServerPolicies
  • Mandanten-spezifisch: Tenants.{TenantId}.AdministrativeUsers.CmiServerPolicies

Die Mandanten-spezifische Konfiguration hat Vorrang gegenüber der globalen Konfiguration. Die Sektion CmiServerPolicies wird als ganzes Mandanten-spezifisch überschrieben, die globale Sektion wird dabei vollständig ignoriert. Es ist nicht möglich, nur einzelne Eigenschaften zu überschreiben.

{
    "AdministrativeUsers": {
        "NamedAdminProvider": {
            // erforderlich für "NamedAdminPolicies"
        },
        "CmiServerPolicies": {
            "BuiltInAdministratorPolicies": {
                "AllowBuiltInAdministrator": true
            },
            "RegularUserPolicies": {
                "AllowAdminRight": true
            },
            "NamedAdminPolicies": {
                "Enabled": false,
                "ClaimRequirements": {
                    // Beispiel:
                    "department": "IT"
                },
                "FixedClaims": {
                    // Beispiel:
                    "function": "Systemadministrator",
                    "org": "Operations"
                }
            }
        }
    }
}
  • BuiltInAdministratorPolicies.AllowBuiltInAdministrator (optional, Standardwert: true): Erlaubt das Login für den BuiltIn-Administrator.
  • RegularUserPolicies.AllowAdminRight (optional, Standardwert: true): Erlaubt das Login regulären CMI Benutzer, denen das Admin-Recht zugewiesen ist.
  • NamedAdminPolicies: Einstellungen für "Named Admins"
  • Enabled (optional, Standardwert: false): Erfordert einen konfigurierten NamedAdminProvider. Aktiviert das "Named Admins"-Feature.
  • ClaimRequirements (optional, Standardwert: Keine): Schlüsselwert-Paare von Claims, die ein Benutzer, welcher sich via NamedAdminProvider anmeldet, besitzen muss, um als "Named Admin" akzeptiert zu werden. Der Benutzer muss alle konfigurierten Claims halten (UND-Verknüpft).
  • FixedClaims (optional, Standardwert: Keine): Schlüsselwert-Paare von Claims, die statisch einem Benutzer hinzugefügt werden, welcher sich via NamedAdminProvider anmeldet. Bereits vom IDP gelieferte Claims werden nicht überschrieben.

Es werden Fehler-Codes im Bereich STS7XX erzeugt, wenn ein Login aufgrund einer dieser Richtlinien abgelehnt wird.

Named Admins

Das hier beschriebene Verhalten hat bei CMI Servern, die älter als R26 sind, keinen Effekt.

Wird das "Named Admins"-Feature aktiviert, wird folgendes Verhalten aktiviert:

  1. Auf der Login-Seite wird ein Link angezeigt (Administratives Login oder DisplayName von NamedAdminProvider). Wird der Link ausgewählt, wird eine Login-Challenge gegen den NamedAdminProvider ausgeführt und das ClaimRequirements überprüft.
  2. Ist das Login via NamedAdminProvider erfolgreich, wird dem CMI Server signalisiert, das sich ein "Named Admin" anmeldet.
  3. Der CMI Server erzeugt, sofern nicht bereits vorhanden, automatisch einen Benutzer im CMI und weisst diesem das Admin-Recht zu. Der CMI Server stellt somit sicher, das ein Benutzer für dem "Named Admin" existiert.
  4. Der Benutzer wird mit diesem CMI Benutzer eingeloggt.

Im Detail geht der CMI Server wie gefolgt bei einem Login eines "Named Admins" vor:

  1. Ein externer Benutzer mit der Provider-ID admin und der Benutzer-ID aus dem im IdClaimType konfigurierten Claim wird gesucht.
  2. Wenn der Benutzer gefunden wird, wird überprüft, ob das Flag Systembenutzer gesetzt ist. Ist dies nicht der Fall, wird das Login abgebrochen.
  3. Wenn der Benutzer nicht gefunden wird, wird ein neuer Benutzer angelegt. Die Benutzer-ID wird auf Basis des im IdClaimType konfigurierten Claims gesetzt. Ein neuer externer Benutzer wird verknüpft und auf dem Benutzer wird das Systembenutzer-Flag gesetzt.
  4. Ein fest definiertes Feld-Mapping wird durchgeführt. Dabei werden folgende Claims, falls vorhanden, auf den Benutzer übertragen (entweder durch den IDP oder durch FixedClaims geliefert):
    • email: Geschäft-E-Mail
    • given_name: Vorname
    • family_name: Nachname
    • function: Funktion
    • org: Organisation
  5. Der Benutzer wird bei Bedarf entsperrt und das Admin-Recht wird zugewiesen.
  6. Der Benutzer wird für das Login verwendet.

Umsetzungsüberlegungen

Vor der Aktivierung der Richtlinien sollten folgende Überlegungen gemacht werden:

  • Der Admin-IDP (NamedAdminProvider) sollte nur dann verwendet werden, wenn eine durch den IDP verwaltete Gruppe von Systemadministratoren viele Mandanten verwalten müssen. In vielen Fällen ist es ausreichend, mit dem BuiltIn-Administrator benannte CMI-Benutzer zu erstellen und Administrationsrecht zu vergeben und anschliessend das Login für den BuiltIn-Administrator via Richtlinie zu verbieten.
  • Der Admin-IDP (NamedAdminProvider) kann ausschliesslich global konfiguriert werden und nicht pro Mandant. Der IDP darf den Zugang nur für Benutzer gewähren, die administrative Rechte auf Mandanten haben sollen. Soll der Zugriff auf bestimmte Mandanten für einzelne Administratoren eingeschränkt werden, kann mit ClaimRequirements gearbeitet werden.
  • Anwender, die administrativen Zugriff nur für bestimmte Situationen benötigen, ansonsten aber ohne Administrator-Rechte auskommen, sollen neben ihrem regulären Benutzer einen dedizierten Benutzer erhalten, der das Admin-Recht erhält. Es kommt zu Benutzer-ID-Konflikten, wenn sich die selbe Identität sowohl über einen regulären IDP anmelden, als auch über den Admin-IDP anmelden kann. In diesem Fall muss für den Anwender ein separater Benutzer angelegt werden.
  • Der CMI Server wird Benutzer-Objekte automatisch anlegen, um "Named Admins" anzumelden. Einfluss auf die verwendete Benutzer-ID kann genommen werden, in dem ein Claim mittels IdClaimType definiert wird, der für die Benutzer-ID verwendet werden soll.
  • Der CMI Server entsperrt "Named Admins" zwar automatisch, es ist dennoch möglich, den Zugriff für "Named Admins" zu sperren, z.B. in dem das Systembenutzer-Flag entfernt wird oder angehängte "externe Benutzer"-Objekte bearbeitet werden. Das Systembenutzer-Flag wird verwendet, um das versehentliche automatische Bearbeiten von regulären Benutzern zu vermeiden. Dieser Umstand kann aufgrund von technischen Beschränkungen des CMI Servers nicht einfach behoben werden und wurde daher bewusst nicht verhindert. Ist kein "Named Admin" in der Lage ein Login durchzuführen, kann der BuiltIn-Administrator verwendet werden, um Benutzer-Objekte zu korrigieren.