Windows 集成身份验证 Azure AD 和 WinForms
Windows integrated authentication Azure AD and WinForms
我们有一个非常大的 Winforms 项目,我们需要将 SSO 与 AAD 结合使用来对外部 API 服务进行 API 调用。
我正在使用 MSAL 和方法:
app.AcquireTokenSilent
app.AcquireTokenByIntegratedWindowsAuth
但是,我收到错误消息:
Microsoft.Identity.Client.MsalClientException: Integrated Windows Auth is not supported for managed users. See https://aka.ms/msal-net-iwa for details.
at Microsoft.Identity.Client.Internal.Requests.IntegratedWindowsAuthRequest
使用方法:
app.AcquireTokenInteractive
应用程序会提示用户 select 要使用什么帐户(提示显示已连接到 windows)并且我不需要输入密码,在我之后单击它唱歌的用户并获取令牌。
在我获得令牌并使用 PublicClientApp.UserTokenCache
保存下一次登录后,即使令牌已过期,我也不需要 select 用户自动登录的帐户。
我想避免第一个提示。
我已经尝试了 2 个选项(none 有效):
- 在 Windows AD 中创建的用户,然后同步到 AAD
- 在 AAD 中创建然后在 WindowsAD
中创建的用户
附加信息:
- 将应用程序视为 public 客户端在应用程序注册中标记为是。
- 我使用与 Web 应用程序 (SPA) 相同的应用程序注册并使用 Microsoft Edge 我可以在没有用户交互的情况下登录,它会自动登录
问题仅出在 Winforms 应用程序上
谢谢。
Azure AD MSAL 文档未涵盖它,但要使 Windows 集成身份验证与 MSAL 一起使用,需要在 hydrid AAD 设置中提供并设置以下任何一项。仅 AAD 连接设置将不起作用。
原来是库中的一个bug,最新版本已经解决了
https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/1737
4.20版本解决
我们有一个非常大的 Winforms 项目,我们需要将 SSO 与 AAD 结合使用来对外部 API 服务进行 API 调用。
我正在使用 MSAL 和方法:
app.AcquireTokenSilent
app.AcquireTokenByIntegratedWindowsAuth
但是,我收到错误消息:
Microsoft.Identity.Client.MsalClientException: Integrated Windows Auth is not supported for managed users. See https://aka.ms/msal-net-iwa for details.
at Microsoft.Identity.Client.Internal.Requests.IntegratedWindowsAuthRequest
使用方法:
app.AcquireTokenInteractive
应用程序会提示用户 select 要使用什么帐户(提示显示已连接到 windows)并且我不需要输入密码,在我之后单击它唱歌的用户并获取令牌。
在我获得令牌并使用 PublicClientApp.UserTokenCache
保存下一次登录后,即使令牌已过期,我也不需要 select 用户自动登录的帐户。
我想避免第一个提示。
我已经尝试了 2 个选项(none 有效):
- 在 Windows AD 中创建的用户,然后同步到 AAD
- 在 AAD 中创建然后在 WindowsAD 中创建的用户
附加信息:
- 将应用程序视为 public 客户端在应用程序注册中标记为是。
- 我使用与 Web 应用程序 (SPA) 相同的应用程序注册并使用 Microsoft Edge 我可以在没有用户交互的情况下登录,它会自动登录
问题仅出在 Winforms 应用程序上
谢谢。
Azure AD MSAL 文档未涵盖它,但要使 Windows 集成身份验证与 MSAL 一起使用,需要在 hydrid AAD 设置中提供并设置以下任何一项。仅 AAD 连接设置将不起作用。
原来是库中的一个bug,最新版本已经解决了
https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/1737
4.20版本解决