Contents

Introdução

Pré-requisitos

Requisitos

Componentes Utilizados

Informações de Apoio

Diagrama de Rede

Cenários

Máximo de sessões por usuário

Configuração

Exemplo

Sessão máxima para o grupo

Configurar

Exemplo

Caixas de canto

Máximo de sessões para o usuário no grupo

Configurar

Exemplo

Sessão Máxima para Grupo e Sessão Máxima para Usuário nesse Grupo

Configurar

Exemplo

Limite de tempo do contador

Configurar

Exemplo

Máximo de recursos de sessão e acesso para convidados

Autenticação da Web Central

Autenticação da Web Local

Troubleshooting

Logs ao vivo do Radius

Depurações do ISE

Introdução

Este documento descreve como configurar o recurso Maximum Sessions introduzido no Identity Services Engine (ISE) 2.2.

Pré-requisitos

Requisitos

A Cisco recomenda que você tenha conhecimento destes tópicos:

- Protocolo RADIUS

- Configuração 802.1x no Wireless LAN Controller (WLC)

- ISE e suas personas (funções)

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- Cisco Identity Service Engine versão 2.2

- Controladora de LAN sem fio 8.0.100.0

- Switch Cisco Catalyst 3750 15.2(3)E2

- Máquina com Windows 7

- Telefone Android executando 6.0.1

- Telefone Android executando 5.0

- iPad iOS 9.1 da Apple

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

O recurso Maximum Sessions fornece uma maneira de controlar e aplicar sessões ao vivo por usuário ou por grupo de identidade. Este documento é para sessões RADIUS, mas também pode ser usado para sessões TACACS.

O ISE versão 2.2 pode detectar e criar políticas de aplicação com base na sessão simultânea de:

- Identidade do usuário - limite o número de sessões por usuário específico

- Grupo de Identidade - limite o número de sessões por grupo específico

- Usuário em um grupo - limite o número de sessões por usuário, que pertence a um grupo específico

A aplicação e a contagem de uma sessão simultânea são exclusivas e gerenciadas por cada Nó de Serviço de Política (PSN). Não há sincronização entre as PSNs em termos de contagem de sessão. O recurso de Sessão Concorrente é implementado no processo de tempo de execução e os dados são armazenados apenas na memória. Em caso de reinicialização de PSN, os contadores MaxSessions são redefinidos.

A contagem de sessão do usuário não faz distinção entre maiúsculas e minúsculas em relação aos nomes de usuário e é independente do dispositivo de acesso à rede usado (desde que você use o mesmo nó PSN).

Diagrama de Rede

Cenários

Máximo de sessões por usuário

Configuração

Navegue até Administração > Sistema > Configurações > Máximo de sessões conforme mostrado na imagem:

Para habilitar o recurso, desmarque a caixa de seleção Sessão ilimitada por usuário, marcada por padrão. No campo Maximum per user Sessions, configure o número de sessões que um usuário específico pode ter em cada PSN. Neste exemplo, é definido como 2.

Os usuários de fontes de identidade externas (por exemplo, Ative Diretory) também são afetados por essa configuração.

Exemplo

Bob é o nome de usuário de uma conta do domínio do Ative Diretory que está conectada e ingressou no servidor ISE. Máximo de sessões do usuário é configurado com o valor 2, o que significa que qualquer sessão para o mesmo usuário além desse número não é permitida (por PSN).

Como mostrado na imagem, o usuário Bob se conecta ao telefone Android e à máquina Windows com as mesmas credenciais:

Ambas as sessões são permitidas porque o limite máximo de sessões não é excedido. Veja o registro ao vivo detalhado do Radius, mostrado na imagem:

22081 etapa de política de máximo de sessões aprovada fornece informações sobre o êxito da verificação de máximo de sessões simultâneas.

Uma vez iniciada a terceira conexão com outro dispositivo e as mesmas credenciais, Bob recebe PermitAccess, mas Access-Reject é enviado ao autenticador:

A sessão não é permitida, mesmo que no registro ao vivo do Radius você possa ver que ele atinge o perfil de autorização correto. Para verificar as sessões ao vivo, navegue para Operations > Radius > Live Sessions:

Nesse caso, ambas as sessões têm o status Iniciado, que indica que o Início da contabilização chegou ao ISE para a sessão. É necessário receber a Contabilização Radius para que a Max Session funcione corretamente, o status Autenticado (Sessão permitida, mas nenhuma contabilização) não é levado em consideração durante a contagem da sessão:

Sessão máxima para o grupo

Configurar

Navegue até Administração > Sistema > Configurações > Máximo de sessões > Grupo:

