belvg/sso-fpbundle

Integration with knpuniversity/oauth2-client-bundle to provide services

Installs: 82

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Type:symfony-bundle

1.5.0 2023-12-12 15:58 UTC

This package is not auto-updated.

Last update: 2024-04-30 17:50:16 UTC


README

Configure routes

Copy file src/config/sso_fp.yaml to config/routes

Configure knp_client bundle

copy file src/config/knpu_oauth2_client.yaml to config/packages/knpu_oauth2_client.yaml

Security

add to src/config/security.yaml add next lines:

    providers:
        # used to reload user from session & other features (e.g. switch_user)
        app_user_provider:
            id: SSO\FpBundle\Provider\FactoryPortalUserProvider 
    firewalls:
        main:
            lazy: true
            provider: app_user_provider
            custom_authenticators:
                - SSO\FpBundle\Security\FactoryPortalAuthenticator
            logout:
                path: app_logout
                target: factory_portal_logout
# add to access_controll section
    access_control:
      # - { path: ^/admin, roles: ROLE_ADMIN }
      # - { path: ^/profile, roles: ROLE_USER }
      - { path: ^/connect/factoryportal, roles: PUBLIC_ACCESS }
      - { path: ^/fp_logout, roles: PUBLIC_ACCESS }
      - { path: ^/connect/factoryportal/check, roles: PUBLIC_ACCESS }
      - { path: ^/, roles: IS_AUTHENTICATED_FULLY }

Services

add to config/service.yaml add next lines:

    SSO\FpBundle\Provider\FactoryOauth2ClientProvider:
        arguments:
            $options: { clientId: '%env(OAUTH_FACTORY_PORTAL_ID)%', clientSecret: '%env(OAUTH_FACTORY_PORTAL_SECRET)%' }
        public: true
#
    app.factory.provider:
        alias: SSO\FpBundle\Provider\FactoryOauth2ClientProvider
#
#
#
    KnpU\OAuth2ClientBundle\Client\OAuth2Client:
        arguments:
            $provider: '@app.factory.provider'

Configure env

OAUTH_FACTORY_PORTAL_ID='<factory_portal_id>'
OAUTH_FACTORY_PORTAL_SECRET='<factory_portal_secret>'