Expand description
The policy decision of the FerroHEALTH products: the request a policy enforcement point puts, the decision it gets, and the engines that decide.
ferrohealth-smart authenticates a caller and says who it is; this crate
decides what that subject may do with an object, in the vocabulary of NIST
SP 800-162 (attribute-based access control: subject, object and
environment attributes, a policy decision point and the enforcement point
that consults it).
request: therequest::Subjectread fromferrohealth-smart’s caller, therequest::Requestwith its resource attributes (sets fan out, every combination must be permitted) and therequest::Decisionwith the policies that made it.engine: theengine::PolicyEnginetrait every engine implements, andengine::AuthzError, the answer of an engine that cannot decide, which a product never reads as a permit.cedar(featurecedar): the embedded engine over the Cedar policy language, its schema written from the product’s model and its policies validated strictly before they run.remote(featureremote): a remote decision point reached over HTTP, authorized withferrohealth-smart’s client credentials token.
Without a feature the crate holds the request model and the trait alone, with no policy engine or HTTP client.
Modules§
- cedar
- The embedded engine (feature
cedar): policies in the Cedar language, checked against a schema the product’sModeldeclares. - engine
- The policy decision point a product consults: one trait every engine implements, so a deployment swaps engines without a change in behaviour.
- remote
- A remote policy decision point (feature
remote), in the NIST SP 800-162 sense of a PDP the PEP consults over the network. - request
- The request a policy enforcement point puts to a policy decision point, and the decision it gets back.