amqtt/docs/plugins/contrib.md

2.1 KiB

Contributed Plugins

These are fully supported plugins but require additional dependencies to be installed:

$ pip install '.[contrib]'

  • Relational Database Auth
    Grant or deny access to clients based on entries in a relational db (mysql, postgres, maria, sqlite). Includes manager script to add, remove and create db entries

    • amqtt.contrib.auth_db.UserAuthDBPlugin
    • amqtt.contrib.auth_db.TopicAuthDBPlugin
  • HTTP Auth
    Determine client authentication and/or authorization based on response from a separate HTTP server.

    • amqtt.contrib.http.UserAuthHttpPlugin
    • amqtt.contrib.http.TopicAuthHttpPlugin
  • LDAP Auth
    Authenticate a user with an LDAP directory server.

    • amqtt.contrib.ldap.UserAuthLdapPlugin
    • amqtt.contrib.ldap.TopicAuthLdapPlugin
  • Shadows
    Device shadows provide a persistent, cloud-based representation of the state of a device, even when the device is offline. This plugin tracks the desired and reported state of a client and provides MQTT topic-based communication channels to retrieve and update a shadow.
    amqtt.contrib.shadows.ShadowPlugin

  • Certificate Auth
    Using client-specific certificates, signed by a common authority (even if self-signed) provides a highly secure way of authenticating mqtt clients. Often used with IoT devices where a unique certificate can be initialized on initial provisioning. Includes command line utilities to generate root, broker and device certificates with the correct X509 attributes to enable authenticity.
    amqtt.contrib.cert.UserAuthCertPlugin

  • JWT Auth
    Plugin to determine user authentication and topic authorization based on claims in a JWT.

    • amqtt.contrib.jwt.UserAuthJwtPlugin (client authentication)
    • amqtt.contrib.jwt.TopicAuthJwtPlugin (topic authorization)
  • Session Persistence
    Plugin to store session information and retained topic messages in the event that the broker terminates abnormally.
    amqtt.contrib.persistence.SessionDBPlugin