PHPackages                             shawinigan/sso - 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. shawinigan/sso

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

shawinigan/sso
==============

Shawinigan SSO utilities

0.7(1y ago)017MITPHPPHP ^7.2 || ^8.2

Since Nov 21Pushed 1y ago1 watchersCompare

[ Source](https://github.com/shawinigan/sso)[ Packagist](https://packagist.org/packages/shawinigan/sso)[ RSS](/packages/shawinigan-sso/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (6)Versions (8)Used By (0)

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

[](#installation)

1. Run `composer require shawinigan/sso` to include this in your project.
2. Run `php artisan vendor:publish --provider="Shawinigan\Sso\LaravelAzureProvisioning\AzureProvisioningProvider"`.
3. Run `php artisan vendor:publish --provider="Shawinigan\Sso\LaravelAzureSocialite\AzureSocialiteServiceProvider"`.
4. Run `npm install`
5. Run `npm run build`
6. Run `npm run dev`
7. Run `php artisan migrate`

Configuration (Laravel)
-----------------------

[](#configuration-laravel)

1. Open `config/azureprovisioning.php` to adjust the packages configuration

    If the file doesn't exist, ensure you have ran `php artisan vendor:publish --provider="Shawinigan\Sso\LaravelAzureProvisioning\AzureProvisioningProvider"`.
2. Modify the configuration as required. All fields are commented and should provide enough description for how they change the way this package works.
3. If you do not wish to provision Groups you can entirely remove (or comment) the `Groups` key.
4. Open `config/shawi-sso.php` to adjust the packages configuration
5. ### Add configuration to `config/services.php`

    [](#add-configuration-to-configservicesphp)

```
'azure' => [
  'client_id' => env('AZURE_CLIENT_ID'),
  'client_secret' => env('AZURE_CLIENT_SECRET'),
  'redirect' => env('AZURE_REDIRECT_URI'),
  'tenant' => env('AZURE_TENANT_ID'),
  'proxy' => env('PROXY')  // optionally
],
```

5. ### Add provider event listener

    [](#add-provider-event-listener)

Configure the package's listener to listen for `SocialiteWasCalled` events.

Add the event to your `listen[]` array in `app/Providers/EventServiceProvider`. See the [Base Installation Guide](https://socialiteproviders.com/usage/) for detailed instructions.

```
protected $listen = [
    \SocialiteProviders\Manager\SocialiteWasCalled::class => [
        \Shawinigan\Sso\LaravelAzureSocialite\AzureExtendSocialite::class.'@handle',
    ],
];
```

6. \###Add the AzureUser trait to the user model

```
use Shawinigan\Sso\LaravelAzureSocialite\Traits\AzureUser;

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable, HasRoles, AzureUser;
7. ### Add fillable and hidden to user model

```php
protected $fillable = [
        'name',
        'email',
        'password',
        'azure_auth_id',
        'azure_access_token',
        'azure_refresh_token',
        'username',
        'avatar',
        'azure_expires_timestamp'
    ];

protected $hidden = [
        'password',
        'remember_token',
        'azure_auth_id',
        'azure_access_token',
        'azure_refresh_token',
        'azure_expires_timestamp'
    ];
```

Configuration (Azure)
---------------------

[](#configuration-azure)

1. Login to Azure Active Directory
2. Select **All services** &gt; **Enterprise applications**
3. Select **New application**
4. Select **Create your own application**
5. Provide your application's name and select the option *"Integrate any other application you don't find in the gallery (Non-gallery)"*
6. **A) To provision all users/groups**

    - On the properties page, ensure the option *"User assignment required?"* is set to **No**

**--OR--**

6. **B) To provision select users/groups**

    - On the Properties page, ensure the option *"User assignment required?"* is set to **Yes**
    - On the Users and groups page, add the users and groups that you wish to provision
7. Navigate to the Provisioning page
8. Set the Provisioning Mode to **Automatic**
9. In the Admin Credentials section set the Tenant URL to your domain (with https://) followed by `/scim/v2.0/` (Or the value you have set in in the `routePrefix` configuration option). (e.g. `https://laravel-azure-provisioning.com/scim/v2.0/`)
10. **TODO: Provide the secret token generated by ... ?**
11. Test the configuration and then save the settings
12. Expand the mapping section and remove any mappings that are not required by your application and add mappings that are missing and required by your application.
13. Save the settings again

**Note:** If you only want users within set groups to be provisioned, follow the steps in **6 B)** and add the groups you require. Only the members of the group will then be provisioned.

This repository is based on :

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance33

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~41 days

Recently: every ~62 days

Total

7

Last Release

661d ago

PHP version history (2 changes)0.1PHP ^7.2 || ^8.0

0.6PHP ^7.2 || ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/87d7be822f62602bb5da348ce2f5d24b9b213806f8f97fa432d848b325764953?d=identicon)[tidev](/maintainers/tidev)

---

Top Contributors

[![Pmbaril](https://avatars.githubusercontent.com/u/105656329?v=4)](https://github.com/Pmbaril "Pmbaril (2 commits)")

### Embed Badge

![Health badge](/badges/shawinigan-sso/health.svg)

```
[![Health](https://phpackages.com/badges/shawinigan-sso/health.svg)](https://phpackages.com/packages/shawinigan-sso)
```

###  Alternatives

[althinect/filament-spatie-roles-permissions

340954.7k9](/packages/althinect-filament-spatie-roles-permissions)[tuandm/laravue

A beautiful dashboard for Laravel built by VueJS

2.2k16.6k](/packages/tuandm-laravue)

PHPackages © 2026

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