API7 Enterprise 3.2.14.4: Limite de Permissão para Gerenciamento Refinado de Permissões
August 15, 2024
API7 Enterprise v3.2.14.4 foi oficialmente lançado, apresentando a introdução do limite de permissão para atender à necessidade de um gerenciamento de permissões de usuário mais granular nas empresas.
O que é um Limite de Permissão?
Um limite de permissão, como o nome sugere, é como uma parede de permissões que define o escopo máximo de permissões que um usuário pode ter. Ele é usado para restringir as ações que os usuários ou funções podem realizar no sistema. Seu principal objetivo é aumentar a segurança do sistema e prevenir o uso indevido de permissões. Ao definir essa "parede", podemos garantir que os usuários só possam operar dentro de seu escopo de responsabilidades e não possam acessar ou modificar dados no sistema além de sua autoridade.
Os limites de permissão podem reutilizar políticas de permissão existentes no sistema ou criar novas políticas de permissão especificamente. Quando um usuário recebe um limite de permissão, ele limita suas permissões, mas não concede diretamente nenhuma permissão.
Exemplo
Suponha que criemos uma política de permissão que concede permissões de operação e visualização de serviços em todos os grupos de gateway e atribuímos essa política como um limite de permissão ao usuário Tom.
{
"statement": [
// Permissões de visualização em todos os grupos de gateway
{
"effect": "allow",
"resources": [
"arn:api7:gateway:gatewaygroup/<.*>"
],
"actions": [
"<.*>Get<.*>"
]
},
// Permissões de operação de serviços em todos os grupos de gateway
{
"effect": "allow",
"resources": [
"*"
],
"actions": [
"arn:api7:gateway:gatewaygroup/<.*>/publishedservice/<.*>"
]
}
]
}
Nesse caso, as permissões máximas de Tom são restritas dentro dessa política de permissão. Mesmo que um limite de permissão seja definido, isso não significa que Tom já tenha essas permissões. Em seguida, atribuímos a Tom uma função com a seguinte política de permissão:
{
"statement": [
// Permissões de visualização em todos os grupos de gateway
{
"effect": "allow",
"resources": [
"arn:api7:gateway:gatewaygroup/<.*>"
],
"actions": [
"<.*>Get<.*>"
]
},
// Permissões de operação de serviços em todos os grupos de gateway
{
"effect": "allow",
"resources": [
"arn:api7:gateway:gatewaygroup/<.*>/publishedservice/<.*>"
],
"actions": [
"<.*>"
]
},
// Permissões de operação para plugins personalizados
{
"effect": "allow",
"resources": [
"arn:api7:gateway:gatewaysetting/*"
],
"actions": [
"gateway:<.*>CustomPlugin<.*>"
]
}
]
}
Embora Tom tenha recebido permissões de operação de serviços, visualização e operação de plugins personalizados em todos os grupos de gateway, ele descobrirá que não tem permissões para editar plugins personalizados. Isso ocorre porque definimos um limite de permissão para Tom. A menos que o limite de permissão seja ajustado para incluir permissões relacionadas a plugins personalizados, quaisquer permissões adicionais além do limite serão inválidas.
Como Usar o Recurso de Limite de Permissão?
Criar Políticas de Permissão
Os limites de permissão podem reutilizar diretamente políticas de permissão dentro do sistema. Antes de atribuir um limite de permissão a um usuário, você precisa criar uma política de permissão. Clique em "Políticas de Permissão" no menu de organização do sistema para acessar a página de lista.

Em seguida, clique em "Adicionar Política de Permissão" no canto superior direito da lista para acessar o formulário de criação.
Preencha as informações básicas da política de permissão no formulário e configure as declarações de política correspondentes para criar a política de permissão. Teoricamente, a mesma política de permissão pode ser associada a várias funções e usada como o limite de permissão para vários usuários, mas essa prática não é recomendada.
Para mais introduções conceituais sobre políticas de permissão, consulte o artigo Novidades no API7 Enterprise 3.4.14: IAM para Controle de Acesso Granular. Para exemplos comuns de configuração de políticas, consulte o documento Exemplos de Políticas de Permissão. Para os valores que podem ser assumidos por recursos e ações e as APIs correspondentes, consulte o documento Ações e Recursos de Políticas de Permissão.
Atribuir Limites de Permissão
Após criar políticas de permissão, você pode atribuir limites de permissão. Clique em "Usuários" no menu de organização para acessar a página de lista de usuários.

