1

OWIN 中间件库中是否有现成的 Ws-Federation 身份验证扩展,以使用身份验证标头而不是 cookie 处理 Web API?

// OAuth bearer calling style
var headers = {};
headers.Authorization = 'Bearer ' + token;

$.ajax({
    type: 'GET',
    url: 'api/values/1',
    headers: headers

我知道如何编写自定义处理程序来提取令牌并对其进行验证,但我可以避免这种情况吗?

4

2 回答 2

0

您可以使用作为 OWIN 中间件实现的 OAuth 2.0 服务器随附的 Visual Studio 模板:

新项目 -> Web -> ASP.NET 应用程序 -> OK -> Web API 模板,带有个人用户帐户身份验证

修改Startup.Auth.cs文件App_Startup夹中的文件以进行身份​​验证配置。

于 2016-05-28T14:32:42.657 回答
0

我将 Auth0 用作我的一个项目的身份验证提供程序。

我为我的 Web API 项目做了以下工作。为了处理授权标头和令牌,我使用了以下 Nuget 包:

Install-Package WebApi.JsonWebToken
Install-Package Auth0-ASPNET

它在 App_Start 文件夹中添加了 JsonWebToken.cs 和 JsonWebTokenValidationHandler.cs。

打开 WebApiConfig.cs 添加 using 语句

using projectName.App_Start;
using System.Web.Configuration;

并在注册方法下添加以下代码片段。

var clientID = WebConfigurationManager.AppSettings["ClientId"];
var clientSecret = WebConfigurationManager.AppSettings["ClientSecret"];

config.MessageHandlers.Add(new JsonWebTokenValidationHandler()
{
    Audience = clientID,
    SymmetricKey = clientSecret
});

删除与 Auth0 相关的任何内容,您就有了一个很好的处理程序来提取 JWT 令牌以及验证它的代码。

参考:https ://manage.auth0.com/

于 2016-05-31T01:19:12.327 回答