blockshiftnetwork / socialite-azure-oauth
使用Laravel的Socialite允许多连接到Azure AD
Requires
- guzzlehttp/guzzle: >6.3
- laravel/framework: >5.5
- laravel/socialite: ^5.0
README
灵感来自metrogistics/laravel-azure-ad-oauth,并更新以允许多Azure连接和更好的覆盖。
安装
发布配置并覆盖任何默认设置
php artisan vendor:publish
根据您的配置文件中定义的添加必要的环境变量。默认情况下
AZURE_AD_CLIENT_ID=XXXX
AZURE_AD_CLIENT_SECRET=XXXX
用法
创建一个控制器并导入AzureOAuthControllerTrait特质。这将为您提供Socialite OAuth的方法。然后在配置文件中将您的控制器命名空间添加到key auth_controller
在设置您的Azure AD之后(见下文),您需要做的就是将用户指向/login/microsoft(可配置)路由进行登录。
登录后,用户将被重定向并触发您自己的控制器中的handleOAuthUser()方法。
Azure AD设置
-
导航到
Azure Active Directory->应用注册。 -
创建一个新的应用
-
选择一个名称
-
选择所需的受支持账户类型值(由您决定)
-
在平台配置中,选择"客户端应用程序(Web、iOS、Android、桌面+设备)"
-
点击"创建"
-
点击新创建的应用。
-
"应用程序ID"是您需要用于
AZURE_AD_CLIENT_ID环境变量的值。 -
点击"重定向URI"。您需要在此处为您的应用程序白名单重定向路径。通常为
https://domain.com/login/microsoft/callback。点击"保存" -
在"API权限"选项卡中选择您应用程序所需的权限。
-
在清单中添加任何必要的角色
-
点击"清单"选项卡。
-
使用以下格式按需添加角色
"appRoles": [ { "allowedMemberTypes": [ "User" ], "displayName": "Manager Role", "id": "08b0e9e3-8d88-4d99-b630-b9642a70f51e",// Any unique GUID "isEnabled": true, "description": "Manage stuff with this role", "value": "manager" } ], -
点击"保存"
-
在"证书和密钥"选项卡中,点击"新的客户端密钥",输入描述(例如"应用程序密钥")。将持续时间设置为"永不过期"。点击"保存"。复制整个密钥。这不会再次显示。您需要此值用于
AZURE_AD_CLIENT_SECRET环境变量。 -
返回Azure活动目录,并点击"企业应用"链接。然后点击应用程序名称
-
在"属性"选项卡下,启用用户登录。使用户分配成为必需。点击"保存"。
-
在"用户和组"选项卡下,按需添加用户及其角色。
-
额外:配置发布域以验证您的应用程序: https://docs.microsoft.com/fr-be/azure/active-directory/develop/howto-configure-publisher-domain#configure-publisher-domain-using-the-azure-portal