桌面应用程序打开受 AD 身份验证保护的 server-side Blazor 页面

Desktop app opening a server-side Blazor page protected by AD auth

我在受 AAD 身份验证保护的 Azure AppService 上有一个 server-side Blazor 应用 运行。授权的 AD 用户(管理员)能够访问和使用该应用程序。

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

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

这种情况听起来与一般建议相去甚远。

您真的不应该从 WPF 应用程序进行 "daemon app" 身份验证,因为它不是机密客户端应用程序(也不是守护程序应用程序)。它在用户设备上运行,向任何用户公开应用程序的凭据。 绝不能从用户设备使用使用机密的身份验证流程。

其次,Blazor 应用程序通常不是可以接受来自应用程序的请求的应用程序。 您的 WPF 应用程序应该调用 API,而不是 UI 应用程序。

你应该拥有的是:

  1. WPF 应用程序对用户进行身份验证并代表他们为您的 API
  2. 获取令牌
  3. WPF 应用使用访问令牌
  4. 调用API
  5. API 验证访问令牌,授权用户和应用访问,returns 数据

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

的中间。