如何授权Webapi端点供第三方使用

时间:2018-07-24 23:47:39

标签: c# asp.net-web-api identityserver3

我必须创建一个将由第三方使用的端点。当人们登录到我们的应用程序时,我们将使用身份服务器。我只需要允许访问此第三方来呼叫端点,该怎么办?我不希望任何人都能呼叫端点。 例如,如果我给您我的终结点URL,并且您使用邮递员将其发布到该URL,则只有在您获得授权的情况下

2 个答案:

答案 0 :(得分:0)

我认为您需要将CORS(跨域请求)启用为outlined by Microsoft here

例如,您可以这样装饰控制器:

using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Cors;

namespace WebService.Controllers
{
    [EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
    public class TestController : ApiController
    {
        // Controller methods not shown...
    }
}

答案 1 :(得分:0)

有多种方法可以保护ASP.NET Web应用程序/ api。

我通常使用SQL用户存储或活动目录并发出JWT令牌。一个很好的指南可以在这里找到。

https://jonhilton.net/2017/10/11/secure-your-asp.net-core-2.0-api-part-1---issuing-a-jwt/

这是身份服务器的文档-正如您提到的,您想使用它-关于这个主题。

http://docs.identityserver.io/en/release/topics/apis.html