cesnet / simplesamlphp-module-proxystatistics
A SimpleSAMLPHP module for statistics
Requires
- php: ^7.3 || ^8
- ext-ctype: *
- ext-curl: *
- ext-filter: *
- ext-json: *
- ext-pdo: *
- simplesamlphp/simplesamlphp: ^1.19.2
Suggests
- ext-pdo_mysql: for MySQL database
- ext-pdo_pgsql: for PostgreSQL database
- cesnet/simplesamlphp-module-perun: for logging that a user accessed a service
- dev-main
- v8.5.0
- v8.4.0
- v8.3.0
- v8.2.0
- v8.1.1
- v8.1.0
- v8.0.0
- v7.1.1
- v7.1.0
- v7.0.2
- v7.0.1
- v7.0.0
- v6.0.0
- v5.0.0
- v4.3.x-dev
- v4.3.0
- v4.2.x-dev
- v4.2.2
- v4.2.1
- v4.2.0
- v4.1.x-dev
- 4.1.0
- v4.0.x-dev
- 4.0.0
- v3.2.x-dev
- 3.2.1
- 3.2.0
- v3.1.x-dev
- 3.1.0
- v3.0.x-dev
- 3.0.0
- 2.1.0
- v2.0.x-dev
- 2.0.0
- v1.5.x-dev
- 1.5.0
- v1.4.x-dev
- 1.4.1
- 1.4.0
- v1.3.x-dev
- 1.3.0
- v1.2.x-dev
- 1.2.1
- 1.2.0
- v1.1.x-dev
- 1.1.0
- v1.0.x-dev
- 1.0.0
- dev-github/fork/vyskocilpavel/bootstrap
- dev-dev_api
This package is auto-updated.
Last update: 2024-10-22 13:38:55 UTC
README
This project has reached end of life, which means no new features will be added. Security patches and important bug fixes will end as of 2024. Check out RCIAM METRICS instead.
Description
Module for simpleSAMLphp which shows Proxy IdP/SP statistics
Contribution
This repository uses Conventional Commits.
Any change that significantly changes behavior in a backward-incompatible way or requires a configuration change must be marked as BREAKING CHANGE.
Available scopes:
- design
- Auth Process filters:
- statistics
- ...
Instalation
Once you have installed SimpleSAMLphp, installing this module is very simple. First of all, you will need to download Composer if you haven't already. After installing Composer, just execute the following command in the root of your SimpleSAMLphp installation:
php composer.phar require cesnet/simplesamlphp-module-proxystatistics
Configuration
- Install MySQL Database and create database for statistics and user.
- For this database run script to create tables. Script is available in config-templates/tables.sql.
- Copy config-templates/module_proxystatistics.php to your config folder and fill it.
- Configure, according to mode
- PROXY - collects data about number of logins from each identity provider and accessed services; for PROXY mode, configure IdPAttribute filter from Perun module to get sourceIdPName from IdP metadata:
50 => [
'class' => 'perun:IdPAttribute',
'attrMap' => [
'name:en' => 'sourceIdPName',
],
],
// where 50 is priority (for example, must not be used for other modules)
- IDP - collects data about accessed services through given identity provider; for IDP mode, configure entity ID and name in
module_proxystatistics.php
'IDP' => [
'id' => '',
'name' => '',
],
- SP - collects data about identity providers used for access to given service; for SP mode, configure entity ID and name in
module_proxystatistics.php
'SP' => [
'id' => '',
'name' => '',
],
- MULTI_IDP - similar to IDP mode, stores more identity providers in one database; for MULTI_IDP mode, configure entity ID and name in each
module_proxystatistics.php
we want to get statistics from
'IDP' => [
'id' => '',
'name' => '',
],
- Configure proxystatistics filter
50 => [
'class' => 'proxystatistics:Statistics',
],
// where 50 is priority (for example, must not be used for other modules)
- Add to
config.php
:
'instance_name' => 'Instance name',
Writing via API
Configuration
Add the following (and adjust the credentials) to enable writing via the API (example request following). Methods supported are POST,PUT
.
'apiWriteEnabled' => true,
'apiWriteUsername' => 'api_writer',
'apiWritePasswordHash' => password_hash('ap1Wr1T3rP@S$'),
Example request
curl --request POST \
--url https://proxy.com/proxy/module.php/proxystatistics/writeLoginApi.php \
--header 'Authorization: Basic encodedCredentials' \
--header 'Content-Type: application/json' \
--data '{
"userId": "user@somewhere.edu",
"serviceIdentifier": "https://service.com/shibboleth",
"serviceName": "TEST_SERVICE",
"idpIdentifier": "https://idp.org/simplesamlphp",
"idpName": "TEST_IDP"
}'