将用户令牌从 ASP.NET Core 转发到 Azure 移动应用

Forward user token from ASP.NET Core to Azure Mobile App

我们有以下已注册的 Azure Active Directory 应用程序

和三个应用程序

什么有效:用户可以在 Xamarin 应用程序内部进行身份验证并可以调用 Web API。这里的每件事都有效。 用户还可以登录到 Web 应用程序(使用 OpenID 中间件与 Azure Active Directory 端点和重定向),但是从 Web 应用程序到 Web 的调用 API 失败:未经授权。

我们在 ASP.NET Web 应用程序中传递什么或如何传递来自经过身份验证的用户的凭据或令牌?我们找不到任何工作样本。

我们是否必须在 AAD 注册应用程序之间配置任何信任? 此时,Xamarin 应用程序和 Web 应用程序对 Web 有了信任 API。反之则不然。

我们认为 Microsoft 只有一个人真正(或试图)记录了 Azure 移动应用程序,但他不再是 Microsoft 员工了。

Do we have to configure any trusts between the AAD registered applications?

我们需要将网络 API 应用授权给网络应用,如下图所示。通常,当我们用token调用webAPI时,它会验证token中的声明和签名。因此,对于 未经授权的问题 ,请通过从 this site 解码来检查声明。您应该确保 aud 声明与网络 API 项目等中配置的受众相匹配

如果不匹配,您应该使用 App Id URI 作为资源获取 Web API 令牌。

如果问题仍然存在,请显示代码如何获取令牌和保护网络 API。

此外,这里有两个关于使用 Azure AD 调用保护网络 API 的链接:

active-directory-dotnet-webapp-webapi-openidconnect-aspnetcore

active-directory-dotnet-webapp-webapi-openidconnect