Credential authentication

by Plone Documentation Team last modified Dec 30, 2008 03:07 PM
Contributors: Mikko Ohtamma, Martin Aspeli, Kamon Ayeva, Israel Saeta Pérez
The credentials as returned by the credential extraction plugins only reflect the authentication information provided by the user. These credentials need to be authenticated by an authentication plugin to check if they are correct for a real user.

The IAuthenticationPlugin interface is a simple one:

def authenticateCredentials( credentials ):

""" credentials -> (userid, login)

o 'credentials' will be a mapping, as returned by IExtractionPlugin.

o Return a tuple consisting of user ID (which may be different
from the login name) and login

o If the credentials cannot be authenticated, return None.
"""

Here is a simple example:

def authenticateCredentials(self, credentials):
users={ "hanno" : "hannosch", "martin" : "optilude",
"philipp" : "philiKON" }

if "login" not in credentials or "password" not in credentials:
return None

login=credentials["login"]
password=credentials["password"]
if users.get(login, None)==password:
return (login, login)

return None

This plugin allows the users hanno, martin and philipp to login with their nickname as password.