Considerações sobre design do servidor de estado
Observação
O IAS (Serviço de Autenticação da Internet) foi renomeado como NPS (Servidor de Política de Rede) a partir do Windows Server 2008. O conteúdo deste tópico se aplica à IAS e ao NPS. Ao longo do texto, o NPS é usado para se referir a todas as versões do serviço, incluindo as versões originalmente conhecidas como IAS.
Dependendo do seu design, talvez seja necessário um servidor para acompanhar os usuários que estão conectados à rede no momento. O main desafio com o servidor de estado é manter as informações no banco de dados do servidor de estado em sincronia com quem está realmente conectado. Se as informações no servidor de estado estiverem fora de sincronia, os usuários poderão ter várias sessões quando não estiverem autorizados a fazê-lo. Além disso, os usuários que não têm várias sessões podem ser penalizados inadvertidamente.
O seguinte deve ser levado em consideração na implementação do servidor de estado:
- O servidor de estado deve tomar a decisão online em alguns segundos. Por esse motivo, o servidor de estado requer uma infraestrutura escalonável que pode dar suporte a muitas atualizações e consultas por segundo. Bancos de dados relacionais não são apropriados para consultas tão grandes com atualizações simultâneas. Os bancos de dados relacionais são criados principalmente para manter os dados consistentes e fornecer uma exibição consistente dos dados a todos os consumidores. Eles não são criados para atualizações rápidas.
- A consistência transacional em atualizações entre vários objetos não é importante. Isso ocorre porque o servidor de estado pode tolerar uma pequena janela de oportunidade. No entanto, a consistência transacional de uma única atualização é importante para reduzir as chances de deixar o servidor de estado em um estado inconsistente se um dos servidores RADIUS for desligado no meio da atualização.
- A persistência (salvar o estado da rede no armazenamento persistente) não é importante porque as informações persistentes sairão rapidamente da sincronização com o estado real da rede.
- Se o ISDN ou outras formas de multilink tiverem suporte na rede, o servidor de estado deverá ser capaz de lidar com cenários que usam esses recursos.
Um design possível é implementar uma DLL de extensão de autenticação e uma DLL de extensão de autorização. Cada uma dessas DLLs pode se comunicar pela rede com um banco de dados. A DLL de Extensão de Autorização pode atualizar o banco de dados com informações sobre quem está conectado atualmente à rede. A DLL da Extensão de Autenticação pode consultar o banco de dados para que essas informações decidam se aceitam ou rejeitam a solicitação de autenticação de um usuário específico; se o usuário já estiver conectado, a solicitação será rejeitada.
A vantagem de fazer com que a DLL da Extensão de Autorização atualize o banco de dados do servidor de estado é que a DLL da Extensão de Autorização tem acesso a mais informações sobre o usuário autenticado. A DLL da Extensão de Autorização tem acesso a todos os atributos de autorização do mecanismo de autorização do NPS. Por exemplo, alguns usuários podem ter autorizações que permitem que eles tenham várias sessões. O servidor de estado deve tratar esses usuários como um caso especial.