LDAP vs autorização SAML

Estou a investigar a transferência de um sistema de localização de activos do LDAP para o SAML. Existem duas áreas principais onde nosso software atualmente usa LDAP. A primeira é a autenticação. Para acessar o sistema hoje você precisa autenticar com sucesso com LDAP e ser um membro de um grupo LDAP especificado. Essa parte é bastante simples de passar para o SAML. Utilizámos uma biblioteca para lidar com a maior parte do trabalho sujo. E no IDP podemos adicionar uma reivindicação para autorizar o usuário. Mas o nosso segundo uso a LDAP está a dar-me uma volta.

Hoje, cada activo que mantemos tem a capacidade de estar ligado a um nome de utilizador. Por exemplo, uma impressora em particular pode pertencer a 'alguém'. Uma das opções que o nosso software dá ao administrador é ver/interagir com activos baseados em grupos de utilizadores LDAP. Então, como administrador, eu posso querer atualizar todas as impressoras que são de propriedade de pessoas em um determinado departamento. Para conseguir isso, o administrador criaria uma regra escopada para o grupo LDAP "departamento em questão". Nosso software usaria então uma conta de Serviço para conectar-se ao LDAP, criar uma consulta para ver quais usuários de nosso sistema estão em "department inquestionation", executar isso e usar os resultados para determinar quais ativos devem obter a atualização.

Tão longe da minha busca, não consegui encontrar um fluxo de trabalho SAML análogo a isto. Parece que a única oportunidade que temos para identificar "alguém" é quando eles autenticam e temos acesso às suas alegações. Mas no nosso fluxo de trabalho "alguém" pode nunca se autenticar connosco. É quase como se estivéssemos a usar a autorização de um utilizador em nome da conta de serviço. Há algum fluxo de trabalho existente que eu tenha esquecido durante a minha exploração? Existem outras tecnologias que apoiem a autorização desta forma?

Obrigado por qualquer informação!

Author: Staros, 2014-04-07

3 answers

O SAML é como um passaporte ou um visto. Ele tem (Confiável) informações sobre você que podem ser usadas para saber sobre você (por exemplo, seu nome, DOB) e inferir o que você pode acessar (por exemplo, entrada para um país). Você pode usar Propriedades no token para consultar outros sistemas sobre informações adicionais que você pode estar associado com (por exemplo, seu extrato bancário). Por isso, analogamente, o SAML é normalmente usado para autenticar os utilizadores a um sistema (Uma vez que se confia na sua origem), mas não existem disposições para gerir perfis de utilizador ou "recursos". As decisões de Autorização, se as houver, são frequentemente tomadas com base nos atributos associados ao Utilizador (por exemplo, o grupo a que pertence) e veiculadas nas reivindicações no símbolo de segurança.

Talvez a primeira pergunta a responder seja por que quer afastar-se do LDAP e pensar no SAML. É porque você quer aceitar usuários se conectando com suas próprias credenciais? É porque você quer se livrar do servidor LDAP completamente

Podias perfeitamente bem manter o seu servidor LDAP para gerir resources associated with users, e autenticar os utilizadores noutro local. Isto é o que tens agora. Você correlacionaria os usuários "fora " e" dentro " através de um atributo comum (por exemplo, um nome de usuário, ou algum ID).

Se você quiser se livrar de LDAP todos juntos, então você precisa de outro lugar para armazenar essa informação (por exemplo, a sua base de dados app).

 15
Author: Eugenio Pace, 2015-11-24 02:43:56

Com base na resposta de Eugenio Pacee, em particular, no seguinte parágrafo:

Assim, analogamente, o SAML é normalmente usado para autenticar os utilizadores a um sistema (Uma vez que se confia na sua origem), mas não existem disposições para gerir perfis de utilizadores, ou 'recursos'.

As decisões de autorização, caso existam, são frequentemente tomadas com base nos atributos associados ao Utilizador (por exemplo, o grupo a que pertence) e veiculadas nos pedidos de garantia. simbolo.
O que Eugenio refere aqui é o controlo de acesso baseado em atributos ABAC. O SAML não faz isso. Para alcançar ABAC, você precisa de XACML. Tanto o SAML quanto o XACML são padrões definidos pelo OASIS e que interoperam. Com o XACML você pode definir regras baseadas em atributos. Por exemplo, poderíamos revisitar o seu exemplo e escrever uma regra como segue:
  • Um usuário com o role==administrador pode fazer o acção==atualização em um recurso de tipo==impressora se, e somente se, a departamento de usuário == departamento de impressora.

Pode ler mais sobre o XACML em ABAC nestes locais de referência:

 7
Author: David Brossard, 2017-05-23 12:30:32

Auth0 implementa comprovada, comum e popular de identidade, protocolos utilizados em orientado para o consumidor de produtos web (OAuth 2.0, OpenID Ligar) e implantações empresariais (SAML, WS-Federation, LDAP).

  • Security Umssertion Markup Lidioma (SAML) é baseado em XML, framework para autenticação e autorização entre duas entidades: um Provedor de Serviços e um Fornecedor De Identidade. O prestador de serviços concorda em confiar no prestador de identidade para autenticar os utilizadores. O Provedor de identidade autentica os usuários e fornece aos prestadores de Serviços uma afirmação de autenticação que indica que um usuário foi autenticado.

  • Lightweight Directory Umacesso Protocol (LDAP) é um protocolo de aplicação, utilizado para o acesso e manutenção de diretório distribuído de serviços de informação sobre um Internet Rede Protocol (IP).

Origem

 0
Author: Premraj, 2018-08-18 03:56:28