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

本地Python应用对接Azure OIDC的可行性及客户端密钥存储咨询

问题1:本地Python脚本是否可以触发Azure AD的OIDC认证?

完全可行,你可以使用Azure官方提供的msal Python库实现该能力,适配你的xlwings触发场景推荐选择带PKCE校验的授权码流:

  • 认证流程触发后,msal会自动唤起系统默认浏览器跳转Azure AD登录页,用户完成身份验证后,认证结果会自动回调到本地临时端口的监听服务,Python脚本即可直接获取到访问令牌、刷新令牌
  • 整个流程符合OIDC安全规范,无需你自行处理账号密码的采集、传输逻辑,无代码基础的终端用户仅需完成常规的账号登录操作即可,交互门槛极低
  • 支持令牌自动刷新,用户只要完成一次登录,后续一段时间内点击Excel按钮无需重复验证
问题2:该场景下客户端密钥的安全存储方案

首先说明:如果你使用上述带PKCE的授权码流,本身不需要使用客户端密钥,从根源上规避了密钥存储的安全风险。如果你的Azure AD应用注册配置强制要求使用客户端密钥,可按安全优先级选择以下方案:

  • 最高优先级:调用系统原生凭据存储能力。Windows下使用wincred接口、macOS下使用系统钥匙串,你可以通过Python的keyring库实现跨平台的统一调用,密钥会被系统级加密存储,仅当前登录的操作系统用户有权限读取,不会明文出现在代码、配置文件中
  • 次优先级:存储在用户专属目录下的加密配置文件中。将密钥用AES对称加密后,存放在当前用户的个人目录(而非项目共享目录)下,加密密钥可使用当前用户的SID、设备硬件标识等和用户/设备绑定的信息生成,避免配置文件泄露后密钥被破译
  • 禁止行为:不要将密钥硬编码在脚本中,不要存放在项目目录下的明文配置文件中,也不要将密钥打包到分发的xlwings应用包内

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:15:04