Projet

Général

Profil

Paste
Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / ldap / ldap_user @ 384fc62a

Nom Taille Révision Âge Auteur Commentaire
  tests f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
LdapUserConf.class.php 50,9 ko f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
LdapUserConfAdmin.class.php 43,5 ko f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
README.developers.txt 5,04 ko f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
README.txt 1,4 ko f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
TODO.txt 2,43 ko f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
ldap_user.admin.inc 1,41 ko f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
ldap_user.api.php 3 ko f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
ldap_user.cron.inc 6,68 ko f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
ldap_user.css 131 octets f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
ldap_user.info 1000 octets f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
ldap_user.install 13,3 ko f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
ldap_user.module 47 ko f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
ldap_user.test_form.inc 8,02 ko f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
ldap_user.theme.inc 4,72 ko f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7
ldap_user.ws.inc 5,68 ko f7a2490e plus de 10 ans Assos Assos git mv htmltest drupal7

Dernières révisions

# Date Auteur Commentaire
f7a2490e 13/02/2014 15:56 Assos Assos

git mv htmltest drupal7

Voir les révisions

README


provisioning = creating or synching ... to drupal or to ldap

==========================================

LDAP User Data Structures in Drupal User Object

'data' =>
array (
'ldap_user' =>
array (
'init' =>
array (
'sid' => 'activedirectory1',
'dn' => 'cn=hpotter,ou=people,dc=hogwarts,dc=edu',
'mail' => 'hpotter@hogwarts.edu',
),
),
'ldap_authorizations' =>
array (
'drupal_role' =>
array (
'cn=gryffindor,ou=groups,dc=hogwarts,dc=edu' =>
array (
'date_granted' => 1351194052,
),
'cn=honors students,ou=groups,dc=hogwarts,dc=edu' =>
array (
'date_granted' => 1351194052,
),
'students' =>
array (
'date_granted' => 1351194052,
),
),
),
),

'ldap_user_puid_sid' =>
array (
'und' =>
array (
0 =>
array (
'value' => 'activedirectory1',
'format' => NULL,
'safe_value' => 'activedirectory1',
),
),
),
'ldap_user_puid' =>
array (
'und' =>
array (
0 =>
array (
'value' => '101',
'format' => NULL,
'safe_value' => '101',
),
),
),
'ldap_user_puid_property' =>
array (
'und' =>
array (
0 =>
array (
'value' => 'guid',
'format' => NULL,
'safe_value' => 'guid',
),
),
),
'ldap_user_current_dn' =>
array (
'und' =>
array (
0 =>
array (
'value' => 'cn=hpotter,ou=people,dc=hogwarts,dc=edu',
'format' => NULL,
'safe_value' => 'cn=hpotter,ou=people,dc=hogwarts,dc=edu',
),
),
),
'ldap_user_prov_entries' =>
array (
),
'ldap_user_last_checked' =>
array (
),
'ldap_authorizations' =>
array (
),

==========================================

Rough Summary of provisioning configuration and controls

  1. configured triggers (admin/config/people/ldap/user) or configuration of other modules determine when provisioning happens.

// configurable drupal acct provision triggers
LDAP_USER_DRUPAL_USER_PROV_ON_USER_UPDATE_CREATE
LDAP_USER_DRUPAL_USER_PROV_ON_AUTHENTICATE
LDAP_USER_DRUPAL_USER_PROV_ON_ALLOW_MANUAL_CREATE

// configurable ldap entry provision triggers
LDAP_USER_LDAP_ENTRY_PROV_ON_USER_UPDATE_CREATE
LDAP_USER_LDAP_ENTRY_PROV_ON_AUTHENTICATE
LDAP_USER_LDAP_ENTRY_DELETE_ON_USER_DELETE

  1. hook_user_* functions (and elsewere such as ldap_authentication) will check if appropriate triggers are enabled and initiate calls to ldapUserConf methods:

ldapUserConf::provisionDrupalAccount()
ldapUserConf::synchToDrupalAccount()
ldapUserConf::ldapAssociateDrupalAccount()
ldapUserConf::deleteDrupalAccount()

ldapUserConf::provisionLdapEntry()
ldapUserConf::synchToLdapEntry()
ldapUserConf::deleteProvisionedLdapEntries()

  1. to get mappings and determine which attributes are needed "ldap_contexts" and "prov_events" are passed into
    ldap_servers_get_user_ldap_data()
    ldapUserConf::drupalUserToLdapEntry()

  2. Should provisioning happen?


4.A. Server Level: Does an ldap server configuration support provisioning?
ldapUserConf::drupalAcctProvisionServer = | LDAP_USER_NO_SERVER_SID; // servers used for to drupal acct provisioning
ldapUserConf::ldapEntryProvisionServer = | LDAP_USER_NO_SERVER_SID; // servers used for provisioning to ldap

This is directly configured at config/people/ldap/user


4.B. Trigger Level: Does provisioning occur for a given trigger?
ldapUserConf::provisionEnabled($direction, $provision_trigger)

This method is based on the configuration of two sets of checkboxes at config/people/ldap/user

ldapUserConf::drupalAcctProvisionTriggers (see "LDAP Entry Provisioning Options"), contains:
LDAP_USER_DRUPAL_USER_PROV_ON_AUTHENTICATE
LDAP_USER_DRUPAL_USER_PROV_ON_USER_UPDATE_CREATE
LDAP_USER_DRUPAL_USER_PROV_ON_ALLOW_MANUAL_CREATE

ldapUserConf::ldapEntryProvisionTriggers (see "Drupal Account Provisioning Options"), contains:
LDAP_USER_LDAP_ENTRY_PROV_ON_USER_UPDATE_CREATE
LDAP_USER_LDAP_ENTRY_DELETE_ON_USER_DELETE
LDAP_USER_LDAP_ENTRY_PROV_ON_AUTHENTICATE

@todo. A hook to allow other modules to intervene here


4.C Field Level: Does provisioning occur for a given field and ldap server for a given "prov_event" and "ldap _context"?

ldapUserConf::isSynched($field, $prov_event, $direction)

This depends on:
ldapUserConf::synchMapping[$direction][$field]['prov_events']
which is populated by various ldap and possibly other modules.

"ldap_contexts" (any module can provide its own context which is just a string)
ldap_user_insert_drupal_user
ldap_user_update_drupal_user
ldap_authentication_authenticate
ldap_user_delete_drupal_user
ldap_user_disable_drupal_user
all

"prov_events"
LDAP_USER_EVENT_SYNCH_TO_DRUPAL_USER
LDAP_USER_EVENT_CREATE_DRUPAL_USER
LDAP_USER_EVENT_SYNCH_TO_LDAP_ENTRY
LDAP_USER_EVENT_CREATE_LDAP_ENTRY
LDAP_USER_EVENT_LDAP_ASSOCIATE_DRUPAL_ACCT

Formats disponibles : Atom