Windows集成身份验证Azure AD和WinForms

时间:2020-04-01 04:10:51

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

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

我正在使用MSAL及其方法:

app.AcquireTokenSilent
app.AcquireTokenByIntegratedWindowsAuth

但是,我得到了错误:

Microsoft.Identity.Client.MsalClientException:受管用户不支持集成Windows Auth。有关详细信息,请参见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应用程序

谢谢。 ?

1 个答案:

答案 0 :(得分:0)

Azure AD MSAL文档未涵盖此内容,但要使Windows Integrated Auth与MSAL一起使用,需要提供以下任意一项,并在液压AAD设置中进行设置。仅仅AAD Connect安装程序将无法工作。

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