Available in stable development 1.15 1.14 1.13 1.12 1.11 1.10 1.9


This module provides two methods for authentication:

Username & password authentication with hashed passwords.
Username & password authentication against an .htpasswd file.

1 authcrypt:Hash

This is based on exampleAuth:UserPass, and adds support for hashed passwords. Hashes can be generated with the included command line tool bin/pwgen.sh. This tool will interactively ask for a password, a hashing algorithm , and whether or not you want to use a salt:

[user@server simplesamlphp]$ bin/pwgen.php
Enter password: hackme
The following hashing algorithms are available:
md2          md4          md5          sha1         sha224       sha256
sha384       sha512       ripemd128    ripemd160    ripemd256    ripemd320
whirlpool    tiger128,3   tiger160,3   tiger192,3   tiger128,4   tiger160,4
tiger192,4   snefru       snefru256    gost         adler32      crc32
crc32b       salsa10      salsa20      haval128,3   haval160,3   haval192,3
haval224,3   haval256,3   haval128,4   haval160,4   haval192,4   haval224,4
haval256,4   haval128,5   haval160,5   haval192,5   haval224,5   haval256,5

Which one do you want? [sha256]
Do you want to use a salt? (yes/no) [yes]


Now create an authentication source in config/authsources.php and use the resulting string as the password:

'example-hashed' => array(
    'student:{SSHA256}y1mj3xsZ4/+LoQyPNVJzXUFfBcLHfwcHx1xxltxeQ1C5MeyEX/RxWA==' => array(
        'uid' => array('student'),
        'eduPersonAffiliation' => array('member', 'student'),

This example creates a user student with password hackme, and some attributes.

1.1 Compatibility

The generated hashes can also be used in config.php for the administrative password:

'auth.adminpassword'        => '{SSHA256}y1mj3xsZ4/+LoQyPNVJzXUFfBcLHfwcHx1xxltxeQ1C5MeyEX/RxWA==',

Instead of generating hashes, you can also use existing ones from OpenLDAP, provided that the userPassword attribute is stored as MD5, SMD5, SHA, or SSHA.

2 authCrypt:Htpasswd

Authenticate users against an .htpasswd file. It can be used for example when you migrate a web site from basic HTTP authentication to SimpleSAMLphp.

The simple structure of the .htpasswd file does not allow for per-user attributes, but you can define some static attributes for all users.

An example authentication source in config/authsources.php could look like this:

'htpasswd' => array(
        'htpasswd_file' => '/var/www/foo.edu/legacy_app/.htpasswd',
        'static_attributes' => array(
            'eduPersonAffiliation' => array('member', 'employee'),
            'Organization' => array('University of Foo'),