Skip to content

Scopes und Ressourcen

Ein Client kann nach Scopes fragen. Ein Scope legt eine Liste von Claims fest. Wenn der CMI STS eine Scope-Anfrage akzeptiert oder wenn der Benutzer seine Zustimmung gibt, stellt er die Claims aus, die durch den Scope festgelegt wurden.

Beispielsweise definiert der Standardressourcen-Scope email normalerweise, dass die Claims email und email_verified im Token enthalten sein sollen.

Der openid-Scope ist ein spezieller Scope, der immer enthalten sein muss und nach der eindeutigen Kennung des Benutzers fragt (Claim-Name: sub). Der email-Scope wird nach den E-Mail-Details und der profile-Scope nach den Profildetails (Webseite, Geschlecht, etc.) fragen.

Wichtig: Alle verfügbaren Scopes werden in der Sektion Scopes konfiguriert. Die Scopes müssen anschliessend den Clients explizit über die Eigenschaft AllowedScopes zugeordnet werden:

{
   "Scopes": {
       // Scope-Konfiguration
   } 
   "Tenants": {
        "mandant": {
            "CmiPrivateUri": "http://mycmiserver:10104",
            "Clients": [
                {
                    "ClientId": "webAppClient",
                    // Zugeordnete Scopes:
                    "AllowedScopes": [
                        "openid",
                        "profile",
                        "metatool"
                    ]
                    // ... weitere Client-Eigenschaften
                }
            ]
        }
   }
}

API Scopes

Alle verfügbaren API-Scopes werden in der Sektion Scopes.Api hinterlegt. API-Scopes legen fest, welche Schnittstellen der Client verwenden darf.

{
    "Scopes": {
        "Api": ["metatool", "api"]
    } 
}

Zu einem API-Scope können weitere optionale Eigenschaften angegeben werden.

{
    "Scopes": {
        "Api": [
            "metatool", 
            {
                "Name": "api",
                "Enabled": "true",
                "DisplayName": "API",
                "Description": "API",
                "UserClaims": ["claim1", "claim2"]
            }
        ]
    }
}

Der API-Scope metatool wurde in der Kurzfassung angegeben, während für api weitere Eigenschaften angegeben wurden.

  • Enabled (optional, Standardwert: true): Gibt an, ob dieser Scope aktiviert ist und angefordert werden kann.
  • Name (erforderlich): Der eindeutige Name des API-Scopes. Dieser Wert wird der Audience des ausgehenden Access-Tokens hinzugefügt.
  • DisplayName (optional): Anzeigename für den Benutzer, z.B. auf einem Zustimmungsbildschirm (Consent).
  • Description (optional): Beschreibung für den Benutzer, z.B. auf einem Zustimmungsbildschirm (Consent).
  • UserClaims (optional): Liste der zugeordneten Claim-Typen, die im Access-Tokens enthalten sein sollen.

Identity Resources

Alle verfügbaren Identity Ressourcen werden in der Sektion Scopes.IdentityResources hinterlegt. Identity Ressourcen legen fest, welche Informationen ein Client über den Benutzer erhält oder welche Ressourcen ein Client verwenden, sehen oder bearbeiten kann.

{
    "Scopes":{
        "IdentityResources": [
            "phone",
            {
                "Name": "email",
                "DisplayName": "Ihre E-Mailadresse",
                "Emphasize": "true",
                "UserClaims": [
                    "email",
                    "emailVerified"
                ]
            }
        ]
    }
}

Der Ressource phone wurde in der Kurzfassung angegeben und ist eine Standardressource, während die Ressource email benutzerspezifisch definiert wurde.

Die Kurzfassung wird nur für folgende Standardressourcen unterstützt:

  • openid
  • profile
  • email
  • address
  • phone

Die Ressource openid ist in jedem Fall erforderlich. Wenn sie nicht konfiguriert wird, fügt der CMI STS sie automatisch ein.

  • Enabled (optional, Standardwert: true): Gibt an, ob dieser Scope aktiviert ist und angefordert werden kann.
  • Name (erforderlich): Eindeutiger Name der Ressource. Diesen Wert wird der Client im Scope-Parameter der authorize-Anfrage verwenden.
  • DisplayName (optional): Anzeigename für den Benutzer, z.B. auf einem Zustimmungsbildschirm (Consent).
  • Description (optional): Beschreibung für den Benutzer, z.B. auf einem Zustimmungsbildschirm (Consent).
  • Required (optional, Standardwert: false): Gibt an, ob der Benutzer den Scope auf dem Zustimmungsbildschirm (Consent) abwählen kann (falls der Zustimmungsbildschirm dies unterstützt).
  • Emphasize (optional, Standardwert: false): Gibt an, ob der Zustimmungsbildschirm (Consent) diesen Bereich hervorhebt (falls der Zustimmungsbildschirm dies unterstützt). Verwenden Sie diese Einstellung für sensible oder wichtige Scopes.
  • ShowInDiscoveryDocument (optional, Standardwert: true): Gibt an, ob dieser Scope im Discovery-Dokument angezeigt wird.
  • UserClaims (erforderlich): Liste der zugeordneten Claim-Typen, die im Access-Tokens enthalten sein sollen.