Skip to content
Vasili Vasilyeu edited this page Nov 28, 2017 · 8 revisions

Themis

Themis represents a set of tools for managing and enforcing security policies along with framework to create such tools:

  • pdp - Policy Decision Point (core component of Themis);
  • pdpserver - standalone application server which runs PDP;
  • proto, pdp-service, pdp-control - gRPC protocol definitions and implementations;
  • pep - golang client package for "service" protocol (Policy Enforcement Point or PEP);
  • pepcli - CLI application which implements simple PEP and performance measurement tool for PDP server;
  • pdpctr-client - golang client package for "control" protocol (Policy Administration Point or PAP);
  • papcli - CLI application which implements simple PAP;
  • development tools:
    • jparser - set of helpers to create JSON stream parser;
    • egen - error processing code generator.

Themis design is inspired by eXtensible Access Control Markup Language (XACML) [XACML-V3.0].

Policy Decision Point

Policy Decision Point or PDP (according to [XACML-V3.0]) is an entity that evaluates applicable policy and renders an authorization decision. Themis provides PDP as a golang package.

PDPServer

PDP server allows to run and control PDP. Additionally the server provides endpoint for healthcheck and supports OpenZipkin tracing.

References

[XACML-V3.0] eXtensible Access Control Markup Language (XACML) Version 3.0. 22 January 2013. OASIS Standard. http://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html.

Clone this wiki locally