The example in Figure 5.14 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 Selectors and Undefined Data.