A central authentication system that communicates with various nodes to control access to areas/equipment
#Iterations:
- Communication between Raspberry Pi & Arduino (transfer a 'users/attributes' file)
- Pass Fail communication displayed with two lights
- Authentication with RFID
Raspberry Pi is being used because it has the ability to run Debian natively. This gives a great deal of control over control logic. It has significantly more system resources than an Arduino as well.
The auth server will run openLDAP.
- LDAP - periodic sycning of users
- Syslog-ng - Logging of actions in the system | link
The client has two primary operations
This should pull down the latest userlist from the authentication server into a local file. If it can't update, the authentication client should attempt to email the board. An indication LED should be used to identify the status of the last update attempt.
Blink Codes:
- Solid on - Successfully Updated
- Slow constant blinks - File is out-of-date
Basic logic that compares required permissions for tool authentication against a local file.
Blink Codes:
- Two fast blinks - Permission granted (success)
- Three fast blinks - Permission denied (failure)
- Four fast blinks - User not found
- Five fast blinks - File not found
import ldap
l = ldap.initialize('ldap://10.100.0.51:1390')
l.search_s('ou=members,dc=makeitlabs,dc=com',ldap.SCOPE_SUBTREE,'(cn=Jesse*)',['cn','mail'])
[('cn=Jesse OBrien,ou=members,dc=makeitlabs,dc=com', {'cn': ['Jesse OBrien']})]
r = l.search_s('ou=members,dc=makeitlabs,dc=com',ldap.SCOPE_SUBTREE,'(objectClass=*)',['cn','mail'])
for dn,entry in r:
print 'Processing',repr(dn)
handle_ldap_entry(entry)