Essa configuração impõe 2 sessões como um máximo para o grupo de identidade interno GroupTest2: você pode configurar a imposição por grupo somente para os grupos internos.

Exemplo

Alice, Pablo e Peter são os usuários da loja interna de usuários do ISE. Todos eles são membros do grupo chamado GroupTest2. De acordo com a configuração neste exemplo, o valor máximo de sessões é definido como 2 com base na associação do grupo.

Pablo e Peter se conectam à rede com suas credenciais do Grupo Interno chamado GroupTest2:

Quando Alice tenta se conectar, o limite de MaxSessions por grupo é imposto:

Alice não tem permissão para se conectar à rede porque o limite máximo de grupos da sessão foi esgotado por Peter e Pablo:

Caixas de canto

Se a opção Máximo de sessões do usuário estiver configurada, ambos os recursos funcionarão de forma independente. Neste exemplo, Máximo de sessões do usuário é definido como 1 e Máximo de sessões do grupo é definido como 2.

Peter tem permissão com base na Sessão Máxima para o Grupo (2 sessões), mas devido à configuração de Sessões Máximas do Usuário (uma sessão) ele não consegue se conectar à rede:

Se o usuário for um membro de mais de um grupo ao mesmo tempo e o Máximo de sessões para o grupo estiver configurado para eles, uma vez conectado, o ISE aumentará o contador do Máximo de sessões para o cache do grupo para cada grupo ao qual o usuário pertença.

Neste exemplo, Alice e Pablo são membros de GroupTest1 e GroupTest2. Veronica pertence somente a GroupTest1 e Peter a GroupTest2

A sessão máxima do grupo está definida como 2 para GroupTest1 e GroupTest2:

Quando Alice e Pablo estão conectados à rede, eles excedem os limites de sessão para ambos os grupos. Veronica, que pertence apenas ao GroupTest1 e Peter, membro do GroupTest2 não pode se conectar porque a sessão máxima do grupo atingiu o valor máximo configurado:

Máximo de sessões para o usuário no grupo

Configurar

Navegue até Administração > Sistema > Configurações > Máximo de sessões > Grupo.

Esta configuração impõe um máximo de 2 sessões para o grupo de Identidade Interna GroupTest2.

Exemplo

Alice é membro do GroupTest2:

Esse recurso funciona de forma semelhante à sessão máxima do usuário - o ISE limita o número de sessões simultâneas que o usuário pode ter no grupo interno especificado. Essa configuração afeta somente o Usuário, que pertence ao grupo configurado.

Alice, como membro do GroupTest2, pode ter duas sessões simultâneas. Uma vez conectado ao terceiro dispositivo, o ISE retorna PermitAccess e Access-Reject com base na sessão máxima excedida para o usuário no grupo:

Logs detalhados do Radius-Live:

Se a opção Máximo de sessões do usuário também estiver habilitada, os dois recursos funcionarão de forma independente. Se um usuário Alice for membro do grupo GroupTest2 com Sessão Máxima para Usuário no Grupo configurado para 2, e ao mesmo tempo User Max Sessions estiver configurado para permitir apenas uma sessão por usuário, User Max Sessions terá precedência:

Quando Alice tenta se conectar com o segundo dispositivo, o ISE retorna Access-Reject com base no limite máximo de usuários da sessão excedido:

O motivo da recusa pode ser verificado no Live-Log detalhado do Radius. O limite máximo de sessões do usuário é o motivo da falha:

Sessão Máxima para Grupo e Sessão Máxima para Usuário nesse Grupo

Configurar

Navegue até Administração > Sistema > Configurações > Máximo de sessões > Grupo.

Essa configuração impõe uma sessão máxima de 3 no grupo de identidade interno GroupTest2 e de 2 sessões máximas para o usuário nesse grupo.

Exemplo

Alice e Pablo são membros do GroupTest2. Conforme a configuração neste exemplo, é permitido um máximo de 3 sessões em GroupTest2. O ISE garante que um único usuário possa ter no máximo 2 sessões dentro desse grupo.

Alice se conecta através de dois dispositivos. Os dois pontos finais estão conectados à rede:

Quando Alice está tentando se conectar por meio de um terceiro dispositivo, o acesso é negado com o limite máximo de sessão para usuário no grupo excedido:

Se Pablo tentar acessar a rede, ele poderá fazê-lo, já que Max Session for Group, GroupTest2, ainda não está cheio:

Quando Pablo tenta acessar a rede pelo segundo dispositivo, ele falha porque excedeu o limite máximo de sessões para o grupo (mesmo tendo apenas 1 sessão):

Como nos exemplos anteriores, se você ativar o Máximo de sessões do usuário, ele funcionará de forma independente.

