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
- 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.