如何从另一个应用程序调用我的基于角色的授权 Web API?

Posted

技术标签:

【中文标题】如何从另一个应用程序调用我的基于角色的授权 Web API?【英文标题】:How do I call my role-based authorized web API from another app? 【发布时间】:2016-01-28 06:41:52 【问题描述】:

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

这个 API 是一个独立的应用程序,没有真正的 MVC 站点,所以没有登录方法。

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

我是否可以欺骗“Students”应用程序以在授权角色之一下运行?我不想使用使用该站点的用户的角色,因为只允许管理员执行这些 API 调用。

【问题讨论】:

你是如何认证的? @Alex OAuth 2(特别是谷歌) 【参考方案1】:

查看有关构建OAuth 2 authorization server 的教程。您可以使用授权代码授权来针对您的 API 对学生 MVC 应用进行身份验证。

但是,构建 OAuth 服务器并不是一项简单的任务。你可以看看像IdentityServer这样一个完整且安全的开源产品来帮助你实现大部分的授权和认证逻辑。

【讨论】:

以上是关于如何从另一个应用程序调用我的基于角色的授权 Web API?的主要内容,如果未能解决你的问题,请参考以下文章

使用 IdentityServer4 对 Web API 进行基于角色的授权

如何在 AngularJS 中处理基于角色的授权?

asp.net web.config中基于多个角色的文件夹授权

如何使用 Web Api Asp.Net Core 实现基于声明的授权?

如何使用 Identity Server 4 (JWT) 进行基于角色的 Web API 授权

是否可以在没有 web.sitemap 的情况下进行基于 ASP.NET 角色的表单身份验证和授权?