如何让 OAuth 2.0 正确地在我的自定义 API .net 核心中使用外部 API

Posted

技术标签:

【中文标题】如何让 OAuth 2.0 正确地在我的自定义 API .net 核心中使用外部 API【英文标题】:How to get OAuth 2.0 right for consuming external APIs in my Custom API .net core 【发布时间】:2018-02-16 06:59:16 【问题描述】:

我想创建一个自定义 API,在后台调用使用 OAuth 2.0 进行身份验证的其他 API 的编号。我想在内部对此进行管理,以便我的自定义端点对此有所抽象。

或者首先我想做缓冲区 (https://buffer.com) 之类的应用程序 - 您可以连接到不同的社交服务,而不是发布您的状态。

如何在 .NetCore 中实现这一点?我不想用这些登录(很多示例都适合这种情况),用户登录与此不同。我只想建立这些连接(如果您查看 Azure API 管理,就像 API 连接),然后对这些端点执行一些操作。

我希望我能传达我的观点。如果不清楚,请告诉我。

谢谢 桑杰

【问题讨论】:

嗨..你实现了吗?我有完全相同的要求.. 试图查看存储凭据的最佳实践。等等 【参考方案1】:

OAuth2 系统都基于相同的工作流程。

这是一个授权 url,您在授权标头中传递一些 id,如果一切正确,您将获得一个令牌,然后您可以使用该令牌做任何您被允许做的事情。您用于身份验证的凭据以及您为此工作流程的各个部分点击的 url 发生了哪些变化。

您可以编写自己的 OAuth2 库来处理所有这些,这几乎就是我所做的,只需更改我必须与之交互的每个特定系统的细节。

话虽如此,您始终可以使用现有实现之一来连接您关心的各种系统,它们都有一个您可以使用的 API,您所要做的就是确保正确遵循 OAuth2 流程。

【讨论】:

感谢安德烈的回答。我会进一步研究它以获得更好的理解。我知道 OAuth2 的身份验证流程。我只是想知道连接(和存储这些令牌)各种服务的最佳方式是什么。谢谢

以上是关于如何让 OAuth 2.0 正确地在我的自定义 API .net 核心中使用外部 API的主要内容,如果未能解决你的问题,请参考以下文章

如何确保让我的自定义 OidcUserService 被默认调用?

JWT 与 OAuth 2.0 有何不同?

如何在 IBM Worklight 6.0 中实现 OAUTH 2.0

如何在服务器端验证我的自定义 Oauth2 访问令牌

如何在我的自定义主题中包含自定义 js 文件?

docker 容器上 Parse-server 的自定义身份验证 (OAuth2)