Microsoft Azure
Microsoft Azure stats
- Downloads
- 1.5M
- Stars
- 42
- Open Issues
- 0
- Forks
- 22
Microsoft Azure OAuth2 Provider for Laravel Socialite
Microsoft Azure Integration for Laravel
The socialiteproviders/microsoft-azure package extends Laravel's Socialite to allow authentication with Microsoft Azure Active Directory. This package simplifies integrating Azure AD into Laravel applications by leveraging Socialite's streamlined OAuth flows.
Key Features:
- Simple Configuration: Easily configure the service within Laravel's
config/services.php. - Event Listener Setup: Utilize Laravel's event system to handle OAuth events.
- Flexible Usage: Supports standard and advanced scenarios, including handling multiple Azure AD tenants.
Installation Guide:
-
Add Package:
composer require socialiteproviders/microsoft-azure -
Configuration: Add Azure credentials to your
config/services.php:'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], -
Event Listener: Register the Azure provider event listener in
app/Providers/EventServiceProvider:protected $listen = [\SocialiteProviders\Manager\SocialiteWasCalled::class => [\SocialiteProviders\Azure\AzureExtendSocialite::class.'@handle',],];
Basic Usage:
-
Redirect to Azure for Authentication:
return Socialite::driver('azure')->redirect(); -
Handle Logout:
public function logout(Request $request) {Auth::guard()->logout();$request->session()->flush();$azureLogoutUrl = Socialite::driver('azure')->getLogoutUrl(route('login'));return redirect($azureLogoutUrl);}
Advanced Usage:
For scenarios involving multiple Azure AD tenants, configure and use a custom set of credentials:
function getConfig(): \SocialiteProviders\Manager\Config { return new \SocialiteProviders\Manager\Config( env('AD_CLIENT_ID', 'some-client-id'), env('AD_CLIENT_SECRET'), url(env('AD_REDIRECT_PATH', '/azuread/callback')), ['tenant' => env('AD_TENANT_ID', 'common')] );} Socialite::driver('azure') ->setConfig(getConfig()) ->redirect();
Ensure to use the custom configuration when retrieving user details as well:
$socialUser = Socialite::driver('azure') ->setConfig(getConfig()) ->user();
Returned User Fields:
idnameemail
This package offers a robust and flexible solution for integrating Microsoft Azure AD with Laravel, providing both simplicity in common use cases and flexibility for more complex scenarios.