PingOne

Combining algorithms

PingOne Authorize policies can combine multiple rules to produce a Permit, Deny, Indeterminate, or Not Applicable decision.

To evaluate the overall decision of a policy, the decision service applies a combining algorithm. The default algorithm for a new policy is The first applicable decision will be the final decision. This algorithm stops evaluating as soon as it reaches a decision that isn’t Not Applicable.

The following table identifies available combining algorithms and describes their effects. The charts show one example of a decision evaluation for each combining algorithm; other evaluation paths are possible. The chart legend is displayed before the table. The first column in each chart represents the overall decision returned by the policy. The second column represents child decisions that produce the resulting policy decision.

Legend for the combining algorithm charts.
Combining algorithm Details

A single permit will override any deny decisions

Chart showing an example path for single permit overriding any deny decisions.

If any children produce the decision Permit, the policy returns Permit and stops evaluating rules.

If no Permit is generated, all rules are evaluated. The policy returns Indeterminate if a child produces Indeterminate. Otherwise, the policy returns Deny if a child produces Deny.

If none of the previous situations occur, the policy returns Not Applicable.

A single deny will override any permit decisions

Chart showing an example path for single deny overriding any permit decisions.

If any children produce the decision Deny, the policy returns Deny and stops evaluating rules.

If no Deny is generated, all rules are evaluated. The policy returns Indeterminate if a child produces Indeterminate. Otherwise, the policy returns Permit if a child produces Permit.

If none of the previous situations occur, the policy returns Not Applicable.

Unless one decision is deny, the decision will be permit

Chart showing an example path for unless one decision is deny, the decision will be permit.

The policy defaults to Permit unless any of its children produce the decision Deny. The evaluation of rules stops as soon as a Deny is produced.

Unless one decision is permit, the decision will be deny

Chart showing an example path for unless one decision is permit, the decision will be deny.

The policy defaults to Deny unless any of its children produce the decision Permit. The evaluation of rules stops as soon as a Permit is produced.

The first applicable decision will be the final decision

Chart showing an example path for the first applicable decision will be the final decision.

The decision engine evaluates the children in turn until one produces an applicable value of Permit, Deny, or Indeterminate.

If the evaluation produces no applicable decisions, the policy returns Not Applicable.

Only one child may produce a decision. If more than one is produced, the result will be indeterminate

Chart showing an example path for only one child may produce a decision. If more than one is produced, the result will be indeterminate.

The decision engine evaluates the children in turn. If at any point two children produce a decision other than Not Applicable, the policy returns Indeterminate.

Otherwise, if precisely one child produces an applicable decision, the policy uses it. If evaluation produces no applicable decisions, the policy returns Not Applicable.