From Fedora Project Wiki
AuthFAS
- hook_form_alter on $form_id == 'user_login' or 'user_login_block' to catch logins
- Then set up our own functions to authenticate
- need a settings table that contains mappings FASGroup <=> DrupalGroup
- loop through memberships to determine groups for Drupal
- If one exists, turn its membership on for user (or check for !member and then add)
- If not, turn its membership off for user (or check for member and then remove)
- Need a SQL table {authfas}
- Contains a mapping of Drupal group ID (rid) => FAS group name
- Admin menu should include rows from SQL table
External authentication
The normal login process will call your custom authentication when the built in login process fails.
The process is as follows:
- user submits login information
- drupal checks if user is blocked, if so message is displayed and login fails
- drupal then attempts to load the user locally
- if this is successful then the user object is loaded and drupal fires the load and login hooks. the user is then directed towards the 'user' page.
- if user is not found locally then drupal will call external authentication
External authentication involves firing the auth hook, and on success either validating an existing user or creating a new user object. When a user is created this way a record is stored in the authmap table that confirms which module validates this user login.