The example in Figure 5.5 illustrates using the deny action with nested authentication methods.
When the user authentication processing starts, the user is first
directed to a block with one authentication method,
hostbased
. If the user fails host-based authentication, the
processing immediately ends in failure.
If the user passes host-based authentication, the authentication state is still "deny" and the processing continues with a nested authentication block. This block matches if a host certificate with valid fields was used to pass the host-based authentication. In this case, no further authentication methods are required and the authentication ends in success.
However, if a matching certificate does not exist, the deny action of the parent authentication block is used and the authentication ends in failure.
The allow-undefined
attribute is included in the host
certificate selector and set to "yes
". If it is omitted (or set
to "no
"), and the user tries to authenticate with a normal host
public key, the selector matching will end in error because the host
certificate data is not available to the server. In this example, the end
result would be the same from the user's point of view (login is denied), but the
server logs this as an error condition instead of an authentication failure.
For more information, see the section called “Selectors and Undefined Data”.