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.
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.