2015-09-28 59 views
3

我在OWIN/web API/AngularJS应用程序中使用OAuth承载令牌认证流程。Owin WebAPI承载令牌通过

我想要做的是重新使用在服务器上承载的令牌,并把它传递给第2个网络API服务(这也是由承载令牌保护,并使用相同的计算机密钥的另一台服务器上的其他服务)。我知道如何在C#中创建一个不记名令牌,并使用HTTPClient将它添加到请求的头部 - 但是,如何才能使用我已有的不记名令牌(由浏览器请求传入)呢?这可能吗?

回答

1

从技术上讲,这是可能的,但很少是一个好主意。你通常不会传递它,因为这会让你的后端API在中间攻击中暴露给人。在规范方法中,您将使用您收到的访问令牌返回权限并请求一个新的令牌,这次将限制在您的后端。一个例子见https://github.com/Azure-Samples/active-directory-dotnet-webapi-onbehalfof

+0

谢谢vibronet。这种方法是否意味着每次访问后端API时都会从权限获取新令牌,或者是否存储后端令牌并重用它 - 我可以看到每种方法的优缺点?目前令牌在浏览器上本地缓存并重新使用。 – thevongole

+0

在我链接的示例中,生成的标记被高速缓存。您可以选择将其缓存在服务器端或将其放置在受保护的Cookie /会话中 - 或者,如果您很少执行呼叫,则甚至可能根本无法缓存它(尽管这在我的经验中并不常见)。 – vibronet