Introdução
Este documento descreve como configurar o Cisco Identity Service Engine 3.3 pxGrid Context-in usando a API aberta.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Cisco Identity Service Engine (ISE) 3.3
- API REST avançada
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software e hardware:
- Cisco ISE 3.3
- cliente de API REST Insomnia
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
solução de contexto do pxGrid por meio de APIs REST. Isso ocorre porque o modelo pubsub Context-In tem algumas limitações em relação ao uso de atributos personalizados em políticas de criação de perfil e autorização.
Atributos personalizados são atributos definidos pelo usuário que não chegam como dados de ponto final através de sondas de rede regulares. Antes do ISE 3.3, havia principalmente duas maneiras de inserir valores de atributos personalizados como dados de endpoint.
- tópico de ativos Contexto-In do pxGrid, no qual o ISE atua como consumidor e consome dados de endpoint publicados por um produto externo de terceiros.
- APIs de Criação/Atualização de Serviços RESTful Extensíveis do Ponto de Extremidade (ERS)
Esses dois canais têm limitações para o uso de atributos personalizados em políticas de criação de perfil e autorização.
Etapas iniciais
Habilitar API aberta no ISE
A API aberta é desabilitada por padrão no ISE. Para ativá-lo, navegue até Administration > System > API Settings > API Service Settings
. Alterne as opções da API aberta e clique em Salvar.
Habilitar API aberta
Habilitar atributo personalizado para aplicação de criação de perfil no ISE
O atributo personalizado para aplicação de criação de perfil é desabilitado por padrão no ISE. Para ativá-lo, navegue até Work Centers > Profiler > Settings > Profiler Settings
. Ative o atributo personalizado para aplicação da criação de perfil. Click Save.
Ativar atributo personalizado para aplicação da criação de perfil
Observação: o indicador Custom Attribute for Profiling Enforcement indica que uma ação automática de novo perfil ocorre se qualquer atributo personalizado for modificado.
IU Swagger
Para acessar todas as definições de API aberta no ISE, navegue até Administration > System > Settings > API Settings
e clique em 'Para obter mais informações sobre a API aberta do ISE, visite:'.
Os URLs para as definições usadas neste documento são:
- Atributo personalizado: https://<ISE-PAN-IP>/api/swagger-ui/index.html?urls.primaryName=CustomAttributes
- Ponto de extremidade: https://<ISE-PAN-IP>/api/swagger-ui/index.html?urls.primaryName=Pontos de extremidade
IU Swagger
Configurar Atributos Personalizados de Ponto de Extremidade usando Open API
Criar Atributo Personalizado de Ponto de Extremidade
Para criar um atributo personalizado de ponto de extremidade, é obrigatório fornecer um nome e um tipo a ele.
Os tipos que podem ser usados são:
- Série
- INT
- Booleano
- Flutuante
- Longo
- IP
- Data
Método |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint-custom-attribute |
Tipo de autenticação |
Básico |
Credenciais |
Usar credenciais de conta da API aberta |
Cabeçalhos |
Aceitar:aplicativo/json Tipo de conteúdo:aplicativo/json |
Corpo |
{ "attributeName": "DeviceType", "attributeType": "String" } |
Corpo:
Atributo Personalizado do Ponto de Extremidade do Corpo
Autenticação:
Atributo Personalizado de Ponto de Extremidade de Autenticação
Cabeçalhos:
Atributo Personalizado de Ponto Final de Cabeçalhos
Saída esperada:
Atributo Personalizado de Ponto de Extremidade de Saída Esperado
Verificar Criação de Atributo Personalizado
No ISE, navegue até Administration > Identity Management > Settings > Endpoint Custom Attributes
. Verifique se o atributo foi criado.
GUI de Atributo Personalizado de Ponto Final
Observação: os Atributos Personalizados de Ponto de Extremidade podem ser adicionados manualmente. No ISE, navegue até Administration > Identity Management > Settings > Endpoint Custom Attributes
. Clique em +, insira o Nome do atributo e escolha o Tipo.
API de contexto para ponto de extremidade único
Política de criação de perfil para atributo personalizado
No ISE, navegue até Work Centers > Profiler > Profiling Policies
. Clique em Add
.
Enter Name
da política de criação de perfil.
Sob Rules
, navegue até Attributes > Create New Condition > CUSTOMATTRIBUTE
. Escolha o atributo personalizado criado, escolha Operador e insira o valor a ser correspondido. Clique em Submit.
Neste exemplo, a política de criação de perfil DeviceTypeA é definida com CUSTOMATTRIBUTE_DeviceType.
Política do Profiler
Criar Ponto de Extremidade
Neste exemplo, um ponto final com o endereço MAC 94:DA:5F:96:74:63
e DeviceType definido como A é criado.
Método |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint |
Tipo de autenticação |
Básico |
Credenciais |
Usar credenciais de conta da API aberta |
Cabeçalhos |
Aceitar:aplicativo/json Tipo de conteúdo:aplicativo/json |
Corpo |
{ "name": "94:DA:5F:96:74:63", "customAttributes": {"DeviceType":"A"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:63", "portalUser": "", "profileId": "", "ipAddress": null, "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false } |
Corpo:
Ponto de Extremidade do Corpo
Autenticação:
Ponto de Extremidade de Autenticação
Cabeçalhos:
Ponto de Extremidade de Cabeçalhos
Saída esperada:
Ponto de Extremidade de Saída Esperado
Verificar a Criação de Ponto de Extremidade
No ISE, navegue até Context Visibility > Endpoints
. Filtre com o nome da política de criação de perfil criada na coluna Perfil do ponto de extremidade.
Visibilidade de contexto DeviceTypeA
Atualizar Ponto de Extremidade
Para atualizar pontos de extremidade por meio da API aberta, o caminho da URL requer o valor do parâmetro. Esse parâmetro pode ser o ID ou o endereço MAC do ponto final.
Neste exemplo, uma nova política de criação de perfil DeviceTypeB
foi definido para atualizar o atributo personalizado DeviceType definido como B e o valor está definido como o endereço MAC.
Método |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/{value} |
Tipo de autenticação |
Básico |
Credenciais |
Usar credenciais de conta da API aberta |
Cabeçalhos |
Aceitar:aplicativo/json Tipo de conteúdo:aplicativo/json |
Corpo |
{ "name": "94:DA:5F:96:74:63", "customAttributes": {"DeviceType":"B"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:63", "portalUser": "", "profileId": "", "ipAddress": null, "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false } |
Corpo:
Ponto de Extremidade de Atualização do Corpo
Autenticação:
Ponto de Extremidade de Atualização de Autenticação
Cabeçalhos:
Ponto de Extremidade de Atualização de Cabeçalhos
Saída esperada:
Ponto de Extremidade de Atualização de saída esperado
Verificar Atualização de Ponto de Extremidade
No ISE, navegue até Context Visibility > Endpoints
. Filtrar pelo nome da política de criação de perfil criada em Endpoint Profile
coluna.
Visibilidade de contexto DeviceTypeB
API de Contexto em Massa
Configuração de Política de Autorização com Grupo de Identidade de Ponto de Extremidade
No ISE, navegue até Policy > Policy Sets > Select a Policy Set > Authorization Policy
. Clique no ícone de engrenagem em qualquer uma das diretivas de autorização e escolhaInserir.
Dê um nome à regra e adicione uma nova condição para abrir o Estúdio de Condição.
Adicione um novo atributo e navegue até Identity Group > Name > CONTAINS > Select the Endpoint Profile > USE
.
Escolha o perfil como resultado da condição. Clique em Save.
Neste exemplo, o DeviceTypeA é o nome da regra.
Conjuntos de políticas
Atualizar Ponto de Extremidade em Massa
Para alterar o atributo para diferentes pontos de extremidade, a chamada de API em massa é necessária.
Neste exemplo, a solicitação Radius de diferentes pontos finais não tem nenhum atributo personalizado e o Perfil de Ponto Final está definido como Desconhecido.
Visibilidade de contexto Perfil desconhecido
Método |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/bulk |
Tipo de autenticação |
Básico |
Credenciais |
Usar credenciais de conta da API aberta |
Cabeçalhos |
Aceitar:aplicativo/json Tipo de conteúdo:aplicativo/json |
Corpo |
[ { "name": "94:DA:5F:96:74:61", "customAttributes": {"DeviceType":"A"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:61", "portalUser": "", "profileId": "", "ipAddress": "94:DA:5F:96:74:61", "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false }, { "name": "94:DA:5F:96:74:62", "customAttributes": {"DeviceType":"A"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:62", "portalUser": "", "profileId": "", "ipAddress": "10.218.185.96", "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false },....... ] |
Corpo:
Massa do Ponto de Extremidade do Corpo
Autenticação:
Ponto de Extremidade de Autenticação em Massa
Cabeçalhos:
Cabeçalhos de Ponto de Extremidade em Massa
Saída esperada:
Massa de Ponto de Extremidade de Saída Esperada
Verificar Atualização em Massa do Ponto de Extremidade
No ISE, navegue até Context Visibility > Endpoints
. Filtre com o nome da política de criação de perfil criada na coluna Perfil do ponto de extremidade.
Visibilidade de contexto DeviceTypeA Perfil de Ponto de Extremidade
Para o ponto de extremidade, para usar a Política de Autorização DeviceTypeA correta, o ponto de extremidade deve autenticar novamente.
Visibilidade de contexto DeviceType A Política de autorização
Troubleshooting
Esta seção fornece informações que você pode usar para solucionar problemas da sua configuração.
No ISE, navegue até Operation > Troubleshoot > Debug Wizard > Debug Log Configuration
. Escolha seu PAN (Primary Admin Node, Nó principal de administração) e clique emEditar.
Filtre o Nome do Componente pelo serviço de API e escolha o Nível de Log necessário. Clique em Salvar.
API aberta de configuração de nível de depuração
- No ISE PAN CLI, os registros estão em:
admin#show logging application api-service.log
- Na GUI do ISE, navegue até
Operations > Troubleshoot > Download Logs > Select ISE PAN > Debug log > Debug Log Type > Application Logs
. Faça download dos arquivos zip para api-service.log
.
- Códigos de resposta de API e seus possíveis significados:
- 200 (OK): indica que a API Aberta executou com êxito a ação desejada.
- 201 (Criado): Indica que o recurso foi criado e a solicitação foi bem-sucedida.
- 400 (Solicitação Incorreta): o servidor não pode processar a solicitação. Reconhecer erros do cliente devido a sintaxe de solicitação malformada, parâmetros inválidos, etc. Leia os detalhes da mensagem, se disponíveis.
- 401 (Não autorizado): indica que a ação foi realizada com as credenciais incorretas ou sem credenciais, ou que a conta não está autorizada a executar essa ação.
- 403 (Proibido): indica que o servidor é capaz de entender a solicitação, mas não está autorizado.
- 404 (Não Encontrado): Indica que o servidor não pode localizar o recurso solicitado.
- 500 (Erro interno do servidor): indica um problema no lado do servidor. Os registros no ISE podem ajudar a entender a causa.