桌面应用程序打开受AD身份验证保护的服务器端Blazor页面

时间:2020-06-01 11:16:23

标签: azure-active-directory blazor daemon adal blazor-server-side

我有一个服务器端Blazor应用程序,在受AAD身份验证保护的Azure AppService上运行。授权的AD用户(管理员)可以访问和使用该应用。

我想要实现的是允许其他用户仅访问Blazor应用程序的特定页面。用户将从WPF应用程序访问该应用程序,他们本身不一定是AD用户,而是AD应用程序用户(守护程序应用程序)。 WPF应用程序获取令牌(v2.0),并在带有授权标头(承载令牌)的浏览器中打开页面,但是Blazor不会在请求中解释auth标头,并威胁用户为未认证身份。 应用注册应该已经正确设置,因为使用这种方法我可以访问API。

这种情况可能吗?如果是这样,我有什么想法可能做错了吗?

1 个答案:

答案 0 :(得分:0)

这种情况听起来似乎违反了一般性建议。

您实际上不应该从WPF应用程序执行“守护程序应用程序”身份验证,因为它不是机密的客户端应用程序(也不是守护程序应用程序)。它在用户设备上运行,将应用程序的凭据公开给任何用户。 不得从用户设备使用使用机密的身份验证流。

第二,Blazor应用程序通常不能接受来自应用程序的请求。 您的WPF应用程序应该调用API,而不是UI应用程序。

您应该拥有的是:

  1. WPF应用验证用户身份并代表他们获取您API的令牌
  2. WPF应用使用访问令牌调用API
  3. API验证访问令牌,授权用户和应用访问,返回数据

Blazor应用程序可能以相似的方式在其前端代码中使用了相同的API。 但我认为您无法将其放在客户端应用程序和API的中间。