This example presents a typical use case for user mapping: matching a certificate and a user. Selectors are usually used for this purpose, but if you have a database that contains information about users and certificates, you can use an external application defined in the
mapper element to query the database. Based on the query result, users can be allowed/denied access to the server.
In this example the user is allowed to log in only if the regular expression provided in the
certificate element matches, that is if
CN in the certificate's subject name consists of three words separated by periods (.) and a set of digits in the end (for example "
<authentication-methods login-grace-time="600"> <authentication action="allow"> <auth-publickey /> <authentication name="authentication3" action="allow"> <selector> <certificate field="subject-name" regexp="C=FI, O=SSH, CN=\\w\+\\.\\w\+\\.\\w\+?\\.?\\w\+?\\.\\d\+" /> </selector> <mapper command="/path/to/python /path/to/script1.py"/> </authentication> </authentication> </authentication-methods>