wiki:DirectoryAuthPlugin/TheoryOfOperation

Version 2 (modified by anonymous, 18 months ago) (diff)

--

Theory of Operations

I am writing this page to help others understand the use, operations and limitations of this plugin.

Groups

  • One can specify a group which users must be a member of in order to log in.
  • Additionally, one may specify an admin group. If a user is a member of the admin group, then they will automatically be granted the TRAC_ADMIN permission.
  • Finally, Directory groups are extended into the trac namespace. They can be used to extend permissions by group.
    • directory groups are prefixed by @
    • group names are lowercase and spaces are replaced with underscores.

Searching

Groups are now searched using a reverse hierarchy methodology:

  1. Users DN is extracted based on the username
  2. All usergroups the user belongs to is extracted by searching for Member=$dn
  3. User groups are then searched for any with type objectClass=group and belonging to the groups DN and added to the list.

See GroupManagement for more details.

Caching

Given the expense of traversing the network for authorizations, a two-stage cache has been implemented.

  1. Data is cached into memory for quick lookups on repeat operations.
  2. Data is also cached in the database so that lookups can pass between instances of python w/o requiring going to the network.

See: CacheManagement for details.