gpt4 book ai didi

c# - 使用 IWA 从 Excel 加载项访问 Azure AD

转载 作者:行者123 更新时间:2023-12-03 06:52:32 24 4
gpt4 key购买 nike

我正在尝试从 Excel 加载项解决方案访问 Azure 应用程序服务上托管的端点。我正在使用集成 Windows 身份验证来生成访问 token 。一切工作正常,我可以使用加载项从 azure 访问我需要的内容,但今天当我再次测试加载项时突然出现此异常:Microsoft.Identity.Client.MsalClientException:有解析来自端点的 WS-Trust 响应时出错。如果您的 ADFS 配置存在问题,则可能会发生这种情况。

调试后我发现此代码引发了异常

IPublicClientApplication app = PublicClientApplicationBuilder.Create(configuration.ClientID)
.WithAuthority(new Uri(configuration.Authority))
.Build();
AcquireTokenByIntegratedWindowsAuthParameterBuilder authenticationResult = app.AcquireTokenByIntegratedWindowsAuth(new string[] { configuration.Audience });
configuration.AccessToken = await authenticationResult.ExecuteAsync();

另一方面,当我尝试使用从控制台应用程序获取访问 token 的同一库时,一切正常。

那么什么可能会阻止 Excel 加载项本身获取 token 。

最佳答案

使用 AcquireTokenByIntegratedWindowsAuth 方法时可能会出现此错误。

  1. 如果联合用户的安全 token 未经身份验证或授权,或者用户输入错误的凭据(密码),或者用户甚至不存在。
  2. 如果使用自己的帐户,请确保获得管理员同意并且未启用 2FA。

错误代码“parsing_wstrust_response_failed”也可能是由于 ADFS 环境中的配置问题造成的。根据Integrated Windows Authentication · troubleshooting · GitHub

一些问题是:

  1. 根据您的情况,请检查代理或配置问题是否阻止 NTLM 协议(protocol),这是端点为 Windows 身份验证带来的挑战。
  • 解决方法:尝试升级当前的 .Net 版本或使用自己的 HttpClient。
  • 另请检查 IWA 是否可以使用该帐户,或者 IWA 政策是否正在停止自动 IWA 身份验证
    • 由于配置错误或允许 channel 绑定(bind) token 或 Internet Explorer 配置而记录的错误服务主体名称 (SPN) 也可能是导致此错误的其他原因。

    • 您可以使用 PowerShell cmdlet 更改 channel 绑定(bind)设置

      设置 ADFSProperties -ExtendedProtectionTokenCheck

    另外,请确保在 Internet Explorer 属性中检查/启用集成 Windows 身份验证,方法是转至 Internet 选项 -> 高级 -> 安全

    enter image description here

    引用文献:

    1. 请检查此 AD FS Troubleshooting - Integrated Windows Authentication
    2. azure - MSAL error "parsing_wstrust_response_failed" AcquireTokenByIntegratedWindowsAuth - Stack Overflow

    关于c# - 使用 IWA 从 Excel 加载项访问 Azure AD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73434125/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com