【发布时间】:2016-03-20 05:58:20
【问题描述】:
我创建了一个 mvc Web 应用程序,它使用 openid 向 Azure Ad 进行身份验证并获取声明和令牌。我正在与 Web Api 交互以进行业务交易。 Web Api 配置为 oauth Bearer 令牌。
我在 Azure Ad 中为 Web App 和 Web Api 创建了单独的 oauth 客户端。我可以使用 AuthenticationContext 从 Mvc 控制器获取 Web Api 的令牌,以发送到 Web Api 的请求。我需要知道如何将当前的用户声明也发送到 Web Api。 Web Api 中的声明没有来自 Web 应用的用户声明。
让我在这里提供更多背景信息。我创建了一个 MVC Web 应用程序和一个 Web Api 层。 MVC Web 应用程序配置为使用 Azure AD 使用 OpenID 身份验证,并且我已将 Web Api 层配置为使用 OAuth Bearer 令牌进行授权。 Web Api 层中的操作将通过 ajax 请求调用,并且承载令牌将添加到每个 Ajax 请求的标头中。在 Web 应用中对用户进行身份验证后,会在来自 Azure Ad 的声明之上向用户添加其他声明。我可以使用 AuthenticationContext.AcquireToken 为 Web Api 层创建令牌,但 Web Api 的令牌没有来自 Web 应用的用户信息。
【问题讨论】:
-
感谢您的回复。实际上,我并没有取得太大进展。 UserAssertion 需要一个属于 Web Api 的令牌,我无法获取用户密码来创建 UserCredential 对象。
标签: asp.net-mvc-4 asp.net-web-api oauth