You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel+Socialite实现Azure跨租户SSO登录问题求助

解决Laravel Socialite Azure跨租户登录问题

1. 调整Azure AD应用注册设置

  • 登录Azure门户,找到你的应用注册
  • 进入「概述」页面,点击「身份验证」选项卡
  • 在「支持的账户类型」部分,选择「任何组织目录中的用户(任何Azure AD目录 - 多租户)」(如果需要支持个人微软账户,可选包含个人账户的第三个选项)
  • 保存更改,等待几分钟让设置生效

2. 修改Laravel Socialite的Azure配置

  • 打开config/services.php,找到azure的配置块
  • 将tenant字段的值从你的租户ID/域名改为common——这个值是多租户场景专用配置,允许任何Azure AD租户的用户登录
    'azure' => [
        'client_id' => env('AZURE_CLIENT_ID'),
        'client_secret' => env('AZURE_CLIENT_SECRET'),
        'redirect' => env('AZURE_REDIRECT_URI'),
        'tenant' => 'common', // 替换原来的租户ID或域名
    ],
    

3. 验证并测试

  • 清除Laravel配置缓存:php artisan config:clear
  • 用跨租户用户测试登录,此时不会再出现“需要添加外部用户”的错误提示
  • 登录成功后,可通过Socialite返回的用户邮箱等信息,验证是否匹配系统内已有账号

额外注意点

  • 确保Azure应用的API权限至少添加了User.Read委派权限,且已完成管理员同意
  • 如果仍有问题,进入Azure应用的「企业应用」模块,找到对应应用后在「属性」中将「需要用户分配?」设为否,允许所有用户访问

内容的提问来源于stack exchange,提问作者Are Pedersen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:52:21