如何将Yeoman Office SSO客户端密钥从凭据管理器迁移至Azure或环境变量
Outlook外接程序SSO客户端密钥配置方案
第一步:从本地Credential Manager导出客户端密钥
- 打开Windows系统的凭据管理器(直接在开始菜单搜索即可打开),选择「Windows 凭据」分类
- 找到名称格式为
office-add-in-sso-<你的AAD客户端ID>的凭据条目,点击展开 - 点击「显示」按钮,验证本地账户权限后即可看到明文的客户端密钥,复制该值备用
第二步:按部署需求配置密钥
方案1:写入外接程序本地环境变量
在项目根目录的.env文件中新增配置项即可:
SSO_CLIENT_SECRET=你刚复制的客户端密钥
注意:
.env文件请添加到.gitignore规则中,不要提交到代码仓库,避免密钥泄露。
方案2:配置到Azure托管实例的环境变量
- 进入你托管外接程序的Azure应用服务实例,左侧菜单找到「设置」-「环境变量」
- 在「应用程序设置」标签页下点击「添加」,新增变量:
- 键:
SSO_CLIENT_SECRET - 值:你复制的客户端密钥
- 键:
- 点击「保存」后重启应用服务,程序运行时可直接读取该环境变量。
方案3:存储到Azure Key Vault(生产级安全方案)
- 在Azure中创建Key Vault实例,将导出的客户端密钥作为机密存入Key Vault
- 为你的外接程序托管实例开启系统分配的托管标识,给该标识分配Key Vault的「机密读取者」权限
- 程序中调用Key Vault SDK读取机密值,完全避免密钥明文暴露在配置中。
替代方案:直接在AAD中重新生成密钥
如果不需要保留本地生成的旧密钥,可直接生成新密钥省去导出步骤:
- 进入Azure Portal的「Azure Active Directory」-「应用注册」,找到Yeoman生成的外接程序对应的AAD应用
- 左侧菜单选择「证书和密码」,点击「新建客户端密码」,设置有效期后点击创建
- 立刻复制生成的新密钥(离开页面后无法再查看),按上述方案配置即可。
注意:生成新密钥后,本地存储的旧密钥会失效,如果本地还要做开发测试,需要重新运行
npm run configure-sso或者手动更新本地凭据管理器中的值。
内容的提问来源于stack exchange,提问作者megehold
相关产品推荐
相关产品推荐

