C# OAuth-我的资源服务器是否需要端点';授权';和';代币';

C# OAuth-我的资源服务器是否需要端点';授权';和';代币';,c#,.net,angularjs,asp.net-mvc,oauth,C#,.net,Angularjs,Asp.net Mvc,Oauth,我的任务是在我们的一个应用程序中添加外部登录。其思想是,您可以从应用程序A登录,并使用应用程序B的凭据登录到应用程序A 对于应用程序B,我提供了一些API方法来验证用户、注册用户、获取密码等。我在这个API上没有“Token”或“Authorize”(生成Oauth_Token)的端点 演员 客户:应用程序A 资源服务器:应用程序B 问题: 我可以实现一个OAuth解决方案,只访问应用程序B上的几个方法吗 我想我迷路了,正在寻找解决这个问题的方法。我不知道如何为这种情况实现自定义OAuthSe

我的任务是在我们的一个应用程序中添加外部登录。其思想是,您可以从应用程序A登录,并使用应用程序B的凭据登录到应用程序A

对于应用程序B,我提供了一些API方法来验证用户、注册用户、获取密码等。我在这个API上没有“Token”或“Authorize”(生成Oauth_Token)的端点

演员

客户:应用程序A

资源服务器:应用程序B


问题:

我可以实现一个OAuth解决方案,只访问应用程序B上的几个方法吗

我想我迷路了,正在寻找解决这个问题的方法。我不知道如何为这种情况实现自定义OAuthService提供程序


有人能解释一下吗?

简短回答:是的,您可以使用单个控制器操作。

如果您使用的是.NETMVC,那么您可以通过一个操作和不同的Id值来实现整个过程。只需创建一个authorizationController,其操作侦听以下格式的“Id”或“令牌”:

https://yoursite.com/authorization/id?[params]
https://yoursite.com/authorization/token?[params]
在您的路由中,授权将解析为操作,id/令牌都将解析为id

参数(查询或表单发布)

然后,接受所需的参数作为方法中的(可选)参数,并相应地进行处理。大多数oAuth客户端将查找初始url,以及将其自动化代码转换为访问令牌的url。响应是众所周知的(例如,我希望从oAuth响应中看到的数据是众所周知的),发布和返回的名称(例如,类型、客户机id、客户机机密、令牌、代码、重定向uri等)也是众所周知的

示例服务

从一个文档丰富的oAuth服务向后工作是很有帮助的,比如。在一天结束时,这就是你想要生产的东西。如果您需要第二个源代码进行比较,也可以使用zapier的oAuth2文档

对整个流程的工作原理进行了很好的(基本)概述。客户端调用、服务器返回的内容等。这是一个很好的起点

根据需要实现“授权类型”,只需记录服务器为用户(或者,在您的情况下,为AppB的开发人员)支持的类型

最后注意:您应该确保oAuth是正确的答案。

我觉得我需要添加一个快速编辑,并解释oAuth可能不是您所遇到的特定业务问题的正确解决方案!大多数人使用oAuth2访问另一个应用程序的api(而不是用另一个应用程序验证用户)

oAuth.net网站说得最好:

OAuth 2.0规范定义了一个委托协议[…]。非统组织 用于多种应用,包括提供 用户身份验证机制。这使得许多开发人员和 的API提供程序错误地得出结论,OAuth本身就是一个 身份验证协议和错误地使用它本身


如果您只是想验证用户,那么oAuth2可能是错误的解决方案。

简短回答:是的,您可以使用单个控制器操作。

如果您使用的是.NETMVC,那么您可以通过一个操作和不同的Id值来实现整个过程。只需创建一个authorizationController,其操作侦听以下格式的“Id”或“令牌”:

https://yoursite.com/authorization/id?[params]
https://yoursite.com/authorization/token?[params]
在您的路由中,授权将解析为操作,id/令牌都将解析为id

参数(查询或表单发布)

然后,接受所需的参数作为方法中的(可选)参数,并相应地进行处理。大多数oAuth客户端将查找初始url,以及将其自动化代码转换为访问令牌的url。响应是众所周知的(例如,我希望从oAuth响应中看到的数据是众所周知的),发布和返回的名称(例如,类型、客户机id、客户机机密、令牌、代码、重定向uri等)也是众所周知的

示例服务

从一个文档丰富的oAuth服务向后工作是很有帮助的,比如。在一天结束时,这就是你想要生产的东西。如果您需要第二个源代码进行比较,也可以使用zapier的oAuth2文档

对整个流程的工作原理进行了很好的(基本)概述。客户端调用、服务器返回的内容等。这是一个很好的起点

根据需要实现“授权类型”,只需记录服务器为用户(或者,在您的情况下,为AppB的开发人员)支持的类型

最后注意:您应该确保oAuth是正确的答案。

我觉得我需要添加一个快速编辑,并解释oAuth可能不是您所遇到的特定业务问题的正确解决方案!大多数人使用oAuth2访问另一个应用程序的api(而不是用另一个应用程序验证用户)

oAuth.net网站说得最好:

OAuth 2.0规范定义了一个委托协议[…]。非统组织 用于多种应用,包括提供 用户身份验证机制。这使得许多开发人员和 的API提供程序错误地得出结论,OAuth本身就是一个 身份验证协议和错误地使用它本身


如果您只是想验证用户,那么oAuth2可能是错误的解决方案。

资源服务器不发布令牌。授权服务器发出令牌

您将需要一个授权服务器,该服务器通过令牌端点和一些验证令牌的机制来发布令牌。如果您可以修改应用程序B以拥有令牌端点,那么它可以充当您的授权服务器。如果不能,则可以使用