66 #define HBAC_CATEGORY_NULL 0x0000
71 #define HBAC_CATEGORY_ALL 0x0001
76 struct hbac_time_rules;
284 #define HBAC_RULE_ELEMENT_USERS 0x01
287 #define HBAC_RULE_ELEMENT_SERVICES 0x02
290 #define HBAC_RULE_ELEMENT_TARGETHOSTS 0x04
293 #define HBAC_RULE_ELEMENT_SOURCEHOSTS 0x08
struct hbac_rule_element * users
Users and groups for which this rule applies.
Definition: ipa_hbac.h:130
struct hbac_rule_element * targethosts
Target hosts for which this rule apples.
Definition: ipa_hbac.h:135
const char ** groups
List of group members of this rule component.
Definition: ipa_hbac.h:110
Evaluation failed due to lack of memory hbac_info is not available.
Definition: ipa_hbac.h:60
An error occurred See the hbac_info for more details.
Definition: ipa_hbac.h:49
hbac_eval_result
Result of HBAC evaluation.
Definition: ipa_hbac.h:45
Evaluation grants access.
Definition: ipa_hbac.h:52
const char * hbac_result_string(enum hbac_eval_result result)
Display result of hbac evaluation in human-readable form.
Parse error while evaluating rule.
Definition: ipa_hbac.h:226
char * rule_name
Specify the name of the rule that matched or threw an error.
Definition: ipa_hbac.h:242
struct hbac_request_element * user
This is a list of user DNs to check, it must consist of the actual user requested, as well as all parent groups containing that user.
Definition: ipa_hbac.h:189
enum hbac_error_code code
If the hbac_eval_result was HBAC_EVAL_ERROR, this will be an error code.
Definition: ipa_hbac.h:236
bool hbac_rule_is_complete(struct hbac_rule *rule, uint32_t *missing_attrs)
Evaluate whether an HBAC rule contains all necessary elements.
Component of an HBAC rule.
Definition: ipa_hbac.h:84
Unexpected error.
Definition: ipa_hbac.h:214
const char ** groups
List of group members of this request component.
Definition: ipa_hbac.h:168
void hbac_free_info(struct hbac_info *info)
Function to safely free hbac_info returned by hbac_evaluate.
struct hbac_request_element * targethost
This is a list of target hosts to check, it must consist of the actual target host requested...
Definition: ipa_hbac.h:196
struct hbac_rule_element * services
Services and service groups for which this rule applies.
Definition: ipa_hbac.h:124
Function is not yet implemented.
Definition: ipa_hbac.h:220
Ran out of memory during processing.
Definition: ipa_hbac.h:223
Evaluation denies access.
Definition: ipa_hbac.h:55
HBAC rule object for evaluation.
Definition: ipa_hbac.h:116
struct hbac_request_element * service
This is a list of service DNs to check, it must consist of the actual service requested, as well as all parent groups containing that service.
Definition: ipa_hbac.h:182
Component of an HBAC request.
Definition: ipa_hbac.h:151
hbac_error_code
Error code returned by the evaluator.
Definition: ipa_hbac.h:212
struct hbac_time_rules * timerules
For future use.
Definition: ipa_hbac.h:145
const char ** names
List of explicit members of this rule component.
Definition: ipa_hbac.h:101
struct hbac_rule_element * srchosts
Source hosts for which this rule applies.
Definition: ipa_hbac.h:140
time_t request_time
For future use.
Definition: ipa_hbac.h:206
const char * hbac_error_string(enum hbac_error_code code)
Display error description.
Request object for an HBAC rule evaluation.
Definition: ipa_hbac.h:176
struct hbac_request_element * srchost
This is a list of source hosts to check, it must consist of the actual source host requested...
Definition: ipa_hbac.h:203
const char * name
List of explicit members of this request component.
Definition: ipa_hbac.h:159
uint32_t category
Category for this element.
Definition: ipa_hbac.h:92
Successful evaluation.
Definition: ipa_hbac.h:217
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.
Extended information.
Definition: ipa_hbac.h:230