robtrehy/laravel-azure-provisioning

This package adds a SCIM server, specifically designed to work with Microsoft Azure Active Directory, to your Laravel application.

This package's canonical repository appears to be gone and the package has been frozen as a result.

v1.0.3 2022-03-30 08:26 UTC

This package is auto-updated.

Last update: 2024-01-19 22:46:10 UTC


README

This package robtrehy\laravel-azure-provisioning adds a SCIM server, specifically designed to work with Microsoft Azure Active Directory, to your Laravel application.

The SCIM server enables you to create Users and Groups from your Azure Active Directory (AAD) automatically in your Laravel Application.

You can configure your AAD Enterprise Application to either provision all of your users and groups, just your users, or selected users or groups.

Prerequisites

  • A username field is required
    • Modify your model and migration to include a username field
    • Add username to the $fillable property of your user model
  • We recommend use of an active/status field for user soft delete
  • The default configuration will create a spatie/laravel-permission Role for each Group. To use the default configuration ensure you have required spatie/laravel-permission

Installation

  1. Run composer require robtrehy/laravel-azure-provisioning to include this in your project.
  2. Run php artisan vendor:publish --provider="RobTrehy\LaravelAzureProvisioning\AzureProvisioningProvider".
  3. Modify the published configuration file to your requirements. The file is located at config/azureprovisioning.php.

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="RobTrehy\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.

Configuration (Azure)

  1. Login to Azure Active Directory

  2. Select All services > 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--

  1. 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
  2. Navigate to the Provisioning page

  3. Set the Provisioning Mode to Automatic

  4. 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/)

  5. TODO: Provide the secret token generated by ... ?

  6. Test the configuration and then save the settings

  7. 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.

  8. 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.

License

This Laravel package is free software distributed under the terms of the MIT license. See LICENSE