0

我创建了两个简单的应用程序,一个是MVC网站,另一个是MVC API。这些网站从API中消耗了一些方法。将令牌从Web应用程序传递给api api(用户认证)

我已经将Azure,'App Services',网站部署为Web App,将Api作为Api App部署。在这之前,我还没有实现任何身份验证,并且工作正常。

现在,我希望这两个资源都使用身份验证。因此,从Azure门户网站启用WebApp和ApiApp的身份验证。 在Web应用程序我设置的值: 应用服务的身份验证:ON 行动未通过身份验证时要采取:登录使用Microsoft帐户 我配置了一个微软帐户

有关API应用程序我设置了相同的值与要采取的行动的例外,我将其设置为'允许请求(无操作)'。在Api App代码中,我在我的控制器上设置了[授权]属性。

现在,当我转到WebApp时,我被重定向到Microsoft帐户登录页面,在那里我可以登录,并看到该应用程序。这很好。 但是,我无法以任何方式将这些凭据传递给我的Api应用程序。是否有可能创建(或获取)令牌并将其传递给Api应用程序?所以在Api App中,我会自动进行身份验证,并从那里获取我需要的用户数据?

回答

1

您可以在webapi端使用OAuth进行基于承载令牌的身份验证。配置你的web api来发布令牌。一旦在mvc应用程序中进行了身份验证,请将身份的请求发送到api服务器 - grant_type = password & username = uname & password = pwd。一旦获得令牌,您需要将其存储在cookie /本地存储中,然后在每次向web api发送请求时,都需要添加具有此令牌值的授权标头。