Libipa_hbac provides a mechanism to validate FreeIPA HBAC rules as well as evaluate whether they apply to a particular user login attempt.
More...
Data Structures |
| struct | hbac_rule_element |
| | Component of an HBAC rule. More...
|
| struct | hbac_rule |
| | HBAC rule object for evaluation. More...
|
| struct | hbac_request_element |
| | Component of an HBAC request. More...
|
| struct | hbac_eval_req |
| | Request object for an HBAC rule evaluation. More...
|
| struct | hbac_info |
| | Extended information. More...
|
Defines |
|
#define | HBAC_CATEGORY_NULL 0x0000 |
| | No service category specified.
|
|
#define | HBAC_CATEGORY_ALL 0x0001 |
| | Rule should apply to all.
|
|
#define | HBAC_RULE_ELEMENT_USERS 0x01 |
| | User element.
|
|
#define | HBAC_RULE_ELEMENT_SERVICES 0x02 |
| | Service element.
|
|
#define | HBAC_RULE_ELEMENT_TARGETHOSTS 0x04 |
| | Target host element.
|
|
#define | HBAC_RULE_ELEMENT_SOURCEHOSTS 0x08 |
| | Source host element.
|
Typedefs |
|
typedef void(* | hbac_debug_fn_t )(const char *file, int line, const char *function, enum hbac_debug_level, const char *format,...) HBAC_ATTRIBUTE_PRINTF(5 |
| | Function pointer to HBAC external debugging function.
|
| typedef void(*) voi | hbac_enable_debug )(hbac_debug_fn_t external_debug_fn) |
| | HBAC uses external_debug_fn for logging messages.
|
Enumerations |
| enum | hbac_debug_level { , HBAC_DBG_ERROR,
HBAC_DBG_WARNING,
HBAC_DBG_INFO,
HBAC_DBG_TRACE
} |
| | Debug levels for HBAC. More...
|
| enum | hbac_eval_result { HBAC_EVAL_ERROR = -1,
HBAC_EVAL_ALLOW,
HBAC_EVAL_DENY,
HBAC_EVAL_OOM
} |
| | Result of HBAC evaluation. More...
|
| enum | hbac_error_code {
HBAC_ERROR_UNKNOWN = -1,
HBAC_SUCCESS,
HBAC_ERROR_NOT_IMPLEMENTED,
HBAC_ERROR_OUT_OF_MEMORY,
HBAC_ERROR_UNPARSEABLE_RULE
} |
| | Error code returned by the evaluator. More...
|
Functions |
| enum hbac_eval_result | hbac_evaluate (struct hbac_rule **rules, struct hbac_eval_req *hbac_req, struct hbac_info **info) |
| | Evaluate an authorization request against a set of HBAC rules.
|
| const char * | hbac_result_string (enum hbac_eval_result result) |
| | Display result of hbac evaluation in human-readable form.
|
| const char * | hbac_error_string (enum hbac_error_code code) |
| | Display error description.
|
| void | hbac_free_info (struct hbac_info *info) |
| | Function to safely free hbac_info returned by hbac_evaluate.
|
| bool | hbac_rule_is_complete (struct hbac_rule *rule, uint32_t *missing_attrs) |
| | Evaluate whether an HBAC rule contains all necessary elements.
|
Libipa_hbac provides a mechanism to validate FreeIPA HBAC rules as well as evaluate whether they apply to a particular user login attempt.
Libipa_hbac is case-insensitive and compatible with UTF-8.