性能

LDAPBackend在设计上尽量避免每次请求都访问LDAP服务器,当然这依赖于你如何进行配置。如果你比较注重阻塞或延迟问题,这有一些小建议减小它们的影响:

  1. 缓存组信息:如果AUTH_LDAP_FIND_GROUP_PERMS被设置成True,则默认情况下每次请求都会重载用户的组信息,这是最安全的选择,当用户的所属组信息被改变时会立即生效,但开销比价大。如果可能的话,设置AUTH_LDAP_CACHE_GROUPSTrue来禁用这种特性。另外你可以考虑使用AUTH_LDAP_MIRROR_GROUPSModelBackend来支持组权限设置。
  2. 不要使用user.ldap_user.*:这些属性仅仅在per-request请求时被缓存,如果可以传递LDAP属性给User或profile对象,它们仅仅在登录时候被更新。user.ldap_user.attrs在每次接受请求时都会触发与LDAP的链接。如果你没使用AUTH_LDAP_USER_DN_TEMPLATE,那么user.ldap_user.dn也将触发与LDAP的链接。
  3. 使用简单的组类型:某些分组机制比其他的机制开销更大。这常常超出你的控制,但一定注意比如NestedGroupOfNamesType这类复杂的组类型所提供的功能并不是免费的,这些功能通常会生成更大量、更复杂的LDAP查询。
  4. 使用直接绑定:使用AUTH_LDAP_USER_DN_TEMPLATEAUTH_LDAP_USER_SEARCH更有效率。特别是存在2台LDAP的服务的登录操作时(一代用于绑定,一台用于查询)。

results matching ""

    No results matching ""