首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从OAuth2核心Web应用程序访问ASP.NET端点

从OAuth2核心Web应用程序访问ASP.NET端点
EN

Stack Overflow用户
提问于 2021-06-18 18:15:24
回答 1查看 1.7K关注 0票数 0

我有一个ASP.NET Core应用程序,这个Web需要调用另一个第三方API,它是使用OAuth2进行身份验证的。它需要通过传递/token和client_secret来调用这个第三方API的client_id端点,授予类型是client_credentials。然后使用接收到的承载令牌进行后续请求,从第三方API检索数据。

根据我的研究,这个需求可以使用HttpClient实现,并从.NET Core控制器调用第三方API (或者在控制器访问的服务类中)。

我的问题是,是否有其他方法/更好的方法来满足这一要求?我在上述方法中需要考虑的一个问题是,它将为每个请求调用第三方/token端点。可以在Startup.cs类中执行某些实现吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-18 22:34:22

看看IdentityModel。它为HttpClient提供了扩展方法来处理client_credentials (和其他) OAuth流,缓存令牌(直到它过期),所以您不会在每个请求中敲碎/token端点,并在需要时刷新令牌。

您需要在Startup类中配置它,如果需要动态配置HttpClient,则需要实现HttpClient

代码语言:javascript
复制
services.AddAccessTokenManagement(options =>
{
    options.Client.Clients.Add("identityserver", new ClientCredentialsTokenRequest
    {
        Address = "https://demo.identityserver.io/connect/token",
        ClientId = "m2m.short",
        ClientSecret = "secret",
        Scope = "api" // optional
    });
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68039801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档