Gerenciamento de políticas de acesso por meio de APIs
Uma política de acesso é um conjunto de regras e condições que são avaliadas para determinar a decisão de acesso. É possível criar políticas de acesso customizadas. Todas as políticas de acesso customizadas são exibidas como opções na configuração do aplicativo.
Sobre esta tarefa
Algumas políticas de acesso padrão são fornecidas para uso imediato e não podem ser modificadas. Os locatários podem incluir políticas de acesso customizadas de acordo com suas necessidades.
- As regras são avaliadas de acordo com a primeira correspondência. Quando uma correspondência de todas as condições em uma regra é avaliada como true, o resultado da regra é retornado como a decisão de avaliação. Nenhum processamento adicional é concluído.
- Um parâmetro opcional,
alwaysRun: true, pode ser incluído em uma regra individual. Esse parâmetro faz com que a regra seja avaliada, além do primeiro conjunto de regras correspondido. O resultado da primeira correspondência e o parâmetroalwaysRunsão combinados e a ação mais restritiva é aplicada como o resultado da política. Várias regrasalwaysRunpodem ser incluídas em uma política. - Quando uma política requer uma assinatura específica para uma condição, como gerenciamento de dispositivo, e o locatário não está autorizado para essa assinatura no momento, a política é ignorada. Uma decisão de autenticação de diversos fatores (MFA) é retornada.
- Quando uma regra requer uma assinatura específica para a MFA e o locatário não está autorizado para essa assinatura no momento, uma decisão de MFA avaliada é alterada para uma negação. Essa mudança protege o aplicativo em vez de permitir o acesso incondicional.
O Editor de Políticas pode ser usado para criar e modificar políticas. Consulte "Gerenciamento de políticas de acesso".
Algumas condições não podem ser incluídas usando o Editor de Políticas. Nesses casos, a API pode ser usada para modificar as políticas existentes ou criar novas políticas de acesso com essas condições.
A validação de sintaxe é executada quando uma política de acesso é criada ou atualizada.
{
"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 regra consiste dessas propriedades:
- name
- Um nome para a regra.
- id
- O ID exclusivo da regra que é usada nos dados e relatórios de eventos.
- conditions
- Mais de uma condição pode estar presente por regra. Todas as condições na regra devem ser avaliadas como true para que a regra corresponda e o resultado seja aplicado. A regra padrão contém uma condição vazia.
- As condições contêm as propriedades a seguir:
- contextAttributes
- Os atributos que são contextuais para o fluxo no qual a política de acesso foi executada. Esses atributos incluem gerenciamento de Dispositivo, OpenID Connect e atributos de solicitação de HTTP.
- subjectAttributes
- Os atributos de sessão de login que estão associados ao sujeito do usuário autenticado.
- factorLifetimeAttributes
- Associar a validade a um fator ou método de autenticação específico.
- timeAttributes
- Os atributos de horário do dia que permitem o controle de acesso baseado em tempo.
- ipAddress
- A condição de endereço IP que permite listas de bloqueio e permissões individuais, de intervalo ou baseadas em sub-rede.
- location
- A cidade ou o país resolvido por meio do endereço IP do usuário. O país deve conter uma
lista separada por vírgula do nome do país ou códigos do país de três letras com base no padrão ISO
a seguir. Um único país ou o código do país de três letras é permitido.
A cidade deve conter uma lista separada por vírgula do nome da cidade. Uma única cidade é permitida.
- geoLocation
- As localizações onde as decisões de acesso foram
verificadas. A configuração padrão é as últimas cinco localizações
verificadas. A propriedade de condição é
enabled(true) oudisabled(false). - trusteer
- O IBM Security Trusteer detecta o primeiro acesso de novos dispositivos dos usuários.
- Os atributos contêm as propriedades a seguir:
- name
- Um nome do atributo.
- values
- Os valores do atributo.
- opCode
- O operador.
- Os operadores da avaliação de valores de atributos:
- EQ
- Todos os valores estão presentes.
- NEQ
- Nenhum dos valores está presente.
- IN
- Um ou mais dos valores estão presentes.
- MATCH
- A condição opCode de ipAddress para correspondência de endereços IP, intervalos ou sub-redes.
- NOMATCH
- A condição opCode de ipAddress para não correspondência de endereços IP, intervalos ou sub-redes.
- O resultado contém as propriedades a seguir:
- Action
- Especifica qual ação será acionada quando as condições
forem atendidas. Valores válidos são:
- ACTION_ALLOW
- ACTION_MFA_ALWAYS - MFA toda vez que a regra for correspondida durante a avaliação da política de acesso.
- ACTION_MFA_PER_SESSION - MFA uma vez por sessão autenticada e permitir se já estiver concluída.
- ACTION_DENY.
- authnMethods
- Especifica os mecanismos de autenticação permitidos quando a ação é uma autenticação de diversos fatores (MFA). urn:ibm:security:authentication:asf:macotp - permitir que o usuário selecione qualquer mecanismo que ele possa completar, ou um ou mais dos fatores a seguir:
emailotp- senha descartável por e-mailsmsotp- senha descartável por SMStotp- senha descartável com tempo limitado (aplicativo autenticador)signatures- IBM® Verify notificação push do aplicativopasskey- autenticador por senhavoiceotp- Senha verbal descartável enviada para o número de telefone registrado do usuário.anyFactor– é um alias paraurn:ibm:security:authentication:asf:macotp. Esse mecanismo é usado especialmente na condiçãofactorLifetimee representa quaisquer mecanismos de autenticação válidos que foram concluídos pelo usuário.
Essa condição associa a validade a um fator ou método específico de autenticação. A validade pode ser associada a um perfil do usuário ou a um dispositivo do usuário.
- Para organizações que desejam efetuar MFA de um usuário somente uma vez por dia corrido, é possível configurar a reautenticação por um período de 18 horas.
- Para organizações que desejam efetuar MFA de um usuário uma vez por semana de negócios, é possível configurar uma política
para cada seis dias.Observação: quando a
reauthPerDeviceopção está ativada, o usuário é solicitado a realizar a autenticação multifatorial (MFA) para dispositivos que não sejam "conhecidos". Por exemplo, um usuário se autentica por meio de um navegador diferente (Chrome em vez de Edge) ou de um dispositivo físico diferente.Quando um modo de navegação privado é usado, um desafio de MFA é gerado para o primeiro acesso em cada nova sessão.
factorLifeTimeAttributes contém os
atributos obrigatórios a seguir:- name
- Uma lista de
authnMethodsválidos ou o atributoanyFactor. - values
- O intervalo de validade em segundos para o
authnMethod. - opCode
- EQ.
- name
reauthPerDevice.- values
- Ativado ou desativado.
- opCode
- EQ.
Os atributos de contexto podem incluir atributos de gerenciamento de dispositivo, do OpenID Connect e de solicitação de HTTP.
- Atributos de contexto de gerenciamento de dispositivo
- Os atributos de gerenciamento de dispositivos
devicePlatform e deviceComplaince são definidos sob a
condição de contextAttributes.
- devicePlatform
- O sistema operacional e as plataformas de dispositivos, como iOS, Android, Mac OS X. Os valores permitidos são
IOS,ANDROID,OTHER_MOBILE,MACOS,WINDOWS,OTHER_DESKTOP. Esta condição requer a assinatura do Gerenciamento de Dispositivos; consulte Configurando o acesso condicional. - deviceCompliance
- O nível de conformidade do dispositivo. Os valores permitidos são
COMPLIANT,NONCOMPLIANTeUNKNOWN. Essa condição requer a assinatura do Gerenciamento de Dispositivos; consulte Configurando o acesso condicional.
- Atributos de contexto da conexão OpenID
- A maioria dos seguintes atributos de contexto disponíveis para aplicativos OpenID Connect são parâmetros de solicitação OIDC. Os atributos que não correspondem a 1-1 com os nomes dos parâmetros de solicitação são fornecidos com uma explicação. Para mais informações, consulte https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest e https://tools.ietf.org/html/rfc7636#section-4.3.
- scope
- Uma lista arbitrária separada por espaço de escopos que este token recebe. Um exemplo de escopo conhecido é
emailaddressprofileopenid. - response_type
- Um ou mais dos seguintes:
codetokenid_token. Para conhecer os valores compatíveis, consulte https://oidc-dev-test.ite1.idng.ibmcloudsecurity.com/developer/explorer/#!/OpenID_Connect/handleAuthorizeGet. - acr_values
- Vincula um
ARCespecífico a uma autenticação específica. - method
- Uma lista de strings que contêm as políticas que foram executadas no formato
urn:ibm:security:policy:id:<policy-id>. - claims
- Um JSON complexo.
- response_mode
- Uma sequência, uma de
query fragment form_post. - response_method
- Especifica o método que é retornado de uma solicitação para um URI.
- code_challenge_exist
- Uma opção booleana em um fluxo PKCE que especifica se um
code_challengefoi enviado na solicitação. - redirect_uri_scheme
- O componente de esquema do URI de redirecionamento que detecta um agente de usuário não de navegador e a resposta.
- client_type
- Especifica se um cliente é um cliente
publicouconfidential. Os clientes confidenciais têm um segredo do cliente. - request_type
- Identifica o terminal do qual a solicitação provém,
device_authorize,user_authorize,authorization,access_token,introspect,user_info,revokeouclient_registration.
- Atributos de contexto de solicitação de HTTP
- Os cabeçalhos de solicitação de HTTP podem ser avaliados
em políticas de acesso. Use o nome do cabeçalho da
solicitação de HTTP como o nome do atributo no
contextAttributes e o valor que
corresponde ao valor do cabeçalho de entrada. A
transformação de valores não é suportada atualmente e
apenas o padrão opCodes para atributos
de contexto pode ser usado. Por exemplo,
"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
- O nome que é exibido para o usuário.
- name
- O nome fornecido seguido pelo sobrenome.
- family_name
- O sobrenome do usuário.
- given_name
- O nome do usuário.
- O e-mail do usuário.
- emailAddress
- O e-mail do usuário.
- groupIds
- Os IDs do grupo.
- preferred_username
- Um nome do usuário que pode ser mudado.
- uuid
- Um identificador exclusivo para o usuário.
- uniqueSecurityName
- Um identificador exclusivo para o usuário.
- realmName
- Esse valor é sempre
cloudIdentityRealmpara usuários do Cloud Directory não federados. - userType
- Esse valor é sempre
regularpara usuários do Cloud Directory não federados.
Atributos de horário do dia.
- Os atributos contêm as propriedades a seguir:
- name
- Um nome do atributo. O name é um
dia da semana e opcionalmente
timeZone,
startDate e
endDate. Ela pode ter os seguintes valores:
- segunda-feira
- terça-feira
- quarta-feira
- quinta-feira
- sexta-feira
- sábado
- domingo
Os intervalos de horário por dia da semana são definidos pelo intervalo em seu
{ ... "values": [ "hh:mm-hh:mm" ]}e podem, opcionalmente, ser programados com um startDate e endDateum. - timeZone
- O fuso horário que está associado à região. O padrão é
a Hora Universal Coordenada (UTC). Os valores podem
estar em um dos formatos a seguir.
UTC<+/-><offset>- Por exemplo,UTC+10GMT<+/-><offset>- Por exemplo,GMT-5- Um nome de banco de dados de fuso horário - Por exemplo,
Australia/Brisbane
- startDate
- A data e hora de início para quando a condição estará
ativa. Ele pode ser usado individualmente para criar uma
correspondência de tempo de bloco, em estágios de atributos
de dias da semana. A startDate tem
precedência sobre os dias da semana. Os valores estão no formato
YYYY-MM-DD HH:mm:ss. Para os dias da semana, o valor está no formatohh:mm-hh:mm. - endDate
- A data e hora de término opcionais para quando a
condição não estará mais ativa. Ele pode ser usado
individualmente para criar uma correspondência de tempo de
bloco com um startDate ou em
estágios de atributos de dias da semana. Sem uma endDate, a condição corresponderá indefinidamente
se uma startDate ou um dia da semana existir. Os valores estão no
formato
YYYY-MM-DD HH:mm:ss.
A condição baseada em endereço IP que suporta IPv4 e IPv6.
- A condição contém a seguinte propriedade:
- values
- Os valores da condição. Os valores válidos são um intervalo de endereços IP, uma lista de endereços IP separados por vírgula ou um endereço IP do CIDR.
- opCode
- O operador. opCodes específicos são necessários para a condição
ipAddress.Os operadores que estão disponíveis:
- CORRESP
- Todos os valores estão presentes.
- NOMATCH
- Nenhum dos valores está presente.
A cidade ou o país resolvido por meio do endereço IP do usuário. O país deve conter uma lista separada por vírgula do nome do país ou códigos do país de três letras com base no padrão ISO a seguir. Consulte a norma ISO 3166-1 em alpha-3. Um único país ou o código do país de três letras é permitido. A cidade deve conter uma lista separada por vírgula do nome da cidade. Uma única cidade é permitida.
- A condição contém a seguinte propriedade:
- ativado
- Se a condição está ativada (true) ou desativada (false).
- opCode
- O operador. opCodes específicos são necessários para a condição
location.Os operadores que estão disponíveis:
- IN
- Um ou mais dos valores estão presentes.
- NOT IN
- Nenhum dos valores está presente.
As localizações onde as decisões de acesso foram verificadas. A configuração padrão é as últimas cinco localizações verificadas.
- A condição contém a seguinte propriedade:
- ativado
- Se a condição está ativada (true) ou desativada (false).
O IBM Security Trusteer detecta o primeiro acesso de novos dispositivos dos usuários.
- A condição contém a seguinte propriedade:
- ativado
- Se a condição está ativada (true) ou desativada (false).