如何在BizTalk 2020中创建并部署SSO应用
BizTalk 2020 SSO 应用部署与调用方案
部署实现路径
你可以根据团队技术栈选择以下两种方案中的任意一种:
- 复用原有BTDF逻辑:BTDF已经支持BizTalk 2020,无需完全替换原有部署体系。只需要在VSTS构建代理上安装适配BizTalk 2020的BTDF版本,修改项目中
.btdfproj文件的TargetBizTalkVersion节点值为2020,原有SSO应用的配置规则完全可以沿用,直接把BTDF的构建、部署命令嵌入VSTS流水线步骤即可。 - 原生PowerShell脚本实现:如果要完全弃用BTDF使用BizTalk原生能力,可直接调用SSO官方公开的管理接口编写PowerShell脚本,完成SSO应用创建、配置写入操作,将脚本作为VSTS部署环节的执行步骤即可,多环境的配置参数可以存储在VSTS的环境变量库中,不同环境部署时自动拉取对应值注入脚本。
核心操作示例
SSO 应用创建与配置写入PowerShell脚本示例
# 加载SSO客户端程序集 Add-Type -Path "C:\Program Files\Common Files\Enterprise Single Sign-On\Microsoft.BizTalk.Interop.SSOClient.dll" $ssoConfigStore = New-Object Microsoft.BizTalk.Interop.SSOClient.ISSOConfigStore # 新建SSO应用,ENV_TYPE为VSTS注入的环境标识,比如Dev/UAT/Prod $appName = "你的业务应用名_$env:ENV_TYPE" $ssoConfigStore.CreateApplication($appName, "业务应用配置存储", [Microsoft.BizTalk.Interop.SSOClient.SSO_FLAG_APP_ALLOW_USERS], 2, "配置项名", "配置项值") # 写入多组配置值,所有变量均从VSTS环境变量库读取 $configKeys = @("ApiEndpoint", "DbConnectionStr", "Timeout") $configValues = @($env:API_ENDPOINT, $env:DB_CONN_STR, $env:TIMEOUT) $ssoConfigStore.SetConfigInfo($appName, "Default", $configKeys, $configValues)
Orchestration 读取SSO变量实现
- 原有BizTalk 2013 R2版本中读取SSO的代码逻辑可完全复用,BizTalk 2020的SSO接口完全向下兼容,无需调整核心逻辑,只需要确保Orchestration引用的
Microsoft.BizTalk.Interop.SSOClient程序集版本对应BizTalk 2020的运行时版本即可。 - 也可以封装通用SSO读取帮助类库,在所有Orchestration中统一调用,避免重复编码,多环境下只需要通过配置传入对应环境的SSO应用名即可自动读取对应配置。
多环境部署注意事项
- 不同环境的SSO应用名建议增加环境后缀区分,避免跨环境配置串扰,敏感配置值建议存储在VSTS的机密变量库中,部署过程中不会明文输出到日志,保障信息安全。
- VSTS部署代理的运行账号需要提前授予SSO管理员权限,确保脚本执行时有权限调用SSO接口创建应用、写入配置。
- 部署前可新增校验步骤,判断对应SSO应用是否已存在,存在则调用更新接口,不存在则走创建逻辑,避免重复创建报错。
内容的提问来源于stack exchange,提问作者Parveen
相关产品推荐
相关产品推荐

