我有一个SPA,它使用msal.js针对在Application Registration Portal注册的应用程序对用户进行身份验证。它成功检索了一个令牌,目前一切都很好。使用SPA对SPA进行身份验证,然后在Web API中使用令牌
然后,我有一个ASP.NET Web API安装程序,它应该使用来自SPA的令牌代表用户向Microsoft Graph发出请求,这是我遇到问题的地方。
到目前为止,我已经在API上建立了一个OWIN中间件,它在向图表发出请求之前应验证令牌,但无论我尝试什么,它总是无效的。我试过UseOpenIdConnectAuthentication
,UseOAuthBearerAuthentication
和UseJwtBearerAuthentication
但仍然没有成功。 SPA和API使用相同的客户端ID,发行者设置为https://login.microsoftonline.com/common/v2.0
。
我已经阅读了许多SO问题和来自MS的示例,但似乎没有解决这个特定的设置问题。据this我至少认为这是可能的?
这里是我使用的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" />
点多,是它甚至可以这样设置?会喜欢一些关于我做错了什么的指针。
提前致谢!
原来我讨厌搞乱了API中的令牌验证,但是你的链接是正确设置On-Behalf-Of流程的主要帮助!非常感谢! – awnton