如何从其他应用程序调用基于角色的授权Web API?

时间:2015-10-28 13:09:27

标签: c# asp.net-mvc rest asp.net-web-api asp.net-web-api2

我有一个网络API,它为每个控制器和操作使用角色授权(例如:[Authorize(Roles="test")])。

这个API是一个独立的应用程序,没有实际的MVC站点,因此没有登录方法。

因此,假设我有一个单独的“学生”应用,需要显示学校所有当前学生的列表。在API中,我有一个基于角色的授权方法,可以从数据库中检索所有当前学生。如果获得授权,我如何才能从“学生”应用(位于同一域中)调用该API调用?

无论如何,我可以欺骗“学生”应用程序在其中一个授权角色下运行吗?我不想使用使用该网站的用户角色,因为只允许管理员执行这些API调用。

1 个答案:

答案 0 :(得分:0)

查看有关构建OAuth 2 authorization server的本教程。您可以使用授权代码授权来根据您的API验证您的学生MVC应用程序。

但是,构建OAuth服务器并不是一项简单的任务。您可以查看完整而安全的开源产品,例如IdentityServer,以帮助您实现大多数授权和身份验证逻辑。