当前位置: 首页 > 知识库问答 >
问题:

MVC控制器中用于访问Web API的承载令牌

公良英资
2023-03-14

我有两个项目:MVC、Web Api

在Web API项目中,我使用的是无记名令牌身份验证。此令牌在24小时后过期。在我的MVC项目中,我想通过MVC控制器(服务器到服务器)调用Web api项目。最好的方法是什么:

  1. 获取令牌
  2. 24小时后(或任何到期时间)续订令牌
  3. 调用安全操作方法

我的想法是使用WebClient,但我不确定是否有更好的方法。

我也不打算使用无记名代币。但需要一种可靠的方式来验证服务器到服务器和客户端(angularjs)到服务器(api)的身份。

共有1个答案

何涵衍
2023-03-14
  • 您的web服务器使用共享机密连接到授权服务器(在本例中,包括在web API主机中)
  • 当用户正在使用您的web应用程序并且需要访问web API时,您的应用程序会将浏览器重定向到auth server,在那里它会通知用户哪些资源(作用域)正在尝试访问应用程序,并请求批准。此重定向包括url回调

令牌有关于过期时间的信息,通常包括一个刷新令牌。您可以使用刷新令牌在过期前将其呈现给AS,这样您就不需要请求新令牌

不同的流必须在服务器中以不同的方式配置。

“服务器到服务器”的第一个流使用共享密钥将berare令牌直接返回给服务器应用程序。在这种情况下,不需要用户批准,因为此过程中没有用户参与

第二个流程,从(不受信任的)客户端到服务器需要用户的授权,因为您的客户端应用程序将代表他访问用户(资源所有者)的一些资源,因此需要他的批准。

对于受信任的客户端,还有其他流,但它们不适用于这种情况。

所有这些事情的一个典型实现是dotnetopenauth。它有很好的文档记录,它为您处理所有细节。

 类似资料:
  • 使用CBAC和RBAC的主要好处是什么?什么时候使用CBAC更好,什么时候使用RBAC更好? 我试图理解CBAC模型的一般概念,但总体思路对我来说仍然不清楚。

  • 我正在尝试调用我已被指示的API: 这需要一个授权头:承载访问令牌。 我有承载访问令牌,并尝试通过邮递员,并通过C#使用WebRequest,没有任何效果。 在Postman中,我将方法设置为GET,将授权设置为No Auth,在Headers选项卡上,我尝试添加一个标题,如下所示: 标头:“授权” 值:“我的令牌” 我也尝试过 标题:“Bearer”值:“mytoken” 也 标头:“授权” 值

  • 容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables 防火墙来进行管理和实现。iptables 是 Linux 上默认的防火墙软件,在大部分发行版中都自带。 容器访问外部网络 容器要想访问外部网络,需要本地系统的转发支持。在Linux 系统中,检查转发是否打开。 $sysctl net.ipv4.ip_forwardnet.ipv4.ip_forward = 1 如果为 0,

  • 这让我的头撞到了墙上!!!!希望有人能给我指出正确的方向。我确信我在做一些完全愚蠢的事情。我找了又找,但似乎找不出为什么这不管用!!(在IntelliJ IDE 15.x上使用JDK8.x和Scenebuilder)。我试图在GUI上显示数据,但希望access通过编程将这些数据从其他类/方法发送给它。。。。下面是一个简单的概念,我在着手更大的项目之前,正试图让它发挥作用: 我的简单GUI在FXM

  • 但是,我得到一个NullpointerException,所以我假设它仍然找不到控件。 有人知道如何访问父控制器中加载的FXML元素吗?

  • 本文向大家介绍C++继承中的访问控制实例分析,包括了C++继承中的访问控制实例分析的使用技巧和注意事项,需要的朋友参考一下 本文较为深入的探讨了C++继承中的访问控制,对深入掌握C++面向对象程序设计是非常必要的。具体内容如下: 通常来说,我们认为一个类有两种不同的用户:普通用户 和 类的实现者。其中,普通用户编写的代码使用类的对象,这部分代码只能访问类的公有(接口)成员;实现者则负责编写类的成员