GithubHelp home page GithubHelp logo

pascal-chenevas / laravelazureprovisioning Goto Github PK

View Code? Open in Web Editor NEW

This project forked from norndorff/laravelazureprovisioning

0.0 0.0 0.0 37 KB

A package to enable user and group provisioning for your Laravel Application from Microsoft Azure Active Directory.

License: MIT License

PHP 100.00%

laravelazureprovisioning's Introduction

Laravel Azure Provisioning

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

laravelazureprovisioning's People

Contributors

dependabot[bot] avatar pascal-chenevas avatar robtrehy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.