Podemos atribuir diretamente limites de permissão a novos usuários ao convidá-los. O formulário de convite inclui um novo campo para limites de permissão, e o usuário receberá esse limite de permissão por padrão ao fazer login no sistema.

Para usuários existentes, você pode clicar no ícone de edição do limite de permissão na página de detalhes do usuário para configurar seu limite de permissão.

Ao configurar permissões para um usuário, você pode adicionar a condição permission_boundaries
a permissões de operação específicas. Por exemplo, nas ações iam:InviteUser
(convidar usuário) ou iam:UpdateUserBoundary
(atualizar limite de permissão do usuário), você pode refinar ainda mais o controle de permissões adicionando a condição permission_boundaries
.
Sob essa condição, você pode especificar o ID da política de permissão que deve ser definida para o usuário. Assim, ao realizar operações como convidar um novo usuário ou atualizar o limite de permissão de outro usuário, o sistema imporá a alocação do limite de permissão apropriado com base nessas regras predefinidas.
Aqui está um exemplo demonstrando como isso pode ser alcançado:
{
"statement": [
{
"effect": "allow",
"resources": ["arn:api7:iam:user/<.*>"],
"actions": [
"iam:InviteUser",
"iam:UpdateUserBoundary"
],
"conditions": {
"permission_boundaries": {
"type": "AllOfStrings",
"options": [
"d3698967-1d28-4e37-b5e7-ef00a93304cc",
"f863a233-f732-4af0-bb21-3fbe4013be69"
]
}
}
}
]
}
Mapeamento de Limite de Permissão
Além de configurar diretamente limites de permissão específicos dentro do sistema, o API7 Enterprise também suporta Mapeamento de Limite de Permissão, que atribui automaticamente limites de permissão correspondentes com base na identidade e permissões do usuário no IdP (Provedor de Identidade). Na página de configurações da organização, clique em "Adicionar Opção de Login". Independentemente de qual provedor for selecionado, um interruptor "Mapeamento de Limite de Permissão" é adicionado na parte inferior do formulário de configuração. Uma vez ativado, você pode configurar o mapeamento de limite de permissão.
-
Política de Permissão: Este é o recurso de política de permissão definido no API7 Enterprise, usado para controlar o acesso e o escopo de operação do usuário. No mapeamento de limite de permissão, podemos mapear configurações do IdP externo para esses limites de permissão para atribuir limites de permissão correspondentes aos usuários ao fazer login.
-
Atributo de Limite de Permissão Mapeado: O identificador para informações de limite de permissão do usuário retornadas pelo IdP, usado para localizar dados de limite de permissão do usuário na resposta do IdP. Por exemplo, especificar um nome de atributo como "role" ou "groups" permitirá que o sistema extraia o valor do limite de permissão da resposta do IdP com base nesse nome de atributo.
-
Operação: O método usado para corresponder o valor do limite de permissão do atributo de limite de permissão do IdP. Vários métodos são suportados, como correspondência exata, correspondência difusa, correspondência de array, etc. Se o IdP retornar um array de strings de valores de limite de permissão, podemos escolher "Correspondência Exata em Array" para encontrar uma correspondência.
-
Valor de Limite de Permissão Mapeado: O valor específico que representa o limite de permissão do usuário no IdP.
Resumo
No geral, os limites de permissão são ferramentas cruciais para garantir a segurança do sistema e prevenir o abuso de permissões. Ao definir claramente o escopo das permissões do usuário, podemos proteger os recursos-chave do sistema contra acesso não autorizado e garantir que cada usuário só possa operar dentro de seu escopo autorizado. Em ambientes de sistema complexos, a utilização eficaz de limites de permissão fornecerá uma proteção robusta para a segurança de dados de uma empresa.