Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Le contexte est l'information pertinente pour les décisions politiques, mais qui ne fait pas partie de l'identité de votre principal, de votre action ou de votre ressource. Les demandes de jetons d'accès sont contextuelles. Vous souhaiterez peut-être autoriser une action uniquement à partir d'un ensemble d'adresses IP sources, ou uniquement si votre utilisateur s'est connecté à l'aide de l'authentification MFA. Votre application a accès à ces données de session contextuelles et doit les renseigner pour répondre aux demandes d'autorisation. Les données contextuelles d'une demande d'autorisation Verified Permissions doivent être au format JSON dans un élément. contextMap
Les exemples illustrant ce contenu proviennent d'un exemple de magasin de politiques. Pour suivre, créez le magasin DigitalPetStored'exemples de règles dans votre environnement de test.
L'objet de contexte suivant déclare un type de données Cedar pour chaque type de données pour une application en fonction de l'exemple de magasin DigitalPetStorede politiques.
"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"
}
}
}
}
Types de données dans le contexte des autorisations
- Booléen
-
Un binaire
true
ou unefalse
valeur. Dans l'exemple, la valeur booléenne detrue
forMfaAuthenticated
indique que le client a effectué une authentification multifactorielle avant de demander à consulter sa commande. - Définir
-
Un ensemble d'éléments contextuels. Les membres de l'ensemble peuvent être tous du même type, comme dans cet exemple, ou de types différents, y compris un ensemble imbriqué. Dans l'exemple, le client est associé à 3 comptes différents.
- Chaîne
-
Séquence de lettres, de chiffres ou de symboles entourée de
"
caractères. Dans l'exemple, laUserAgent
chaîne représente le navigateur que le client a utilisé pour demander à consulter sa commande. - Long
-
Un entier. Dans l'exemple, cela
RequestedOrderCount
indique que cette demande fait partie d'un lot résultant du fait que le client a demandé à consulter quatre de ses commandes passées. - Enregistrer
-
Une collection d'attributs. Vous devez déclarer ces attributs dans le contexte de la demande. Un magasin de politiques doté d'un schéma doit inclure cette entité et ses attributs dans le schéma. Dans l'exemple, l'
NetworkInfo
enregistrement contient des informations sur l'adresse IP d'origine de l'utilisateur, la géolocalisation de cette adresse IP telle que déterminée par le client et le chiffrement en transit. - EntityIdentifier
-
Référence à une entité et à des attributs déclarés dans l'
entities
élément de la demande. Dans l'exemple, la commande de l'utilisateur a été approuvée par l'employéBob
.
Pour tester cet exemple de contexte dans l'exemple d'DigitalPetStoreapplication, vous devez mettre à jour votre demandeentities
, le schéma de votre magasin de politiques et la politique statique avec la description Customer Role - Get Order.
Modifier DigitalPetStore pour accepter le contexte d'autorisation
Au départ, DigitalPetStorece n'est pas un magasin de politiques très complexe. Il n'inclut aucune politique ou attribut de contexte préconfiguré pour prendre en charge le contexte que nous avons présenté. Pour évaluer un exemple de demande d'autorisation avec ces informations contextuelles, apportez les modifications suivantes à votre magasin de politiques et à votre demande d'autorisation. Pour des exemples de contexte avec les informations du jeton d'accès comme contexte, voirCartographie des jetons d'accès.
Appliquez les mises à jour suivantes au schéma de votre magasin de politiques pour prendre en charge les nouveaux attributs de contexte. Mettez GetOrder
à jour actions
comme suit.
"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"
]
}
}
Pour référencer le type de record
données nommé NetworkInfo
dans le contexte de votre demande, créez une construction CommonTypecommonType
construction est un ensemble partagé d'attributs que vous pouvez appliquer à différentes entités.
Note
L'éditeur de schéma visuel Verified Permissions ne prend actuellement pas en charge commonType
les constructions. Lorsque vous les ajoutez à votre schéma, vous ne pouvez plus le visualiser en mode visuel.
"commonTypes": {
"NetworkInfo": {
"attributes": {
"IPAddress": {
"type": "String",
"required": true
},
"SSL": {
"required": true,
"type": "Boolean"
},
"Country": {
"required": true,
"type": "String"
}
},
"type": "Record"
}
}