我有一个 SPA,它使用msal.js针对在Application Registration Portal 注册的应用程序对用户进行身份验证。它成功地检索了一个令牌,到目前为止一切都很好。
然后我有一个 ASP.NET Web API 设置,它应该使用来自 SPA 的令牌代表用户向 Microsoft Graph 发出请求,这就是我遇到麻烦的地方。
到目前为止,我已经在 API 上设置了一个 OWIN 中间件,它应该在向图形发出请求之前验证令牌,但无论我尝试什么,它总是无效的。我试过了UseOpenIdConnectAuthentication
,UseOAuthBearerAuthentication
但UseJwtBearerAuthentication
仍然没有成功。SPA 和 API 使用相同的客户端 ID,并且颁发者设置为https://login.microsoftonline.com/common/v2.0
.
我已经阅读了很多来自 MS 的 SO 问题和示例,但似乎没有任何东西可以解决这个特定的设置。根据这个我至少认为这是可能的?
这是我正在使用的 nuget 包:
<package id="Owin" version="1.0" targetFramework="net452" />
<package id="Microsoft.Owin" version="3.1.0" targetFramework="net452" />
<package id="Microsoft.Owin.Security" version="3.1.0" targetFramework="net452" />
<package id="Microsoft.Owin.Security.Jwt" version="3.1.0" targetFramework="net452" />
<package id="Microsoft.Owin.Security.OAuth" version="3.1.0" targetFramework="net452" />
<package id="Microsoft.Owin.Security.OpenIdConnect" version="3.1.0" targetFramework="net452" />
我是否使用了正确的软件包,甚至可以这样设置吗?会喜欢一些关于我做错了什么的指示。
提前致谢!