问题标签 [oauth-provider]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 如何在 REST Api Server 中实现 Oauth2 Provider?
我正在用 Node.js 开发 REST API 服务器,它几乎准备好了。现在我正在尝试对 API 服务器实施身份验证。我决定为此使用 OAuth2。我想我将使用授权类型密码,因为大多数将使用我的服务的应用程序都在我的控制之下。有一些可用的模块https://github.com/jaredhanson/oauth2orize,我对为授权用户存储访问令牌和维护会话感到困惑。由于这是 REST 服务器,我是否需要维护会话,或者我应该将活动令牌和相关用户存储到数据库并检查每个请求是否有效?
web-services - 如何处理对非网络服务器的 oAuth 回调?
我目前正在构建一个 oAuth2 服务器,以便外部客户端/设备可以访问我的服务中的数据,而不必在每次请求时都发送用户凭据。在花了一整天阅读大量教程和在线文档之后,我终于掌握了 oAuth 的工作原理,但是,还有一件事我不太确定......
向 oAuth 服务器发送授权码请求时,我应该如何处理对移动设备和非网络服务器设备的回调?
例如,这个对我的 oAuth 服务器的请求将发送一个授权码作为回调到指定的网络服务器(在这种情况下是http://client-url.com )
http://client-url.com上的服务器将收到包含授权代码的响应,开发人员将能够相应地存储用户的 oAuth 凭据。
显然移动设备不是网络服务器,那么有没有标准化的方法来处理这个问题?我在网上读到,您可以在 iOS 和 Android 应用程序中定义称为自定义 URI 方案的东西。但是那里的其他移动平台呢?和桌面应用程序?我希望我的 API 可以从尽可能多的平台和设备上访问。
我问这个问题的原因是因为我想向我的 oAuth 服务器添加验证,以便用户只能使用有效的回调 URL 注册应用程序。我不确定是否应该允许除有效 URL 之外的任何其他类型的输入作为回调。
任何人都可以对此有所了解吗?我想避免花费数小时在所有设备上验证和测试这一点,因为我确信过去为多个移动平台开发过的任何人都必须对此有所了解。
提前致谢。
java - 在java中实现Oauth1 Provider
我需要在 java 中创建自己的 oauth1 提供程序。任何人都可以帮助我如何在 java 中创建 oauth1 提供程序。目前我正在使用这个包来实现它,但无法获得关于如何使用它的更多帮助。使用这个
我用谷歌搜索了这个问题,但没有得到任何帮助材料。如果有人提供链接或工作示例,我将不胜感激
c# - 如何将我自己的架构和 DAL/ORM(不是 EF)与默认的 Web API 2 ApplicationOAuthProvider 结合使用的高级概述
我正在重写一个已经由具有现有“成员资格”表的相对大型数据库支持的 Web 服务。我将“成员资格”放在引号中的原因是因为该数据库是 Oracle 数据库,并且这些与默认的 aspnet 成员资格表不是很接近。我还使用 Dapper 作为我的 DAL 来快速调用现有的存储过程,当然其中一些与身份验证、CRUDding 用户等有关。
我查看了默认的“个人用户帐户”MVC5 Web API 2 项目,我不得不承认它有点令人困惑,但考虑到一些关键接口和类型派生自Microsoft.AspNet.Identity.EntityFramework
命名空间,这可能不适用于这个项目,因为它没有使用实体框架。(如果我对最后一个陈述有误,请纠正我。)
所以我对从哪里开始以及我需要实现哪些“Microsoft”类有点困惑。我想我需要实现一个ExtendedMembershipProvider
已经开始的 custom 。由于IdentityUser
是一个 EF 类,我想我需要自己实现 ofIUser
以与内置的UserManager<TUser>
和ApplicationOAuthProvider
.
我花了一些时间在网上寻找有关如何在没有EF 或 SQL Server 的情况下实现这种形式的身份验证的教程,甚至很难找到一个示例。
因此,如果您可以就如何ApplicationOAuthProvider
使用自定义模式和 DAL 实现的高级概述提供任何启示,我知道我会很感激,而且我认为还有很多其他人正在努力解决这是因为这些概念相当抽象,而且实现看起来是特定于供应商的。
具体来说,会有所帮助的一件事是要扩展/实现以开始的类/接口的最小列表。
python - Oauth 提供者向 *另一个* 提供者请求许可
我已经使用 django-allauth 实现了一个应用程序,该应用程序使用普通的 django 用户登录名或通过 google 或 github 社交登录名登录用户。到目前为止,这似乎工作正常 - 用户可以使用他们的 google 或 github 帐户或通过普通的 django 帐户登录到此应用程序。
现在,用户可以在这个应用程序中添加一些资源,我想使用 REST api从不同的应用程序访问这些资源。所以第一个应用程序需要是一个 oauth2 提供者——我尝试在 django-oauth-toolkit(它使用 python-oauthlib)的帮助下实现它。
在任何情况下,我都尝试按照创建提供程序的教程进行操作:此处为https://django-oauth-toolkit.readthedocs.org/en/0.7.0/tutorial/tutorial_01.html。所有步骤都完成了,所以我访问了http://django-oauth-toolkit.herokuapp.com/consumer/以测试我的提供程序(如教程所建议的那样),
所以当我请求访问时,我得到了我的应用程序的登录屏幕。当我尝试使用普通 django 用户登录时,一切正常,并且我能够授予对我的提供商的访问权限。但是,使用社交帐户登录并不成功:我点击“Github”以使用我的 github 帐户登录——我得到了正常的 github 登录屏幕,但是在我使用 github 登录后,我得到了 django-allauth 错误页面(尝试通过您的社交网络帐户登录时发生错误)。实际上,我的 url 获取参数中出现以下错误:
任何想法可能是什么问题?
另外,一个更普遍的问题:我找不到类似的流程(使用使用其他oauth 提供程序登录的 oauth 提供程序)。真的可以这样做吗?
更新:事实证明,问题在于我使用http://127.0.0.1:8000/
的是本地 oauth2 提供程序,但我已写入http://localhost:8000/
测试消费者的授权 URL(http://django-oauth-toolkit.herokuapp.com/consumer/) . 这就是我收到redirect_url_mismatch
错误的原因 - 在我将其更改为http://127.0.0.1:8000/
一切正常之后 - 这回答了我的第二个问题:您可以链接 oauth 提供者!
java - 实现自定义oauth-provider?
我想以这种方式实现 Oauth-provider。我有一个项目,我正在访问其余的 api。现在我想为每个 api 创建我自己的 oauth-provider。我用谷歌搜索了很多,但没有找到任何我可以开始实施的东西。
我找到了 auth-provider 的谷歌代码,但我无法让它运行。代码 url 是 来自谷歌代码的 auth-provider。
在jsp中,一旦我说创建我的oauth然后我想从我的oauth-provider创建oauth设置。这样我就可以得到它并将其发送到标题中以测试我的 api。
我还下载了 IBM 代码,但不知道应该如何开始。 IBM oauth 2.0 代码
请帮我。
谢谢
authentication - OAuth 客户端身份验证方法?(http基本的替代品)
我的问题是关于使用我的 Oauth2.0 提供程序对 Oauth2.0 客户端进行身份验证。Oauth2.0 规范声明它推荐了比简单的客户端密码验证更安全的方法。我想知道其中一些机制可能是什么?如果可能有一种被接受为“最安全”或“最明智”的机制来实施?
非常感谢任何帮助!干杯!
c# - Google 出现间歇性 ASP.NET oAuth 问题,AuthenticationManager.GetExternalIdentityAsync 返回 null
我正在尝试解决将 Google 用作外部登录提供程序时出现的间歇性问题。
尝试登录时,用户将被重定向回登录页面,而不是进行身份验证。
问题出现在这一行(下面链接的第 55 行),GetExternalIdentityAsync 返回 null。
完整的代码是:
也在这里。
这在很大程度上是一个间歇性问题,重新部署应用程序通常会使其暂时工作。
在 Fiddler 中,我可以看到在它无法找到 cookie 的身份验证方法之前调用了 sign-google。
该应用程序使用以下代码来初始化谷歌登录
我已在 web.config 中将身份验证模式设置为非,并删除了表单身份验证模块。
这些站点托管在 Azure 上,一些在 1 个实例上运行,一些在 2 个实例上运行。它们具有自定义域,尽管在自定义域和 azurewebsites 域以及 http / https 上仍然失败。
谁能帮助解释为什么会发生这种情况?
更新
Microsoft.Owin.Security.Google 3.0 版于昨晚发布。打算切换一下,看看这是否能解决问题。
https://www.nuget.org/packages/Microsoft.Owin.Security.Google
grails - Grails Spring Securiy Oauth Provider 插件:访问此资源需要完全身份验证
我正在使用 grails“Spring Security OAuth Provider”插件。而且我能够在以下 URL 的响应中获得访问代码。
但是,当我使用以下 URL通过访问代码发送获取访问令牌的请求时,我收到“访问此资源需要完全身份验证”错误消息。
笔记: base64(client_id:client_secret)=bnVkZ2VDbGllbnQ6YjRkNzA3NmE3YTA4N2E4MWMzMTE2ZjZlNWQzZWY0MDJjNmQ4ZjM3Nw==
完整的错误信息如下。
我错过了什么。请建议。
谢谢
更新 1
实际上,我正在关注 Spring security oauth provider plugin 的文档。
有我的配置设置。
我的控制器是默认控制器。
oauth-2.0 - OAuth 2.0 是否涵盖代表另一个最终用户行事的最终用户?
我的需求:
- 让我们考虑同一域的 2 个最终用户。
- 用户 UA 是资源 RA 的资源所有者。
- 用户 UA 希望将资源 RA 的访问权委托给最终用户 UB。
我对 OAuth 2.0 的主要兴趣来自总令牌控制(随时撤销等)。
OAuth 2.0 框架允许客户端以具有明确权限的资源所有者的名义行事。
Oauth 2.0 定义了资源所有者和客户端角色(参见角色部分),其中:
- 资源所有者可以是最终用户(可以授予对受保护资源的访问权限)。
- 客户端是代表资源所有者发出受保护资源请求的应用程序。
在规范中,客户端始终被视为一个应用程序(没有特定的实现特征)。
我想知道以最终用户作为客户端角色来实施 OAuth 2.0 是否可以,或者我是否完全滥用了 OAuth?
我的直觉是 OAuth 2.0 仅适用于第三方应用程序(具有互操作性),而不适用于同一域的 2 个最终用户。我对吗?另一方面,所有代币机制都真正符合我的需求。
PS:这个过期的 OAuth 规范(2010) 谈到了使用 OAuth 协议通过客户端将资源所有者的授权委托给另一个用户。但这不是那么相关。