Limite de tempo do contador

Configurar

Navegue até Administração > Sistema > Configurações > Máximo de sessões > Limite de tempo do contador.

O limite de tempo do contador é o recurso que especifica o intervalo de tempo durante o qual a sessão é contada em termos do cache máximo da sessão. Esse recurso permite especificar o tempo após o qual o PSN exclui a sessão do contador e permite novas sessões.

Para habilitar o recurso, você precisa desmarcar a caixa de seleção Ilimitado - sem limite de tempo que está marcada por padrão. No campo editável, você pode definir o tempo durante o qual a sessão é levada em consideração nos contadores de MaxSession.

Lembre-se de que as sessões após o horário configurado não são desconectadas ou removidas do banco de dados de sessões. Não há Cadeia de Autorização de Término (CoA) após o tempo configurado.

Exemplo

A sessão máxima do usuário está definida para permitir somente uma sessão para o usuário:

Alice se conecta à rede usando o IPad às 11:00:34, a segunda autenticação acontece às 11:07 e, mesmo que o valor máximo de sessão do usuário seja excedido, o acesso é permitido. Ambas as autenticações obtiveram êxito devido ao limite de tempo do contador.

Alice tenta se conectar com outro dispositivo antes de 5 minutos a partir da última conexão bem-sucedida passar, o ISE rejeita a autenticação:

Após 5 minutos da última autenticação, Alice pôde se conectar à rede com um dispositivo adicional.

Nas sessões ao vivo, você pode ver todas as três sessões no estado Iniciado:

Máximo de recursos de sessão e acesso para convidados

Autenticação da Web Central

Com uma sessão configurada no recurso Máximo de sessões do usuário, você ainda poderá se conectar à conta Guest1 para ambas as sessões:

Para limitar o Acesso de Convidado, você pode especificar o Máximo de logins simultâneos na configuração Tipo de Convidado.

Navegue até Centros de trabalho > Acesso de convidado > Portal e componentes > Tipos de convidado e altere a opção Máximo de logins simultâneos, como mostrado na imagem:

Autenticação da Web Local

Com uma sessão configurada em Sessão Máxima do Usuário, você não consegue se conectar:

De acordo com os Live-logs do Radius, o Guest1 é sempre autenticado corretamente em termos de autenticação do portal. Uma vez que a WLC envia a solicitação RADIUS com a segunda sessão para o Guest1, o ISE nega o acesso devido ao limite de usuário excedido:

Troubleshooting

Logs ao vivo do Radius

O Relatório Detalhado de Radius é o primeiro lugar para a solução de problemas do Recurso MaxSession.

Este motivo de falha indica que o Limite Máximo Global de Sessões de Usuário foi excedido para esta sessão/usuário, como mostrado na imagem:

Este motivo de falha indica que o limite máximo de sessões do grupo foi excedido para esta sessão/usuário, como mostrado na imagem:

Este motivo de falha indica que o limite máximo de sessões do usuário do grupo foi excedido para esta sessão/usuário.

A verificação do cache MaxSession acontece após a seleção do Perfil de Autorização:

Sucesso:

Falha:

Depurações do ISE

O máximo de logs de sessão está localizado em prrt-server.log. Para coletá-los, defina o componente runtime-AAA para o nível DEBUG ( navegue para Administration > System > Logging > Debug Log Configuration > PSN), como mostrado na imagem:

Para obter o Arquivo prt-server.log, navegue para Operações > Solução de problemas > Download Logs > PSN > Debug Logs. Os logs de Max Session também são coletados nas Depurações de Endpoint (Operações > Solução de problemas > Ferramentas de diagnóstico > Ferramentas gerais > Depuração de EndPoint).

Verificação da Sessão Máxima do Usuário aprovada corretamente:

