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

Dataverse(TDS端点)非交互式登录:Laravel对接Dynamics表认证问题

实现Laravel通过服务器到服务器认证访问Dynamics TDS端点

可以实现服务器到服务器的非交互式认证,无需依赖带MFA的交互式登录,以下是两种适合Laravel场景的可行方案:

方案1:Azure AD服务主体认证

这是通用的非交互式认证方式,适用于任何部署环境:

  • 在Azure AD中创建一个服务主体,并为其分配Dynamics目标数据库的db_datareader权限(满足只读需求即可)。
  • 配置Laravel的config/database.php中的SQL Server连接:
    'dynamics' => [
        'driver' => 'sqlsrv',
        'host' => '你的TDS端点地址',
        'database' => '目标数据库名称',
        'username' => '服务主体的客户端ID',
        'password' => '服务主体的客户端密钥',
        'charset' => 'utf8',
        'prefix' => '',
        'prefix_indexes' => true,
        'options' => [
            PDO::SQLSRV_ATTR_FEDERATED_AUTHENTICATION => PDO::SQLSRV_FEDERATED_AUTHENTICATION_AAD,
        ],
    ],
    
  • 可以先用sqlcmd验证认证是否生效:
    sqlcmd -S <你的TDS端点> -d <数据库名> -U <服务主体客户端ID> -P <客户端密钥> -G
    
    (-G参数指定使用Azure AD认证)

方案2:Azure托管身份认证(仅限Azure部署场景)

如果你的Laravel应用部署在Azure资源(如App Service、VM、AKS等)上,推荐使用托管身份,无需管理密钥:

  • 为你的Azure资源启用系统分配/用户分配托管身份,并给该身份分配Dynamics数据库的db_datareader权限。
  • 配置Laravel数据库连接,无需用户名密码,直接通过托管身份认证:
    'dynamics' => [
        'driver' => 'sqlsrv',
        'host' => '你的TDS端点地址',
        'database' => '目标数据库名称',
        'charset' => 'utf8',
        'prefix' => '',
        'prefix_indexes' => true,
        'options' => [
            PDO::SQLSRV_ATTR_FEDERATED_AUTHENTICATION => PDO::SQLSRV_FEDERATED_AUTHENTICATION_AAD_MSI,
            // 若使用用户分配的托管身份,需添加以下参数
            // PDO::SQLSRV_ATTR_AAD_MSI_CLIENT_ID => '托管身份的客户端ID',
        ],
    ],
    

关键注意事项

  • 确保TDS端点支持Azure AD非交互式认证:大部分通过Azure暴露的Dynamics TDS端点默认支持,但如果是自建的端点,需确认已开启AAD认证配置。
  • 确保Laravel使用的pdo_sqlsrv扩展版本足够新(推荐5.9+),以支持AAD认证相关的PDO属性。
  • 编写Laravel模型时,直接指定Dynamics对应的表名即可:
    class DynamicsTable extends Model
    {
        protected $table = '你的Dynamics表名';
        // 若表无主键,可设置$primaryKey = null; $incrementing = false;
    }
    

内容的提问来源于stack exchange,提问作者Kennon Young

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 20:25:04