PHPackages                             surfnet/stepup-gssp-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. surfnet/stepup-gssp-bundle

ActiveSymfony-bundle[Authentication &amp; Authorization](/categories/authentication)

surfnet/stepup-gssp-bundle
==========================

A Symfony 6 bundle to aid the creation of GSSP (Generic SAML Step-up Provider) device support.

6.0.0(3mo ago)14.9k↑33.3%[1 issues](https://github.com/OpenConext/Stepup-gssp-bundle/issues)Apache-2.0PHPPHP ^8.2CI passing

Since Dec 19Pushed 3mo ago11 watchersCompare

[ Source](https://github.com/OpenConext/Stepup-gssp-bundle)[ Packagist](https://packagist.org/packages/surfnet/stepup-gssp-bundle)[ RSS](/packages/surfnet-stepup-gssp-bundle/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (18)Versions (43)Used By (0)

Stepup-gssp-bundle
==================

[](#stepup-gssp-bundle)

[![Run tests (static analysis, lint and unit tests)](https://github.com/OpenConext/Stepup-gssp-example/actions/workflows/test-integration.yml/badge.svg)](https://github.com/OpenConext/Stepup-gssp-example/actions/workflows/test-integration.yml)[![Run acceptance tests (Behat)](https://github.com/OpenConext/Stepup-gssp-example/actions/workflows/test-acceptance.yml/badge.svg)](https://github.com/OpenConext/Stepup-gssp-example/actions/workflows/test-acceptance.yml)

Generic SAML Stepup Provider bundle.

Installation
------------

[](#installation)

- Add the package to your Composer file

```
composer require surfnet/stepup-gssp-bundle
```

- Add the bundle to your kernel in `app/AppKernel.php`

```
public function registerBundles()
{
  // ...
  $bundles[] = new Surfnet\SamlBundle\SurfnetSamlBundle();
  $bundles[] = new Surfnet\GsspBundle\GsspBundle();
}
```

Configuration
-------------

[](#configuration)

**config.yml**

```
surfnet_saml:
    hosted:
        identity_provider:
            enabled: true
            service_provider_repository: surfnet_gssp.saml.service_provider_repository
            sso_route: sso
            public_key: "%saml_idp_publickey%"
            private_key: "%saml_idp_privatekey%"
        metadata:
            entity_id_route: gssp_saml_metadata
            public_key: "%saml_metadata_publickey%"
            private_key: "%saml_metadata_privatekey%"
    remote:
        identity_provider:
            enabled: true
            entity_id: "%saml_remote_idp_entity_id%"
            sso_url: "%saml_remote_idp_sso_url%"
            certificate_file: "%saml_remote_idp_certificate%"

surfnet_gssp:
    registration_route: ''
    authentication_route: ''
```

See [Saml bundle documentation](https://github.com/OpenConext/Stepup-saml-bundle) for more information about the 'surfnet\_saml' configuration above.

See the controller for working examples of the 'surfnet\_gssp' routes in [Example controller](https://github.com/OpenConext/Stepup-gssp-example/blob/main/src/Surfnet/Gssp/Infrastructure/Controller/DefaultController.php)

The AuthenticationService and the RegistrationService is the API for the application to interact with this bundle. Both services document an example how to use them in a controller action.

**routing.yml**

```
gssp_saml:
    resource: '@SurfnetGsspBundle/Resources/config/routing.yml'
```

**parameters.yml**

```
parameters:
    saml_idp_publickey: '%kernel.root_dir%/../vendor/surfnet/stepup-saml-bundle/src/Resources/keys/development_publickey.cer'
    saml_idp_privatekey: '%kernel.root_dir%/../vendor/surfnet/stepup-saml-bundle/src/Resources/keys/development_privatekey.pem'
    saml_metadata_publickey: '%kernel.root_dir%/../vendor/surfnet/stepup-saml-bundle/src/Resources/keys/development_publickey.cer'
    saml_metadata_privatekey: '%kernel.root_dir%/../vendor/surfnet/stepup-saml-bundle/src/Resources/keys/development_privatekey.pem'
    saml_remote_idp_entity_id: 'https://pieter.aai.surfnet.nl/simplesamlphp/saml2/idp/metadata.php'
    saml_remote_idp_sso_url: 'https://pieter.aai.surfnet.nl/simplesamlphp/saml2/idp/SSOService.php'
    saml_remote_idp_certificate: '%kernel.root_dir%/../vendor/surfnet/stepup-gssp-bundle/src/Resources/keys/pieter.aai.surfnet.nl.pem'
```

This is example idp configuration that works with [pieter.aai.surfnet.nl](https://pieter.aai.surfnet.nl/) idp.

Development environment
=======================

[](#development-environment)

The purpose of the development environment is only for running the different test and metric tools.

To get started, first setup the development environment. The development environment is a docker container. That is controlled via the [OpenConext-devconf](https://github.com/OpenConext/OpenConext-devconf/) project.

Every task described below should be run from that container.

Requirements
------------

[](#requirements)

- Docker
- OpenConext-devconf

Debugging
---------

[](#debugging)

Xdebug is configured when provisioning your development Vagrant box. It's configured with auto connect IDE\_KEY=phpstorm and `xon` on cli env.

Tests en metrics
================

[](#tests-en-metrics)

To run all required test you can run the following command from the dev env:

`composer test`

Every part can be run separately. Check "scripts" section of the composer.json file for the different options.

Release instructions
====================

[](#release-instructions)

Please read:  for more information on the release strategy used in Stepup projects.

Other resources
===============

[](#other-resources)

- [Developer documentation](docs/index.md)
- [Issue tracker](https://www.pivotaltracker.com/n/projects/1163646)
- [License](LICENSE)
- [GSSP documentation](https://github.com/OpenConext/Stepup-Gateway/blob/develop/docs/GSSP.md)

###  Health Score

51

—

FairBetter than 96% of packages

Maintenance60

Regular maintenance activity

Popularity23

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity88

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 67.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~82 days

Recently: every ~199 days

Total

37

Last Release

105d ago

Major Versions

1.2.0 → 2.0.02018-04-26

2.1.0 → 3.0.0-alpha.12019-08-01

3.0.6 → 4.0.02021-02-24

4.0.3 → 5.0.02023-10-10

5.1.0 → 6.0.02026-02-02

PHP version history (6 changes)1.0.0PHP &gt;=5.5.9

3.0.0-alpha.1PHP &gt;=7.2

3.0.4PHP ^5.6 || &gt;=7.2

4.0.0PHP ~7.2

5.0.0PHP ^8.1

5.0.5PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/9221e348303eeda74e85236a8bff9b919a90d10e3a478fe1cbb9d833f68d0150?d=identicon)[thijskh](/maintainers/thijskh)

---

Top Contributors

[![MKodde](https://avatars.githubusercontent.com/u/28252948?v=4)](https://github.com/MKodde "MKodde (78 commits)")[![epinxteren](https://avatars.githubusercontent.com/u/1705836?v=4)](https://github.com/epinxteren "epinxteren (13 commits)")[![mroest](https://avatars.githubusercontent.com/u/1062155?v=4)](https://github.com/mroest "mroest (8 commits)")[![johanib](https://avatars.githubusercontent.com/u/60608181?v=4)](https://github.com/johanib "johanib (7 commits)")[![jorissteyn](https://avatars.githubusercontent.com/u/448056?v=4)](https://github.com/jorissteyn "jorissteyn (4 commits)")[![KarsanHAM](https://avatars.githubusercontent.com/u/39461288?v=4)](https://github.com/KarsanHAM "KarsanHAM (3 commits)")[![pablothedude](https://avatars.githubusercontent.com/u/30088478?v=4)](https://github.com/pablothedude "pablothedude (1 commits)")[![pmeulen](https://avatars.githubusercontent.com/u/1485300?v=4)](https://github.com/pmeulen "pmeulen (1 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/surfnet-stepup-gssp-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/surfnet-stepup-gssp-bundle/health.svg)](https://phpackages.com/packages/surfnet-stepup-gssp-bundle)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[simplesamlphp/simplesamlphp

A PHP implementation of a SAML 2.0 service provider and identity provider.

1.1k12.4M193](/packages/simplesamlphp-simplesamlphp)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[scheb/2fa

Two-factor authentication for Symfony applications (please use scheb/2fa-bundle to install)

578630.7k1](/packages/scheb-2fa)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[scheb/2fa-bundle

A generic interface to implement two-factor authentication in Symfony applications

7014.0M62](/packages/scheb-2fa-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
