The example in Figure 5.3 demonstrates the use of multiple authentication blocks with selectors. Selectors match against information gathered during the connection attempt and may be used to control the user authentication process.
In this example, there are three authentication blocks on the same level. The authentication processing enters the first block that has a matching selector. A block without selectors always matches, so such block must always be the last in order.
The flowchart in the figure demonstrates the matching process. The server considers each authentication block in turn and either moves on or enters the block. Once a block has been entered, the processing is confined to that block only (and possible nested blocks inside it).
Each authentication block should either be a terminal block
(contain an action definition, "deny
" or
"allow
") or continue the processing by having either one or
more authentication methods or nested authentication blocks. (A block
with no methods, nested blocks, or action definition, is considered to
be an allow
block.)