通过邮递员将承载令牌发送到Web API

时间:2016-03-07 23:50:27

标签: asp.net-web-api jwt azure-ad-graph-api

更新

我已经能够使用this thread

中的说明获得持有人令牌

以下是邮递员的说明:

Bearer Token Example in Postman

但是,如果我在调用Web API端点时发送相同的令牌,我仍然会回来" 此请求已拒绝授权"

为什么还没有授权?

结束更新

我创建了一个使用组织Azure AD实例保护的ASP.Net Web API项目。我已正确设置了租户ID,客户端ID和密码。

Azure AD实例与支持Office 365 / SharePoint实例的实例相同,其目的是创建可以使用登录用户的上下文调用服务的SharePoint加载项。

我坚持测试API。我可以毫无问题地调用未经授权的端点。但是,当我添加[授权]属性时,我总是收到此回复:" 此请求已拒绝授权。"

据我了解,我需要生成一个不记名令牌并将其添加到标题中的Postman请求中(参见图片)。经过大量的谷歌搜索,我仍然无法完成这项工作。

我的问题是:如何为受Azure AD保护的Web API实例生成承载令牌。

我的配置代码如下:

public void ConfigureAuth(IAppBuilder app)
        {
            app.UseWindowsAzureActiveDirectoryBearerAuthentication(
                new WindowsAzureActiveDirectoryBearerAuthenticationOptions
                {
                    Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
                    TokenValidationParameters = new TokenValidationParameters {
                         ValidAudience = ConfigurationManager.AppSettings["ida:Audience"]
                    },
                });
        }

Example of calling Postman with Bearer Token

1 个答案:

答案 0 :(得分:4)

首先,您可以使用POSTMAN测试受承载令牌保护的Web api。这是我的邮递员截图:

POSTMAN sending bearer token to web api

基本上:在请求标头中,将密钥指定为“授权”,并将值指定为“承载[您的令牌”。如果您遇到错误,请查看响应的标题,您将看到更详细的错误信息。

请注意,大多数令牌都有到期时间,您可以尝试验证令牌是否有效。例如https://jwt.io/