Gestión de políticas de acceso a través de API
Una política de acceso es un conjunto de reglas y condiciones que se evalúan para determinar la decisión de acceso. Puede crear políticas de acceso personalizadas. Todas las políticas de acceso personalizadas se visualizan como opciones en la configuración de aplicación.
Acerca de esta tarea
Algunas políticas de acceso predeterminadas se proporcionan para un uso inmediato y no se pueden modificar. Los arrendatarios pueden añadir políticas de acceso personalizadas según sus necesidades.
- Las reglas se evalúan según una primera coincidencia. Cuando una coincidencia de todas las condiciones de una regla se evalúa como true, se devuelve el resultado de la regla como la decisión de evaluación. No se completa ningún proceso adicional.
- Se puede añadir un parámetro opcional
alwaysRun: truea una regla individual. Este parámetro hace que la regla se evalúe además del conjunto de reglas de la primera coincidencia. El resultado de la primera coincidencia y el parámetroalwaysRunse combinan y la acción más restrictiva se aplica como resultado de la política. Se pueden añadir varias reglasalwaysRuna una política. - Cuando una política requiere una suscripción específica para una condición, como por ejemplo la gestión de dispositivos, y el arrendatario no tiene autorización actualmente para esa suscripción, se omite la política. Se devuelve una decisión de autenticación de multifactores (MFA).
- Cuando una regla requiere una suscripción específica para MFA y el arrendatario no tiene autorización actualmente para esa suscripción, se cambia una decisión de MFA evaluada a una denegación. Este cambio protege la aplicación en lugar de permitir el acceso incondicional.
Se puede utilizar el editor de políticas para crear y modificar políticas. Consulte «Gestión de políticas de acceso ».
Algunas condiciones no se pueden añadir utilizando el editor de políticas. En estos casos, la API se puede utilizar para modificar las políticas existentes o crear nuevas políticas de acceso con dichas condiciones.
La validación de sintaxis se realiza cuando se crea o se actualiza una política de acceso.
{
"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": []
}
}
]
}
- Cada regla consta de estas propiedades:
- name
- Un nombre para la regla.
- id
- El ID exclusivo para la regla que se utiliza en los informes y datos de sucesos.
- conditions
- Puede haber más de una condición por regla. Para que la regla coincida y se aplique el resultado, se deben evaluar todas las condiciones de la regla como true. La regla predeterminada contiene una condición vacía.
- Las condiciones contienen las propiedades siguientes:
- contextAttributes
- Los atributos que son contextuales del flujo en el que se ha ejecutado la política de acceso. Estos atributos incluyen la gestión de dispositivos, OpenID Connect y los atributos de solicitud HTTP.
- subjectAttributes
- Los atributos de sesión de inicio de sesión asociados al sujeto del usuario autenticado.
- factorLifetimeAttributes
- Asociar la validez con un método o factor de autenticación específico.
- timeAttributes
- Los atributos de hora del día que habilitan el control de acceso basado en el tiempo.
- ipAddress
- La condición de dirección IP que habilita las listas de elementos bloqueados y de elementos permitidos individuales, de intervalo o basados en subredes.
- location
- El país o la ciudad que se resuelve desde la dirección IP del usuario. País debe contener una lista separada por comas del nombre de país o código de país de tres letras basados en el siguiente estándar ISO. Se permite un único país o código de país de tres letras.
Ciudad debe contener una lista separada por comas del nombre de la ciudad. Se permite una sola ciudad.
- geoLocation
- Las ubicaciones donde se han verificado las decisiones de acceso. El valor predeterminado es para las cinco anteriores ubicaciones verificadas. La propiedad de condición está
enabled(true) odisabled(false). - trusteer
- IBM Security Trusteer detecta el acceso por primera vez de nuevos dispositivos para usuarios.
- Los atributos contienen las propiedades siguientes:
- name
- Un nombre del atributo.
- values
- Los valores del atributo.
- opCode
- El operador.
- Los operadores para la evaluación de los valores de atributo:
- EQ
- Todos los valores están presentes.
- NEQ
- Ninguno de los valores está presente.
- IN
- Uno o varios de los valores están presentes.
- MATCH
- La condición ipAddress opCode para direcciones IP, intervalos o subredes coincidentes.
- NOMATCH
- La condición ipAddress opCode para direcciones IP, intervalos o subredes no coincidentes.
- El resultado contiene las propiedades siguientes:
- Action
- Especifica qué acción se debe desencadenar cuando se cumplen las condiciones. Los valores válidos son:
- ACTION_ALLOW
- ACTION_MFA_ALWAYS: MFA cada vez que se compara la regla durante la evaluación de la política de acceso.
- ACTION_MFA_PER_SESSION: MFA una vez por sesión autenticada y permitir si ya se ha completado.
- ACTION_DENY.
- authnMethods
- Especifica los mecanismos de autenticación permitidos cuando la acción es una autenticación de multifactores (MFA). urn:ibm:security:authentication:asf:macotp : permite al usuario seleccionar cualquier mecanismo que pueda completar, o uno o varios de los siguientes factores:
emailotp: contraseña única de correo electrónicosmsotp: contraseña única de SMStotp: contraseña única basada en tiempo (aplicación de autenticador)signatures- IBM® Verify notificación push de la aplicaciónpasskey- autenticador de claves de accesovoiceotp- Contraseña única verbal enviada al número de teléfono registrado del usuario.anyFactor: es un alias paraurn:ibm:security:authentication:asf:macotp. Este mecanismo se utiliza especialmente en la condiciónfactorLifetimey representa cualquier mecanismo de autenticación válido que haya completado el usuario.
Esta condición asocia la validez con un método o factor de autenticación específico. La validez se puede asociar con un perfil de usuario o con el dispositivo de usuario.
- Para las organizaciones que desean aplicar MFA a un usuario solo una vez por día natural, puede configurar la reautenticación en un periodo de 18-hour horas.
- Para las organizaciones que desean aplicar MFA a un usuario una vez por semana, puede configurar una política cada 6 días.Nota: Cuando la
reauthPerDeviceopción está activada, se solicita al usuario que utilice la autenticación multifactorial (MFA) para los dispositivos que no sean «conocidos». Por ejemplo, un usuario se autentica desde un navegador diferente (Chrome en lugar de Edge) o desde un dispositivo físico diferente.Cuando se utiliza una modalidad de navegación privada, se genera una solicitud MFA para el primer acceso en cada sesión nueva.
factorLifeTimeAttributes contiene los atributos obligatorios siguientes:- name
- Una lista de valores
authnMethodsválidos o el atributoanyFactor. - values
- El intervalo de validez en segundos para
authnMethod. - opCode
- EQ.
- name
reauthPerDevice.- values
- Habilitado o inhabilitado.
- opCode
- EQ.
Los atributos de contexto pueden incluir atributos de gestión de dispositivos, OpenID Connect y solicitud HTTP.
- Atributos de contexto de gestión de dispositivos
- Los atributos de gestión de dispositivos devicePlatform y deviceCompletaince se definen bajo la condición contextAttributes.
- devicePlatform
- El sistema operativo y las plataformas de dispositivos, como iOS, Android, Mac OS X. Los valores permitidos son
IOS,ANDROID,OTHER_MOBILE,MACOS,WINDOWS,OTHER_DESKTOP. Esta condición requiere la suscripción a Device Management; consulte «Configuración del acceso condicional ». - deviceCompliance
- El nivel de conformidad del dispositivo. Los valores permitidos son
COMPLIANT,NONCOMPLIANT, yUNKNOWN. Esta condición requiere la suscripción a Device Management; consulte «Configuración del acceso condicional ».
- Atributos de contexto de OpenID Connect
- La mayoría de los atributos de contexto siguientes que están disponibles para aplicaciones OpenID Connect son parámetros de solicitud OIDC. Aquellos atributos que no coinciden 1-1 con los nombres de parámetro de solicitud se proporcionan con una explicación. Para obtener más información, consulte https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest y https://tools.ietf.org/html/rfc7636#section-4.3.
- scope
- Una lista separada por espacios arbitraria de ámbitos que esta señal recibe. Un ejemplo de un ámbito muy conocido es
emailaddressprofileopenid. - response_type
- Uno o varios de los siguientes valores:
codetokenid_token. Para conocer los valores admitidos, consulte https://oidc-dev-test.ite1.idng.ibmcloudsecurity.com/developer/explorer/#!/OpenID_Connect/handleAuthorizeGet. - acr_values
- Enlaza un
ARCespecífico con una autenticación específica. - method
- Una lista de cadenas que contienen las políticas que se ejecutaron en el formato
urn:ibm:security:policy:id:<policy-id>. - claims
- Un JSON complejo.
- response_mode
- Una serie, uno de los valores de
query fragment form_post. - response_method
- Especifica el método que se devuelve de una solicitud a un URI.
- code_challenge_exist
- Una opción booleana en un flujo PKCE que especifica si se ha enviado un
code_challengeen la solicitud. - redirect_uri_scheme
- El componente de esquema del URI de redirección que detecta un agente de usuario no de navegador y la respuesta.
- client_type
- Especifica si se trata de un cliente
publicoconfidential. Los clientes confidenciales tienen un secreto de cliente. - request_type
- Identifica el punto final desde el que se ha enviado la solicitud:
device_authorize,user_authorize,authorization,access_token,introspect,user_info,revoke, oclient_registration.
- Atributos de contexto de solicitud HTTP
- Las cabeceras de solicitud HTTP se pueden evaluar en las políticas de acceso. Utilice el nombre de cabecera de solicitud HTTP
como el nombre del atributo en contextAttributes y el valor que corresponde al valor de la cabecera
de entrada. La transformación de valores no se admite actualmente y solo se pueden utilizar los opCodes estándar para los atributos de contexto. Por ejemplo,,
"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
- El nombre que se visualiza para el usuario.
- name
- El nombre de pila seguido por el apellido.
- family_name
- El apellido del usuario.
- given_name
- El nombre de pila del usuario.
- El correo electrónico del usuario.
- emailAddress
- El correo electrónico del usuario.
- groupIds
- Los ID de grupo.
- preferred_username
- Un nombre de usuario que se puede modificar.
- uuid
- Un identificador exclusivo para el usuario.
- uniqueSecurityName
- Un identificador exclusivo para el usuario.
- realmName
- Este valor siempre es
cloudIdentityRealmpara los usuarios de Cloud Directory no federados. - userType
- Este valor siempre es
regularpara los usuarios de Cloud Directory no federados.
Atributos de hora del día.
- Los atributos contienen las propiedades siguientes:
- name
- Un nombre del atributo. name es un día de la semana y, de forma opcional,
timeZone, startDate y endDate. Puede tener los valores siguientes:
- Lunes
- Martes
- Miércoles
- Jueves
- Viernes
- Sábado
- Domingo
Los intervalos de tiempo por día de la semana se activan mediante el rango en su
{ ... "values": [ "hh:mm-hh:mm" ]}y, opcionalmente, pueden programarse con un startDate y endDateun. - timeZone
- El huso horario asociado a la región. El valor predeterminado es Coordinated Universal Time
(UTC). Los valores pueden ser cualquiera de los siguientes formatos.
UTC<+/-><offset>- Por ejemplo,UTC+10GMT<+/-><offset>- Por ejemplo,GMT-5- Un nombre de base de datos de huso horario: por ejemplo,
Australia/Brisbane
- startDate
- La fecha y hora de inicio para cuando la condición está activa. Se puede utilizar individualmente para crear una coincidencia de
tiempo de bloqueo, realizada con atributos días de la semana. startDate
tiene prioridad sobre los días de la semana. Los valores están en el formato
YYYY-MM-DD HH:mm:ss. Durante días de la semana, el valor está en el formatohh:mm-hh:mm. - endDate
- La fecha y hora de finalización opcional para cuando la condición ya no está activa. Se puede utilizar individualmente para crear una coincidencia de
tiempo de bloqueo con una startDate o realizarse con atributos de días de la semana. Sin una endDate,
la condición coincide indefinidamente si existe una startDate o un día de la semana. Los valores están en el formato
YYYY-MM-DD HH:mm:ss.
La condición basada en dirección IP que da soporte a IPv4 e IPv6.
- La condición contiene la propiedad siguiente:
- values
- Los valores de la condición. Los valores válidos son un intervalo de direcciones IP, una lista de direcciones IP separadas por comas o una dirección IP CIDR.
- opCode
- El operador. Son necesarios opCodes específicos para la condición
ipAddress.Los operadores que están disponibles.
- MATCH
- Todos los valores están presentes.
- NOMATCH
- Ninguno de los valores está presente.
El país o la ciudad obtenido a partir de la dirección IP del usuario. País debe contener una lista separada por comas del nombre de país o código de país de tres letras basados en el siguiente estándar ISO. Véase la norma ISO 3166-1 en alpha-3. Se permite un único nombre o código de país de 3 letras. Ciudad debe contener una lista separada por comas del nombre de la ciudad. Se permite una sola ciudad.
- La condición contiene la propiedad siguiente:
- habilitado
- Si la condición está habilitada (true) o inhabilitada (false).
- opCode
- El operador. Son necesarios opCodes específicos para la condición
location.Los operadores que están disponibles.
- IN
- Uno o varios de los valores están presentes.
- NOT IN
- Ninguno de los valores está presente.
Las ubicaciones donde se han verificado las decisiones de acceso. El valor predeterminado es para las cinco anteriores ubicaciones verificadas.
- La condición contiene la propiedad siguiente:
- habilitado
- Si la condición está habilitada (true) o inhabilitada (false).
IBM Security Trusteer detecta el acceso por primera vez de nuevos dispositivos para usuarios.
- La condición contiene la propiedad siguiente:
- habilitado
- Si la condición está habilitada (true) o inhabilitada (false).