【问题标题】:Windows integrated authentication Azure AD and WinFormsWindows 集成身份验证 Azure AD 和 WinForms
【发布时间】:2020-07-12 18:30:25
【问题描述】:

我们有一个非常大的 Winforms 项目,我们需要使用 SSO 和 AAD 来对外部 API 服务进行 API 调用。

我正在使用 MSAL 和方法:

app.AcquireTokenSilent
app.AcquireTokenByIntegratedWindowsAuth

但是,我得到了错误:

Microsoft.Identity.Client.MsalClientException:托管用户不支持集成 Windows 身份验证。详情请见https://aka.ms/msal-net-iwa

在 Microsoft.Identity.Client.Internal.Requests.IntegratedWindowsAuthRequest

使用方法:

app.AcquireTokenInteractive

应用程序会提示用户选择要使用的帐户(提示显示已连接到 Windows),并且我不需要输入密码,在我单击它唱歌的用户并获取令牌后立即.

在我获得令牌并使用PublicClientApp.UserTokenCache 保存后,即使令牌已过期,我也无需选择用户自动登录的帐户。

我想避免第一个提示。

我已经尝试了 2 个选项(均无效):

  1. 在 Windows AD 中创建用户,然后同步到 AAD
  2. 在 AAD 中创建的用户,然后在 Windows AD 中创建

附加信息:

  • 将应用程序视为公共客户端在应用程序注册中标记为是。 ​
  • 我在 Web 应用程序 (SPA) 中使用了相同的应用注册,并使用 Microsoft Edge 我无需用户交互即可登录,它会自动登录

问题仅在于 Winforms 应用程序

谢谢。 ????

【问题讨论】:

    标签: winforms azure-active-directory single-sign-on msal jwt-auth


    【解决方案1】:

    Azure AD MSAL 文档未涵盖它,但要使 Windows 集成身份验证与 MSAL 一起使用,需要在 Hydrid AAD 设置中提供并设置以下任一选项。仅 AAD Connect 设置是行不通的。

    1. Azure Active Directory Seamless Single Sign-On
    2. Federation with ADFS

    【讨论】:

    • 您好,感谢您的回答,@Kalyan-Krishna。我已经检查了这个无缝登录配置>>无缝单点登录已启用 1 域,我猜 MSAL 库中存在一个错误,因为它在用户第一次单击其名称并且连续登录工作时工作即使以前的令牌已过期,也像魅力一样,我没有尝试使用 ADFS,因为这不是公司的路径。
    【解决方案2】:

    原来是最新版本的库中的一个错误已解决。

    https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/1737

    在 4.20 版本中解决

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-18
    • 2019-05-29
    • 1970-01-01
    • 2017-12-15
    • 2010-12-08
    • 2019-06-25
    • 1970-01-01
    相关资源
    最近更新 更多