网络API 403之外的禁止网络的使用在承载令牌(Web API 403 Forbidden Out

2019-10-30 05:08发布

我使用的oauth2具有API,允许匿名和担保呼叫的混合物的Web API。 我已经部署了代码到我的网络上的一个单独的服务器,并使用RESTER(类似于邮差)的呼叫无效验证。 如果我让来自网络外部的相同的调用,只有被设置为使用ExternalBearer令牌失败的调用。 匿名电话成功。

我检查了这个解决方案,它并没有为我工作。 HTTP 403禁止访问:访问被拒绝的ASP.NET Web API

我也确保了用户帐户访问具有完全控制的目录中部署服务器上。

我的匿名电话(旁/令牌调用)有[使用AllowAnonymous]和[HttpPost]注解。 我的安全呼叫有[HostAuthentication(DefaultAuthenticationTypes.ExternalBearer)]和[HttpPost]注解。

[Authorize]
[RoutePrefix("api/Lookups")]
public class MySettingsClass : ApiController

    /* Constructor omitted for readability*/

    [HostAuthentication(DefaultAuthenticationTypes.ExternalBearer)]
    [HttpPost]
    [Route("GetSettings")]
    public Settings GetSettings(GetSettingsCommand command)
    {
        //Do something here
        return settings;
    }

在这一点上,我怀疑IIS不会以某种方式正确配置或防火墙是做什么的,但我不知道。 我检查了服务器上的IIS日志,我可以看到请求进来。不幸的是,日志说比它接收到的请求罢了。 日志确实给401的SC-状态为比所显示的403不同的请求。

在客户端上显示实际403错误:

403 Forbidden ( The server denied the specified Uniform Resource Locator(URL). Contact the server administrator.)

更新:当我启用失败请求跟踪我得到的日志在此警告IIS。

 ModuleName="ManagedPipelineHandler", Notification="EXECUTE_REQUEST_HANDLER", HttpStatus="401", HttpReason="Unauthorized", HttpSubStatus="0", ErrorCode="The operation completed successfully.(0x0)", ConfigExceptionInfo=""

Answer 1:

人们普遍认为是特异性阻断客户直接鉴别防火墙的问题。 我必须有一个IT资源开放Forefront TMG的性能,进入身份验证委派选项卡,并且该方法设置为比其他东西“无委派,和客户端无法直接进行身份验证”

这SO线程可能是相同的解决方案,但海报并没有提及到底是什么他们的解决方案是: 的WebAPI:403禁止发布网站之后



文章来源: Web API 403 Forbidden Outside of Network Using Bearer Token