Inhaltsverzeichnis

Admidio Provisioning Plugin — keep accounts and groups of other systems in line with Admidio

Provisioning

Creates, updates and deactivates accounts and groups on external systems (SCIM 2.0, Nextcloud, Mailman 3) according to Admidio's members and roles.

Plugin ID
provisioning
Author
Reinhold Kainhofer
License
GPL 2
Category
Integrations
Supported databases
MySQL, MariaDB, PostgreSQL
Supported languages
English, Deutsch (du), Deutsch (Sie)
Tags
SCIM Nextcloud Mailman SSO provisioning

Description

A plugin for Admidio 6.0 and later that creates, updates, deactivates and deletes user accounts and groups on external systems according to Admidio's members and roles. Changes in Admidio reach the connected systems within seconds. It comes with three connectors:

Other plugins can add further connectors.

Downloads

No releases have been published yet.

Installation

As administrator, go to Admidio's plugin manager (Admidio 6.0 or later and PHP 8.2 or later required, PHP extension curl needed), select “Add plugin” and upload the plugin ZIP file, then enable the plugin. The plugin creates its database tables when it is installed. Removing the plugin deletes them, including the record of which remote account belongs to which Admidio user – disconnect or clean up the targets first.

Cron

Changes in Admidio reach the targets at the end of the request that made them. Membership start and end dates, which Admidio only knows as whole days, take effect with the daily reconciliation shortly after midnight. Run Admidio's maintenance jobs hourly, one line per organization; the plugin registers its job provisioning:sync there:

15 * * * *  php /path/to/admidio/admidio maintenance:run --organization=SHORTNAME --no-interaction --quiet

The command needs an acting organization administrator, for example through $gCliDefaults in adm_my_files/cli-config.php. Without cron the first page request after midnight starts the reconciliation; ended memberships then stay active on the target until somebody opens Admidio.

Configuration

The menu entry Provisioning (below Extensions, visible to administrators) lists the targets. A target has

The status page of a target shows its queue, the last runs and every account or group that needs attention, and offers Synchronize now, Verify now, Test connection and Retry.

Connector notes

'allowed_no_password_confirmation_ranges' => ['192.0.2.10/32'],

What is touched, and what is not

Removing a target

Settings

Administration → Preferences → Login & security → Provisioning

Setting Default Meaning
Seconds per page request for synchronization 5 After a change, the targets are updated after the page has been delivered, for at most this many seconds. 0 leaves the synchronization to cron.
Allow targets in private networks off Allows target systems with private or reserved IP addresses and plain HTTP. Only switch this on if the target system is in your own network.
Notify administrators about problems on Sends the administrators of the organization at most one email per target and day if accounts or groups need attention.

Command line

Command Purpose
provisioning:sync [–target=UUID] [–full] [–verify] [–budget=S] [–dry-run] Run what is due (for cron)
provisioning:status Targets, queues and last runs; exit code 3 if a target is paused or items need attention
provisioning:test –target=UUID Test the connection
provisioning:queue –target=UUID [–retry] [–clear –yes] Items that need attention; retry or clear
provisioning:deprovision –target=UUID –yes Delete what Admidio created on the target system, then the target

For developers

A connector extends AdmidioPlugin\Provisioning\Connector\Connector and is registered through the filter provisioning_connectors. See the source code for a complete example and a small SCIM mock server for trying the plugin out.