Gestion des politiques d'accès via des API
Une stratégie d'accès est un ensemble de règles et de conditions qui sont évaluées afin de déterminer la décision d'accès. Vous pouvez créer des stratégies d'accès personnalisées. Toutes les stratégies d'accès personnalisées sont affichées en tant qu'options dans la configuration de l'application.
A propos de cette tâche
Certaines stratégies d'accès par défaut sont fournies pour une utilisation immédiate et ne peuvent pas être modifiées. Les titulaires peuvent ajouter des stratégies d'accès personnalisées en fonction de leurs besoins.
- Les règles sont évaluées en fonction de la première correspondance trouvée. Lorsqu'une correspondance de toutes les conditions d'une règle renvoie la valeur true, le résultat de la règle est renvoyé comme décision d'évaluation. Aucun traitement supplémentaire n'est effectué.
- Un paramètre facultatif
alwaysRun: truepeut être ajouté à une règle individuelle. Ce paramètre fait que la règle est évaluée en plus du premier ensemble de règles concordantes. Le résultat de la première concordance et le paramètrealwaysRunsont combinés et l'action la plus restrictive est appliquée en tant que résultat de la stratégie. Plusieurs règlealwaysRunpeuvent être ajoutées à une stratégie. - Lorsqu'une stratégie requiert un abonnement spécifique pour une condition, telle que la gestion des appareils, et que le titulaire n'est pas autorisé actuellement à utiliser cet abonnement, la stratégie est ignorée. Une décision d'authentification multi-facteur est renvoyée.
- Lorsqu'une stratégie requiert un abonnement spécifique pour l'authentification multi-facteur et que le titulaire n'est pas autorisé actuellement à utiliser cet abonnement, une décision d'authentification multi-facteur évaluée est remplacée par un refus. Cette modification protège l'application au lieu de permettre un accès inconditionnel.
L'éditeur de stratégie peut être utilisé pour créer et modifier des stratégies. Voir la section « Gestion des politiques d'accès ».
Certaines conditions ne peuvent pas être ajoutées à l'aide de l'éditeur de stratégie. Dans ces cas, l'API peut être utilisée pour modifier des stratégies existantes ou créer de nouvelles stratégies d'accès avec ces conditions.
La validation de la syntaxe est effectuée lorsqu'une stratégie d'accès est créée ou mise à jour.
{
"name": "policy_name",
"description": "Description of the policy",
"schemaVersion": "urn:access:policy:4.0:schema",
"rules": [
{
"name": "allow_with_conditions",
"id": "1",
"conditions": {
"contextAttributes": {
"attributes": [
{
"name": "attrName",
"values": [
"value1",
"value2"
],
"opCode": "EQ"
}
]
},
"subjectAttributes": {
"attributes": [
{
"name": "realmName",
"values": [
"cloudIdentityRealm",
"www.ibm.com"
],
"opCode": "IN"
},
{
"name": "customAttr1",
"values": [
"val1"
],
"opCode": "NEQ"
}
]
},
"timeAttributes": {
"attributes": [
{
"name": "timezone",
"opCode": "EQ",
"values": [
"UTC Offset or GMT Offset"
]
},
{
"name": "startDate",
"opCode": "EQ",
"values": [
"YYYY-MM-DD HH:mm:ss"
]
},
{
"name": "endDate",
"opCode": "EQ",
"values": [
"YYYY-MM-DD HH:mm:ss"
]
},
{
"name": "Monday",
"opCode": "EQ",
"values": [
"hh:mm-hh:mm"
]
},
{
"name": "Tuesday",
"opCode": "EQ",
"values": [
"hh:mm-hh:mm"
]
}
]
},
"ipAddress": {
"opCode": "MATCH",
"values": [
"<ip_address>",
"<ip_address_range_start> - <ip_address_range_end>",
"<ip_address/subnet>"
]
},
"location": {
"attributes": [
{
"values": [
"3-Letter-ISO"
],
"name": "country",
"opCode": "IN"
}
]
}
"location": {
"attributes": [
{
"values": [
"<city>"
],
"name": "city",
"opCode": "IN"
}
]
}
"geoLocation": {
"enabled": "true"
},
"trusteer": {
"enabled": "true"
}
},
"result": {
"extendedAction": {
"action": "ACTION_ALLOW"
},
"authnMethods": []
}
},
{
"name": "Authentication factor validity",
"id": "2",
“alwaysRun”: true,
"conditions": {
"factorLifetimeAttributes": {
"attributes": [
{
"name": "anyFactor",
"opCode": "EQ",
"values": [
"120"
]
},
{
"name": "reauthPerDevice",
"opCode": "EQ",
"values": [
"enabled"
]
}
]
}
},
"result": {
"extendedAction": {
"action": "ACTION_MFA_OVERRIDE"
}
}
},
{
"name": "mfa_once_per_session_device_conditions",
"id": "3",
"contextAttributes": {
"attributes": [
{
"name": "devicePlatform",
"values": [
"IOS",
"ANDROID",
"OTHER_MOBILE",
"MACOS",
"WINDOWS",
"OTHER_DESKTOP"
],
"opCode": "IN"
},
{
"name": "deviceCompliance",
"values": [
"COMPLIANT",
"NONCOMPLIANT",
"UNKNOWN"
],
"opCode": "IN"
}
]
},
"result": {
"extendedAction": {
"action": "ACTION_MFA_PER_SESSION"
},
"authnMethods": [
"urn:ibm:security:authentication:asf:macotp"
]
}
},
{
"name": "deny_otherwise",
"id": "100",
"conditions": {},
"result": {
"extendedAction": {
"action": "ACTION_DENY"
},
"authnMethods": []
}
}
]
}
- Chaque règle est composée des propriétés suivantes :
- name
- Nom pour la règle.
- id
- ID unique de la règle utilisée dans les données d'événement et les rapports.
- conditions
- Plusieurs conditions peuvent être présentes par règle. Toutes les conditions dans la règle doivent avoir pour résultat la valeur true pour que la règle corresponde et que le résultat soit appliqué. La règle par défaut contient une condition vide.
- Les conditions contiennent les propriétés suivantes :
- contextAttributes
- Attributs dans le contexte du flux dans lequel la stratégie d'accès a été exécutée. Ces attributs incluent les attributs de gestion des appareils, OpenID Connect et de demande HTTP.
- subjectAttributes
- Attributs de session de connexion associés à l'objet utilisateur authentifié.
- factorLifetimeAttributes
- Validité associée à un facteur ou à une méthode d'authentification spécifique.
- timeAttributes
- Attributs d'heure de la journée qui activent le contrôle d'accès limité dans le temps.
- ipAddress
- Condition d'adresse IP qui active des listes autorisées et bloquées individuelles ou basées sur des plages ou des sous-réseaux.
- location
- Pays ou ville résolu à partir de l'adresse IP de l'utilisateur. Pays doit contenir une liste séparée par des virgules de noms de pays ou des codes pays de trois lettres en fonction de la norme ISO ci-après. Vous devez entrer un pays ou un code pays de trois lettres.
Ville doit contenir une liste séparée par des virgules de noms de ville. Vous devez entrer une ville.
- geoLocation
- Emplacements où les décisions d'accès ont été vérifiées. Par défaut, il s'agit des cinq emplacements vérifiés précédents. La propriété de condition a pour valeur
enabled(true) oudisabled(false). - trusteer
- IBM Security Trusteer détecte l'accès initial des nouveaux appareils pour les utilisateurs.
- Les attributs contiennent les propriétés suivantes :
- name
- Nom de l'attribut.
- values
- Valeurs de l'attribut.
- opCode
- Opérateur.
- Opérateurs pour l'évaluation des valeurs d'attribut :
- EQ
- Toutes les valeurs sont présentes.
- NEQ
- Aucune des valeurs n'est présente.
- IN
- Une ou plusieurs des valeurs sont présentes.
- MATCH
- Condition ipAddress opCode pour les adresses IP, les plages ou les sous-réseaux correspondants.
- NOMATCH
- Condition ipAddress opCode pour les adresses IP, les plages ou les sous-réseaux non correspondants.
- Le résultat contient les propriétés suivantes :
- Action
- Indique l'action à déclencher lorsque les conditions sont remplies. Les valeurs admises sont :
- ACTION_ALLOW
- ACTION_MFA_ALWAYS - authentification multi-facteur chaque fois que la règle est mise en correspondance lors de l'évaluation de la stratégie d'accès.
- ACTION_MFA_PER_SESSION - authentification multi-facteur une fois par session authentifiée et autorisation si elle est déjà terminée.
- ACTION_DENY.
- authnMethods
- Spécifie les mécanismes d'authentification autorisés lorsque l'action est une authentification multi-facteur (MFA). urn:ibm:security:authentication:asf:macotp - permet à l'utilisateur de sélectionner n'importe quel mécanisme qu'il peut exécuter, ou un ou plusieurs des facteurs suivants :
emailotp- Envoyer un mot de passe à utilisation unique par courrier électroniquesmsotp- Envoyer un mot de passe à utilisation unique par SMStotp- Mot de passe à utilisation unique limitée dans le temps (TOTP) (application d'authentification)signatures- IBM® Verify notification push de l'applicationpasskey- authentificateur à clé de passevoiceotp- Mot de passe à utilisation unique envoyé au numéro de téléphone enregistré de l'utilisateur.anyFactor– est un alias poururn:ibm:security:authentication:asf:macotp. Ce mécanisme est surtout utilisé dans la condition thefactorLifetimeet représente tous les mécanismes d'authentification valables qui sont complétés par l'utilisateur.
Cette condition associe la validité à un facteur ou à une méthode d'authentification spécifique. La validité peut être associée à un profil d'utilisateur ou à un appareil de l'utilisateur.
- Pour les organisations qui ne souhaitent une authentification multi-facteur pour l'utilisateur qu'une seule fois par jour calendaire, vous pouvez configurer une nouvelle authentification pour une période de 18 heures.
- Pour les organisations qui souhaitent une authentification multi-facteur pour l'utilisateur une fois par semaine, vous pouvez configurer une stratégie tous les six jours.Remarque : lorsque cette
reauthPerDeviceoption est activée, l'utilisateur est invité à effectuer une authentification à deux facteurs (MFA) pour les appareils qui ne sont pas « connus ». Par exemple, un utilisateur s'authentifie à partir d'un autre navigateur (Chrome au lieu de Edge) ou d'un autre appareil physique.Lorsqu'un mode de navigation privé est utilisé, une authentification multi-facteur est générée pour le premier accès à chaque nouvelle session.
factorLifeTimeAttributes contient les attributs obligatoires suivants :- name
- Une liste valide d'
authnMethodsou l'attributanyFactor. - values
- L'intervalle de validité en secondes pour
authnMethod. - opCode
- EQ.
- name
reauthPerDevice.- values
- Activé ou désactivé.
- opCode
- EQ.
Ces attributs peuvent inclure les attributs de gestion des appareils, OpenID Connect et de demande HTTP.
- Attributs de contexte de gestion des appareils
- Les attributs de gestion des appareils devicePlatform et deviceCompliance sont définis sous la condition contextAttributes.
- devicePlatform
- Le système d'exploitation et les plateformes de périphériques telles que iOS, Android, Mac OS X. Les valeurs autorisées sont
IOS,ANDROID,OTHER_MOBILE,MACOS,WINDOWS,OTHER_DESKTOP. Cette condition nécessite un abonnement à la gestion des périphériques; voir Configuration de l'accès conditionnel. - deviceCompliance
- Niveau de conformité de l'appareil. Les valeurs autorisées sont
COMPLIANT,NONCOMPLIANT, etUNKNOWN. Cette condition nécessite l'abonnement à la gestion des appareils; voir « Configuration de l'accès conditionnel ».
- Attributs de contexte OpenID Connect
- La plupart des attributs de contexte ci-dessous qui sont disponibles dans les applications OpenID Connect sont des paramètres de demande OIDC. Ceux qui ne correspondent pas exactement aux noms des paramètres de demande sont accompagnés d'une explication. Pour plus d'informations, consultez les sites https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest et https://tools.ietf.org/html/rfc7636#section-4.3.
- scope
- Liste séparée par des espaces arbitraires des portées que ce jeton reçoit. Exemple de portée bien connue :
emailaddressprofileopenid. - response_type
- Un ou plusieurs des éléments suivants :
codetokenid_token. Pour connaître les valeurs prises en charge, consultez https://oidc-dev-test.ite1.idng.ibmcloudsecurity.com/developer/explorer/#!/OpenID_Connect/handleAuthorizeGet. - acr_values
- Lie une
ARCspécifique à une authentification spécifique. - method
- Une liste de chaînes de caractères contenant les politiques qui ont été exécutées, au format
urn:ibm:security:policy:id:<policy-id>. - claims
- JSON complexe.
- response_mode
- Chaîne, de type
query fragment form_post. - response_method
- Indique la méthode renvoyée par une demande vers un URI.
- code_challenge_exist
- Choix booléen dans un flux PKCE qui indique si un élément
code_challengea été envoyé dans la demande. - redirect_uri_scheme
- Composant plan de l'URI de redirection qui détecte un agent d'utilisateur autre qu'un navigateur et la réponse.
- client_type
- Indique si le client est de type
publicouconfidential. Les clients confidentiels ont un secret client. - request_type
- Identifie le point de terminaison d'où provient la requête :
device_authorize,user_authorize,authorization,access_token,introspect,user_info,revoke, ouclient_registration.
- Attributs de contexte de demande HTTP
- Les en-têtes de demande HTTP peuvent être évalués dans les stratégies d'accès. Utilisez le nom d'en-tête de demande HTTP comme nom de l'attribut dans contextAttributes et la valeur qui correspond à la valeur de l'en-tête entrant. La transformation des valeurs n'est pas prise en charge actuellement et seule la norme opCodes pour les attributs de contexte peut être utilisée. Par exemple,,
"conditions": { "contextAttributes": { "attributes": [{ "name": "referer", "values": [ "https://<isv_tenant>/usc/", "https://<some_other_known_referrer>" ], "opCode": "IN" }, { "name": "user-agent", "values": [ "<specific_user_agent>" ], "opCode": "EQ" }, { "name": "x-forwarded-for", "values": [ "<x_forwarded_for_ip_address>" ], "opCode": "EQ" } ] } }
- displayName
- Nom affiché pour l'utilisateur.
- name
- Prénom suivi du nom de famille.
- family_name
- Le nom de famille de l'utilisateur.
- given_name
- Prénom de l'utilisateur.
- Adresse électronique de l'utilisateur.
- emailAddress
- Adresse électronique de l'utilisateur.
- groupIds
- ID de groupe.
- preferred_username
- Nom d'utilisateur modifiable.
- uuid
- Identificateur unique de l'utilisateur.
- uniqueSecurityName
- Identificateur unique de l'utilisateur.
- realmName
- Cette valeur est toujours
cloudIdentityRealmpour les utilisateurs Cloud Directory non fédérés. - userType
- Cette valeur est toujours
regularpour les utilisateurs Cloud Directory non fédérés.
Attributs d'heure de la journée.
- Les attributs contiennent les propriétés suivantes :
- name
- Nom de l'attribut. Le paramètre name représente un jour de la semaine et éventuellement un fuseau horaire (timeZone), une date de début (startDate) et une date de fin (endDate). Les valeurs possibles sont les suivantes :
- Lundi
- Mardi
- Mercredi
- Jeudi
- Vendredi
- Samedi
- Dimanche
Les plages horaires par jour de la semaine sont définies par la plage indiquée dans leur champ
{ ... "values": [ "hh:mm-hh:mm" ]}et peuvent, si nécessaire, être programmées à l'aide d'un startDate et endDated'un. - timeZone
- Fuseau horaire associé à la région. La valeur par défaut est le Temps Universel Coordonné (UTC). Les valeurs peuvent avoir l'un des formats suivants :
UTC<+/-><offset>- Par exemple,UTC+10GMT<+/-><offset>- Par exemple,GMT-5- Nom d'une base de données de fuseaux horaires - Par exemple,
Australia/Brisbane
- startDate
- Date et heure de début d'activation de la condition. Ce paramètre peut être utilisé individuellement pour créer une correspondance de temps de blocage et complété avec les attributs de jours de la semaine. Le paramètre startDate a priorité sur les jours de la semaine. Les valeurs sont au format
YYYY-MM-DD HH:mm:ss. Pour les jours de la semaine, la valeur est au formathh:mm-hh:mm. - endDate
- Date et heure de fin facultatives auxquelles la condition n'est plus active. Ce paramètre peut être utilisé individuellement pour créer une correspondance de temps de blocage avec un paramètre startDate, ou complété avec les attributs de jours de la semaine. Sans date de fin (endDate), la condition est mise en correspondance indéfiniment s'il existe un paramètre startDate ou un jour de la semaine. Les valeurs sont au format
YYYY-MM-DD HH:mm:ss.
Condition basée sur l'adresse IP prenant en charge IPv4 et IPv6.
- La condition contient la propriété suivante :
- values
- Valeurs de la condition. Les valeurs valides sont une plage d'adresses IP, une liste d'adresses IP séparées par des virgules ou une adresse IP CIDR.
- opCode
- Opérateur. Des opCodes spécifiques sont requis pour la condition ipAddress.Opérateurs disponibles :
- MATCH
- Toutes les valeurs sont présentes.
- NOMATCH
- Aucune des valeurs n'est présente.
Pays ou ville résolu à partir de l'adresse IP de l'utilisateur. Pays doit contenir une liste séparée par des virgules de noms de pays ou des codes pays de trois lettres en fonction de la norme ISO ci-après. Voir la norme ISO 3166-1 alpha-3. Vous devez entrer un pays ou un code pays de trois lettres. Ville doit contenir une liste séparée par des virgules de noms de ville. Vous devez entrer une ville.
- La condition contient la propriété suivante :
- activé
- Indique si la condition est activée (true) ou désactivée (false).
- opCode
- Opérateur. Des opCodes spécifiques sont requis pour la condition location.Opérateurs disponibles :
- IN
- Une ou plusieurs des valeurs sont présentes.
- NOT IN
- Aucune des valeurs n'est présente.
Emplacements où les décisions d'accès ont été vérifiées. Par défaut, il s'agit des cinq emplacements vérifiés précédents.
- La condition contient la propriété suivante :
- activé
- Indique si la condition est activée (true) ou désactivée (false).
IBM Security Trusteer détecte l'accès initial des nouveaux appareils pour les utilisateurs.
- La condition contient la propriété suivante :
- activé
- Indique si la condition est activée (true) ou désactivée (false).