gpt4 book ai didi

c# - 如何进行应用程序到应用程序(服务器到服务器)身份验证、OAuth 2.0、Web API 2.0

转载 作者:行者123 更新时间:2023-12-03 22:20:44 25 4
gpt4 key购买 nike

我的项目有 2 个独立的 ASP.NET MVC 5 应用程序。一个使用另一个作为服务。基本上,其中一个应用程序是 Profile Service,它包含用户的所有配置文件信息,以便将来其他应用程序可以使用该服务,而用户不必设置多个帐户。这些应用程序是组织内部的。对于身份验证和授权,我们使用 Windows 身份验证和智能卡。配置文件服务应用程序使用 Web API 2.0。我还没有设置 OAuth 2.0。

问题:就目前而言,任何知道如何向配置文件服务发送请求的人都可以这样做(例如输入带有查询字符串的 url)。

我想要达到的目标:我想授权我的另一个应用程序(现在,只有那个……将来,更多)。我不希望请求基于使用应用程序的用户的授权,而是基于应用程序本身。换句话说,如果对配置文件服务的请求来自该应用程序,无论谁登录并使用它,配置文件服务都会将其视为授权请求……如果它来自其他任何地方,则会被拒绝。

我已经做了一些研究。我找不到任何明确说明如何设置的内容。我已经找到了关于如何让你的应用程序专门为 Google 服务或 Twitter 服务授权的东西......它告诉我如何设置客户端应用程序,而不是服务器应用程序(但即使是客户端设置我也不确定是否正确满足我的特定需求,因为它是一个内部应用程序,因为我不知道 Google 服务是如何工作的,等等)。似乎 OAuth 2.0 和 token 是要走的路,但我该如何实现呢?我需要非常具体的分步答案(希望有一些代码)。

非常感谢你。我会经常回来查看的。如果您需要更多信息,请告诉我。

编辑:
哦!我忘了说!我们使用的是 HTTPS,而不是 HTTP……这有什么关系吗?

最佳答案

OAuth 有不同的授权类型,您需要的是“客户端凭据”来授权应用程序本身。这与您在 google/facebook 上看到的不同,因为没有重定向/浏览器交互。

POST https://oauthEndpointurl/token?grant_type=client_credentials&client_id=CLIENT_ID&client_secret=CLIENT_SECRET

客户端 ID 和客户端 secret 被发送到服务器,然后根据您的实现返回 token 和可能的刷新 token 。

然后,您需要做的就是将 token 发送回请求的 header 中。 (如果您使用的是库,那么它已经被处理了。)
"Authorization: Bearer xxxxTOKENxxxxx"

查看这篇关于 DO 的文章了解更多详情:

https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2

关于c# - 如何进行应用程序到应用程序(服务器到服务器)身份验证、OAuth 2.0、Web API 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31322114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com