如何授权第三方使用 webapi 端点

How to authorize webapi endpoint for 3rd party to use

我必须创建一个将由第 3 方使用的端点。当人们登录到我们的应用程序时,我们使用身份服务器。我需要做什么才能只允许访问这个第 3 方来调用端点?我不希望任何人都能够调用端点。 例如,如果我给你我的端点 URL 并且你使用 postman 到 post 到它,我只会在你被授权时允许你

我认为您需要启用 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...
    }
}

有多种方法可以保护 ASP.NET 网站 app/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