【发布时间】:2020-07-27 11:24:15
【问题描述】:
我必须创建一个具有这些要求的网络应用程序:
- SPA(角度 9)
- SPA 调用 Web API (Asp.net core 3.1)
- 我必须使用 Azure AD 身份验证(我创建了租户)
- 我必须使用 Microsoft Graph API
我阅读了不同的指南并研究了链接中的示例 azure ad auth samples 但它们不满足我的要求。 我阅读了使用桌面应用程序的本指南a web api that calls a web api,但在更改代码后,我收到了 401 未经授权的错误。
谁能帮帮我?
附: : 由于不合适的例子,我目前没有可执行代码
非常感谢
【问题讨论】:
-
据我了解,您的 Web API 受 Azure AD 保护,您的 Web API 将调用 Microsoft graph。对吗?
-
是的,它是正确的,现在我可以从 Angular 应用程序中获取带有 MSAL 的访问令牌,然后我调用我的 web api 并收到错误 500。这是错误
-
发送请求时出错。\r\n\r\n ---> System.ArgumentNullException: 值不能为空。 (参数“accountIdentifier”)\r\n 在 Microsoft.Identity.Web.TokenAcquisition.GetAccessTokenOnBehalfOfUserFromCacheAsync(IConfidentialClientApplication 应用程序,字符串 accountIdentifier,IEnumerable
1 scopes, String loginHint, String tenant)\r\n at Microsoft.Identity.Web.TokenAcquisition.GetAccessTokenOnBehalfOfUserFromCacheAsync(IConfidentialClientApplication application, ClaimsPrincipal claimsPrincipal, IEnumerable1 范围,字符串租户)\r\n 在 -
嗨@Salvo12,我有同样的要求。你找到解决方案了吗?
-
@shyambabu 我有一个示例项目,其中 Angular SPA 和 ASP.Net Web API 在使用 Azure AD 进行身份验证后协同工作(并且 Angular 分别调用 Graph API)。如果您想从 Web API 调用 Graph API,您可以使用 Nan Yu 提到的“代表”流程。 github.com/superman-lopez/AzureAd_AspNet_Angular
标签: angular asp.net-core azure-active-directory microsoft-graph-api asp.net-core-webapi