11 # The authorization policy result
15 # @allow: allow access
19 { 'enum': 'QAuthZListPolicy',
20 'prefix': 'QAUTHZ_LIST_POLICY',
21 'data': ['deny', 'allow']}
26 # The authorization policy match format
28 # @exact: an exact string match
30 # @glob: string with ? and * shell wildcard support
34 { 'enum': 'QAuthZListFormat',
35 'prefix': 'QAUTHZ_LIST_FORMAT',
36 'data': ['exact', 'glob']}
41 # A single authorization rule.
43 # @match: a string or glob to match against a user identity
45 # @policy: the result to return if @match evaluates to true
47 # @format: the format of the @match rule (default 'exact')
51 { 'struct': 'QAuthZListRule',
52 'data': {'match': 'str',
53 'policy': 'QAuthZListPolicy',
54 '*format': 'QAuthZListFormat'}}
57 # @AuthZListProperties:
59 # Properties for authz-list objects.
61 # @policy: Default policy to apply when no rule matches (default:
64 # @rules: Authorization rules based on matching user
68 { 'struct': 'AuthZListProperties',
69 'data': { '*policy': 'QAuthZListPolicy',
70 '*rules': ['QAuthZListRule'] } }
73 # @AuthZListFileProperties:
75 # Properties for authz-listfile objects.
77 # @filename: File name to load the configuration from. The file must
78 # contain valid JSON for AuthZListProperties.
80 # @refresh: If true, inotify is used to monitor the file,
81 # automatically reloading changes. If an error occurs during
82 # reloading, all authorizations will fail until the file is next
83 # successfully loaded. (default: true if the binary was built
84 # with CONFIG_INOTIFY1, false otherwise)
88 { 'struct': 'AuthZListFileProperties',
89 'data': { 'filename': 'str',
90 '*refresh': 'bool' } }
93 # @AuthZPAMProperties:
95 # Properties for authz-pam objects.
97 # @service: PAM service name to use for authorization
101 { 'struct': 'AuthZPAMProperties',
102 'data': { 'service': 'str' } }
105 # @AuthZSimpleProperties:
107 # Properties for authz-simple objects.
109 # @identity: Identifies the allowed user. Its format depends on the
110 # network service that authorization object is associated with.
111 # For authorizing based on TLS x509 certificates, the identity
112 # must be the x509 distinguished name.
116 { 'struct': 'AuthZSimpleProperties',
117 'data': { 'identity': 'str' } }