Shawinigan SSO 工具

0.7 2024-07-25 17:43 UTC

This package is auto-updated.

Last update: 2024-09-25 17:56:18 UTC


README

  1. 运行 composer require shawinigan/sso 将其包含到项目中。
  2. 运行 php artisan vendor:publish --provider="Shawinigan\Sso\LaravelAzureProvisioning\AzureProvisioningProvider"
  3. 运行 php artisan vendor:publish --provider="Shawinigan\Sso\LaravelAzureSocialite\AzureSocialiteServiceProvider"
  4. 运行 npm install
  5. 运行 npm run build
  6. 运行 npm run dev
  7. 运行 php artisan migrate

配置 (Laravel)

  1. 打开 config/azureprovisioning.php 调整包的配置

    如果文件不存在,请确保您已运行 php artisan vendor:publish --provider="Shawinigan\Sso\LaravelAzureProvisioning\AzureProvisioningProvider"

  2. 根据需要修改配置。所有字段都已注释,并应提供足够的说明,说明它们如何改变此包的工作方式。

  3. 如果您不想配置组,可以完全删除(或注释)Groups键。

  4. 打开 config/shawi-sso.php 调整包的配置

  5. 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
],
  1. 添加提供者事件监听器

配置包的监听器以监听 SocialiteWasCalled 事件。

将事件添加到 app/Providers/EventServiceProvider 中的 listen[] 数组。请参阅基本安装指南以获取详细说明。

protected $listen = [
    \SocialiteProviders\Manager\SocialiteWasCalled::class => [
        \Shawinigan\Sso\LaravelAzureSocialite\AzureExtendSocialite::class.'@handle',
    ],
];
  1. ### 将 AzureUser 特性添加到用户模型
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'
    ];

配置 (Azure)

  1. 登录到 Azure Active Directory

  2. 选择 所有服务 > 企业应用程序

  3. 选择 新建应用程序

  4. 选择 创建自己的应用程序

  5. 提供您的应用程序名称,并选择选项 "集成您在图库中找不到的任何其他应用程序(非图库)"

  6. A) 配置所有用户/组

    • 在属性页面上,确保选项 "用户分配是否需要?" 设置为

--OR--

  1. B) 配置选定用户/组

    • 在属性页面上,确保选项 "用户分配是否需要?" 设置为
    • 在用户和组页面上,添加您希望配置的用户和组
  2. 导航到配置页

  3. 将配置模式设置为 自动

  4. 在管理员凭据部分设置租户 URL 为您的域名(带有 https://)后跟 /scim/v2.0/(或您在 routePrefix 配置选项中设置的值)。例如 https://laravel-azure-provisioning.com/scim/v2.0/

  5. TODO: 提供由 ... 生成的密钥?

  6. 测试配置后保存设置

  7. 展开映射部分,删除应用程序不需要的任何映射,并添加应用程序缺少且必需的映射。

  8. 再次保存设置

注意:如果您只想配置设置组内的用户,请按照 6 B) 中的步骤操作,并添加您需要的组。然后,只有组成员将被配置。

此存储库基于:https://github.com/RobTrehy/LaravelAzureProvisioning https://github.com/SocialiteProviders/Microsoft-Azure