如何授权第三方使用 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/
这是身份服务器的文档 - 正如您提到的您想要使用它 - 关于这个主题。
我必须创建一个将由第 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/
这是身份服务器的文档 - 正如您提到的您想要使用它 - 关于这个主题。