我有一个服务器端Blazor应用程序,在受AAD身份验证保护的Azure AppService上运行。授权的AD用户(管理员)可以访问和使用该应用程序。
我想要实现的是允许其他用户仅访问Blazor应用程序的特定页面。用户将从WPF应用程序访问该应用程序,他们本身不一定是AD用户,而是AD应用程序用户(守护程序app)。 WPF应用程序获取令牌(v2.0)并在带有授权标头(承载令牌)的浏览器中打开页面,但是Blazor不会在请求中解释auth标头,并威胁用户为未认证身份。应用注册应该已经正确设置,因为使用这种方法我可以访问API。
这种情况可能吗?如果是这样,有什么想法我可能做错了吗?
这种情况听起来似乎违反了一般性建议。
您实际上不应该从WPF应用程序执行“守护程序应用程序”身份验证,因为它不是机密的客户端应用程序(也不是守护程序应用程序)。它在用户设备上运行,将应用程序的凭据公开给任何用户。切勿从用户设备使用使用机密的身份验证流。
第二,Blazor应用程序通常不能接受来自应用程序的请求。您的WPF应用程序应调用API,而不是UI应用程序。
您应该拥有的是:
Blazor应用程序可能以相似的方式在其前端代码中使用了相同的API。但我认为您无法将其放在客户端应用程序和API的中间。