2017-01-29 08:33:11,310 INFO   [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858867700,cntx=0000001335,sesn=pgruszczise22/275051099/8,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,SessionCache::onMaxSessionsAznEvent: current global configuration data: auditSessionTtl=[3600], maxUserSessions=[2],SessionCache.cpp:283

2017-01-29 08:33:11,311 INFO   [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858867700,cntx=0000001335,sesn=pgruszczise22/275051099/8,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,SessionCache::checkMaxSessions: user=[Bob] not found in cache due to first time authorization,SessionCache.cpp:1025

2017-01-29 08:33:11,311 DEBUG  [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,DEBUG,0x7fe858867700,cntx=0000001335,sesn=pgruszczise22/275051099/8,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,SessionCache::onMaxSessionsAznEvent: sessionID=[0a3e944f00000e7d588da8a0]; user=[Bob] - checkMaxSessions passed,SessionCache.cpp:360

2017-01-29 08:33:11,311 INFO   [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858867700,cntx=0000001335,sesn=pgruszczise22/275051099/8,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,SessionCache::onMaxSessionsAznEvent: create a new session object sessionID=[0a3e944f00000e7d588da8a0]; user=[Bob],SessionCache.cpp:375

O ISE incrementa o SessionCounter somente após receber o Início da Contabilização da sessão:

2017-01-29 08:33:11,619 DEBUG  [Thread-90][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- Radius,DEBUG,0x7fe858766700,cntx=0000001503,sesn=pgruszczise22/275051099/9,CPMSessionID=0a3e944f00000e7d588da8a0,CallingStationID=c0-4a-00-14-56-f4,FramedIPAddress=10.62.148.141,RADIUS PACKET:: Code=4(AccountingRequest) Identifier=0 Length=279

[1] User-Name - value: [Bob]

[4] NAS-IP-Address - value: [10.62.148.79]

[5] NAS-Port - value: [1]

[8] Framed-IP-Address - value: [10.62.148.141]

[25] Class - value: [****]

[30] Called-Station-ID - value: [80-e0-1d-8b-72-00]

[31] Calling-Station-ID - value: [c0-4a-00-14-56-f4]

[32] NAS-Identifier - value: [WLC7]

[40] Acct-Status-Type - value: [Start]

[44] Acct-Session-Id - value: [588da8a0/c0:4a:00:14:56:f4/3789]

[45] Acct-Authentic - value: [RADIUS]

[55] Event-Timestamp - value: [1485678753]

[61] NAS-Port-Type - value: [Wireless - IEEE 802.11]

[64] Tunnel-Type - value: [(tag=0) VLAN]

[65] Tunnel-Medium-Type - value: [(tag=0) 802]

[81] Tunnel-Private-Group-ID - value: [(tag=0) 481]

[26] cisco-av-pair - value: [audit-session-id=0a3e944f00000e7d588da8a0]

[26] Airespace-Wlan-Id - value: [4] ,RADIUSHandler.cpp:2003

(...)

2017-01-29 08:33:11,654 DEBUG  [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,DEBUG,0x7fe858867700,cntx=0000001503,sesn=pgruszczise22/275051099/9,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,FramedIPAddress=10.62.148.141,SessionCache::onAccountingStart: user=[Bob]; sessionID=[0a3e944f00000e7d588da8a0],SessionCache.cpp:537

2017-01-29 08:33:11,655 DEBUG  [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,DEBUG,0x7fe858867700,cntx=0000001503,sesn=pgruszczise22/275051099/9,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,FramedIPAddress=10.62.148.141,SessionCache::incrementSessionCounters: user=[Bob] current user session count=[1],SessionCache.cpp:862

Falha na verificação da Sessão Máxima do Usuário:

2017-01-29 08:37:00,534 INFO   [Thread-75][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858a69700,cntx=0000005011,sesn=pgruszczise22/275051099/15,CPMSessionID=0a3e944f00000e7f588da966,user=Bob,CallingStationID=34-ab-37-60-63-88,SessionCache::onMaxSessionsAznEvent: current global configuration data: auditSessionTtl=[3600], maxUserSessions=[2],SessionCache.cpp:283

2017-01-29 08:37:00,535 INFO   [Thread-75][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858a69700,cntx=0000005011,sesn=pgruszczise22/275051099/15,CPMSessionID=0a3e944f00000e7f588da966,user=Bob,CallingStationID=34-ab-37-60-63-88,SessionCache::checkMaxSessions: user=[Bob] is not authorized because current active user sessions=[2] >= max-user-sessions=[2],SessionCache.cpp:1010

2017-01-29 08:37:00,535 DEBUG  [Thread-75][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,DEBUG,0x7fe858a69700,cntx=0000005011,sesn=pgruszczise22/275051099/15,CPMSessionID=0a3e944f00000e7f588da966,user=Bob,CallingStationID=34-ab-37-60-63-88,SessionCache::onMaxSessionsAznEvent: sessionID=[0a3e944f00000e7f588da966]; user=[Bob] - checkMaxSessions failed,SessionCache.cpp:341

2017-01-29 08:37:00,535 DEBUG  [Thread-75][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- RadiusAuthorization,DEBUG,0x7fe858a69700,cntx=0000005011,sesn=pgruszczise22/275051099/15,CPMSessionID=0a3e944f00000e7f588da966,user=Bob,CallingStationID=34-ab-37-60-63-88,RadiusAuthorization::onResponseMaxSessionsAznEvent return from SessionCache,RadiusAuthorization.cpp:371