Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Kontext ist die Information, die für politische Entscheidungen relevant ist, aber nicht Teil der Identität Ihres Auftraggebers, Ihrer Aktion oder Ihrer Ressource ist. Der Anspruch auf Zugriffstoken ist Kontext. Möglicherweise möchten Sie eine Aktion nur von einer Reihe von Quell-IP-Adressen aus zulassen oder nur, wenn sich Ihr Benutzer mit MFA angemeldet hat. Ihre Anwendung hat Zugriff auf diese kontextbezogenen Sitzungsdaten und muss sie für Autorisierungsanfragen ausfüllen. Die Kontextdaten in einer Autorisierungsanfrage mit verifizierten Berechtigungen müssen in einem Element im JSON-Format vorliegen. contextMap
Die Beispiele, die diesen Inhalt veranschaulichen, stammen aus einem Beispielrichtlinienspeicher. Um dem nachzugehen, erstellen Sie den DigitalPetStoreBeispiel-Richtlinienspeicher in Ihrer Testumgebung.
Das folgende Kontextobjekt deklariert einen von jedem Cedar-Datentyp für eine Anwendung auf der Grundlage des DigitalPetStoreBeispielrichtlinienspeichers.
"context": {
"contextMap": {
"MfaAuthorized": {
"boolean": true
},
"AccountCodes": {
"set": [
{
"long": 111122223333
},
{
"long": 444455556666
},
{
"long": 123456789012
}
]
},
"UserAgent": {
"string": "My UserAgent 1.12"
},
"RequestedOrderCount": {
"long": 4
},
"NetworkInfo": {
"record": {
"IPAddress": {
"string": "192.0.2.178"
},
"Country": {
"string": "United States of America"
},
"SSL": {
"boolean": true
}
}
},
"approvedBy": {
"entityIdentifier": {
"entityId": "Bob",
"entityType": "DigitalPetStore::User"
}
}
}
}
Datentypen im Autorisierungskontext
- Boolesch
-
Eine Binärdatei
true
oder einfalse
Wert. In diesem BeispielMfaAuthenticated
gibt der boolesche Wert vontrue
for an, dass der Kunde eine Multi-Faktor-Authentifizierung durchgeführt hat, bevor er die Anzeige seiner Bestellung angefordert hat. - Einstellen
-
Eine Sammlung von Kontextelementen. Gruppenmitglieder können alle vom gleichen Typ sein, wie in diesem Beispiel, oder von unterschiedlichen Typen, einschließlich einer verschachtelten Menge. In dem Beispiel ist der Kunde mit 3 verschiedenen Konten verknüpft.
- String
-
Eine Folge von Buchstaben, Zahlen oder Symbolen, die in
"
Zeichen eingeschlossen sind. In diesem Beispiel steht dieUserAgent
Zeichenfolge für den Browser, mit dem der Kunde die Anzeige seiner Bestellung angefordert hat. - Long
-
Als ganze Zahl. Im Beispiel
RequestedOrderCount
gibt das an, dass diese Anfrage Teil eines Stapels ist, der darauf zurückzuführen ist, dass der Kunde darum gebeten hat, vier seiner vergangenen Bestellungen einzusehen. - Rekord
-
Eine Sammlung von Attributen. Sie müssen diese Attribute im Anforderungskontext deklarieren. Ein Richtlinienspeicher mit einem Schema muss diese Entität und die Attribute der Entität im Schema enthalten. In diesem Beispiel enthält der
NetworkInfo
Datensatz Informationen über die ursprüngliche IP-Adresse des Benutzers, die vom Client festgelegte Geolokalisierung dieser IP und die Verschlüsselung bei der Übertragung. - EntityIdentifier
-
Ein Verweis auf eine Entität und Attribute, die im
entities
Element der Anfrage deklariert sind. In dem Beispiel wurde die Bestellung des Benutzers vom Mitarbeiter genehmigtBob
.
Um diesen Beispielkontext in der DigitalPetStoreBeispiel-App zu testen, müssen Sie Ihre Anfrageentities
, Ihr Policy-Store-Schema und die statische Richtlinie mit der Beschreibung Customer Role — Get Order aktualisieren.
Ändern DigitalPetStore , um den Autorisierungskontext zu akzeptieren
Anfänglich DigitalPetStorehandelt es sich nicht um einen sehr komplexen Richtlinienspeicher. Er enthält keine vorkonfigurierten Richtlinien oder Kontextattribute zur Unterstützung des von uns vorgestellten Kontextes. Um ein Beispiel für eine Autorisierungsanfrage mit diesen Kontextinformationen auszuwerten, nehmen Sie die folgenden Änderungen an Ihrem Richtlinienspeicher und Ihrer Autorisierungsanfrage vor. Kontextbeispiele mit Zugriffstoken-Informationen als Kontext finden Sie unterZugriffstoken zuordnen.
Wenden Sie die folgenden Aktualisierungen auf Ihr Richtlinienspeicherschema an, um die neuen Kontext-Attribute zu unterstützen. Aktualisieren Sie GetOrder
actions
wie folgt.
"GetOrder": {
"memberOf": [],
"appliesTo": {
"resourceTypes": [
"Order"
],
"context": {
"type": "Record",
"attributes": {
"UserAgent": {
"required": true,
"type": "String"
},
"approvedBy": {
"name": "User",
"required": true,
"type": "Entity"
},
"AccountCodes": {
"type": "Set",
"required": true,
"element": {
"type": "Long"
}
},
"RequestedOrderCount": {
"type": "Long",
"required": true
},
"MfaAuthorized": {
"type": "Boolean",
"required": true
}
}
},
"principalTypes": [
"User"
]
}
}
Um auf den NetworkInfo
in Ihrem Anforderungskontext genannten record
Datentyp zu verweisen, erstellen Sie in Ihrem Schema wie folgt ein CommonType-KonstruktcommonType
Konstrukt ist ein gemeinsam genutzter Satz von Attributen, den Sie auf verschiedene Entitäten anwenden können.
Anmerkung
Der visuelle Schema-Editor Verified Permissions unterstützt derzeit keine commonType
Konstrukte. Wenn Sie sie zu Ihrem Schema hinzufügen, können Sie Ihr Schema nicht mehr im visuellen Modus anzeigen.
"commonTypes": {
"NetworkInfo": {
"attributes": {
"IPAddress": {
"type": "String",
"required": true
},
"SSL": {
"required": true,
"type": "Boolean"
},
"Country": {
"required": true,
"type": "String"
}
},
"type": "Record"
}
}