Asp.net web api 通过邮递员向Web API发送承载令牌
更新 我已经能够得到一个持票人代币使用指示从 以下是《邮递员》中的说明:Asp.net web api 通过邮递员向Web API发送承载令牌,asp.net-web-api,jwt,azure-ad-graph-api,Asp.net Web Api,Jwt,Azure Ad Graph Api,更新 我已经能够得到一个持票人代币使用指示从 以下是《邮递员》中的说明: 网址: 类型:邮政 标题:无 正文:表单数据 授予\类型:客户端\凭据 客户id:[客户id] 客户机密:[客户机密] 但是,如果我在调用中向Web API端点发送相同的令牌,我仍然会返回“此请求的授权已被拒绝” 为什么还不授权? 结束更新 我创建了一个ASP.NETWebAPI项目,该项目使用组织Azure AD实例进行保护。我已正确设置租户id、客户id和密码 Azure AD实例与支持Office 365/S
- 网址:
- 类型:邮政
- 标题:无
- 正文:表单数据
- 授予\类型:客户端\凭据
- 客户id:[客户id]
- 客户机密:[客户机密]
我创建了一个ASP.NETWebAPI项目,该项目使用组织Azure AD实例进行保护。我已正确设置租户id、客户id和密码 Azure AD实例与支持Office 365/SharePoint实例的实例相同,其目的是创建SharePoint加载项,该加载项可以使用登录用户的上下文调用服务 我一直在测试API。我可以毫无问题地调用未经授权的端点。但是,当我添加[Authorize]属性时,我总是得到这样的响应:“此请求的授权已被拒绝。” 据我所知,我需要生成一个承载令牌,并将其添加到邮件头中的邮递员请求中(见图)。在谷歌搜索了很多次之后,我仍然没能做到这一点 我的问题是:如何为受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"]
},
});
}
首先,您可以使用POSTMAN测试受承载令牌保护的web api。这是我的邮递员截图: 基本上:在请求头中,将密钥指定为“Authorization”,将值指定为“Bearer[your token”。如果遇到错误,请查看响应头,您将看到更详细的错误信息
注意,大多数令牌都有一个有效期,您可以尝试验证您的令牌是否有效。例如,我记得它会提示登录页面,您应该登录。此外,您还需要将您登录的用户设置为在应用程序中分配的用户,在该应用程序中您可以获得客户端id和密钥。授权问题。请确保您的应用程序是内置的
[tenantname]
您应该向我们显示被拒绝的呼叫。您向我们显示了您为获取令牌而进行的呼叫,而不是您使用令牌的呼叫。我将检查您是否已将令牌正确地放在标题中。没有任何引号或任何内容……并且使用Bearer关键字