问题标签 [api-authorization]
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.
ruby-on-rails - SOA:Rails 多个客户端的用户身份验证和 api 授权
我们如何允许第二个客户端对用户进行身份验证并访问我们的 api 授权后端?请更正我理解中不正确的部分。
用户身份验证是您的应用程序的注册/登录/注销部分。
api 的应用授权是确认您的应用有权访问 api。
用户应该登录到应用程序并且应该授权应用程序以便用户访问 api。
将用户身份验证与应用授权分开很重要,因为不同的客户端(应用)可能会通过我们的 api 访问我们的服务。因此,不同的用户可能具有不同的访问权限。
考虑一个简单的网络应用程序。带有设计的 Rails 在应用程序(api 客户端)中用于用户身份验证。然后,该应用程序使用门卫访问 rails-api 以进行应用程序授权。
然后考虑添加一个简单的移动应用程序。移动应用程序如何访问相同的用户身份验证服务?我们如何允许移动应用访问我们的用户授权服务?
我们是否需要在创建用户之前使用单独的门卫实例将用户身份验证服务分离到自己的 api 中,以在创建用户之前授权移动应用程序和 Web 应用程序,然后在再次验证用户身份后授权应用程序和登录用户访问后端 api?
我相信它应该比描述的更容易。任何资源、书籍、视频也很受欢迎。
api - 我应该如何使用 MindMeister API 的“个人访问令牌”?
关于 MindMeister API 的认证,分为三种:
- API 密钥
- OAuth 2.0 应用程序
- 个人访问令牌
我想使用第三个,它解释了下一个:
个人访问令牌
个人访问令牌允许通过 API 直接访问您的 MindMeister 帐户,而无需 OAuth 2.0 应用程序或 API 密钥。
我创建了一个并使用它来执行我的 API 调用,但我收到错误 99:
我试过测试这个方法'mm.auth.checkToken'
这是MindMeister API Developers文档,但与“个人访问令牌”无关。
我的请求 URL 如下所示:
我不知道如何使用这个API功能,所以我想知道这个,请帮助我。
android - 如何防止使用 API 后端对具有相同凭据的不同设备进行双重身份验证?
我正在开发一个具有 Android 部分的项目(但将来也可能有其他操作系统应用程序)在必须在没有用户交互的情况下工作的设备上工作(输入能力有限,每个用户可能拥有大量设备)。
因此,我正在考虑在第一次运行期间使用 API 请求用户批准的工作流程(设备要求临时身份验证令牌和用户代码,在屏幕上显示代码,然后用户从不同设备上的 Web 界面输入代码)和在批准设备获得具有小 TTL 周期的请求令牌和仅用于刷新请求令牌的刷新时间令牌之后。
问题是每个设备都必须唯一标识,我不知道如何防止用户备份所有设备系统并将其恢复到另一台设备上的情况,然后两个设备将使用之前发布的相同令牌. 每个设备都将与服务器建立长时间的连接,因此理论上我可以摆脱刷新令牌,在每次连接时重新发出请求令牌(如果它将过期,则在工作会话期间不时更新它)和如果第一个连接已经建立,则阻止第二个连接。
但是,如果设备有一段时间没有连接(比上一个令牌 TTL 长),该怎么办?每次令牌到期时都无法要求用户再次输入用户代码。如果我要保留刷新令牌,那么原始设备的每个副本都会在“禁止访问”时要求一个新的请求令牌。
谢谢,任何帮助将不胜感激。
google-drive-api - 如何使用 Google Identity Toolkit 连接到 Google Drive API?
我想使用Google Identity Toolkit注册和验证我的用户。在我的应用程序的另一部分,我想使用Google Drive API来允许用户选择媒体文件以链接到他们的个人资料。
设置 GITKit 会更容易使用 Drive API 吗?我可以在两个服务之间共享凭据(即 API 密钥)吗?他们是完全分开的吗?我很困惑,所以任何帮助将不胜感激。
c# - 如何向我的移动应用程序的 REST API 调用授予 Angular 授权
我有一个 C# Azure Web API 后端,从前端 Ionic 移动应用程序(基本上是一个 Angular 应用程序)检索数据
用户的授权是通过 Ionic 的云服务完成的,因此他们处理通过 FB、Twitter、基本(用户名/密码)注册用户的繁重工作。
我的问题是,当我从我的后端 API 调用服务时,我如何确保有人不会读取内部 javascript 代码中的硬编码用户名/密码来访问后端数据?
我知道这有点牵强,但无论如何 API 是否知道请求实际上来自应用程序(Android 和 iOS),而不仅仅是来自试图从未经授权的网络浏览器插入数据和评论的人?
android - 使用 API Guard 验证从 Android 上的后台服务发出的 API 调用
背景
无论关联的应用程序是打开还是关闭,我们都有一个后台 IntentService 运行。(onStartCommand
回报Service.START_STICKY
)。API Guard 用于验证任何 API 调用。
问题
如果应用程序打开,则从应用程序和后台服务进行的 API 调用可以正常工作。但是,当应用程序关闭时,从后台服务发出的调用无法通过 API Guard 身份验证。原因是 API Guard SDK 需要的后台没有 Activity。
SDK 需要一个 Activity 似乎很奇怪,因为后台服务可能没有 UI。
我试过的
- 在后台服务类
APIGuard.getInstance().reauthenticate();
的方法里面添加。onCreate()
这没有用。 - 向后台服务实现添加了一个 Activity,但这不是一个选项,因为该 Activity 劫持了服务的焦点,这是我们无法拥有的。
问题
以前有人在 Android 上使用过这种特定的东西吗?同样,我不得不认为 API Guard 有办法处理这种情况。
java - 需要 java 代码来测试 API 响应吗?如果 API 需要认证
目前我正在使用以下代码来获取响应。
我有更多 API 来测试身份验证(使用 userId、密码登录),我该如何测试它们?请帮助我。
azure-active-directory - 用于以 API 为中心的应用程序的本地托管 Windows Azure Active Directory 与 IdentityServer4
具有 asp.net 核心的 Centric 应用程序,我担心是使用 Active Directory 还是 Identity Server。问题是我需要能够在没有任何互联网连接但使用本地数据库的封闭网络中运行我的应用程序。那么哪个是更好的选择呢?实际上,我需要一种更加混合的方法,因为我将部署在封闭和开放的网络上。
两者在我的需求方面有什么区别?哪个最适合封闭网络?
identityserver4 - IdentityServer4 使用 IdentityServerTools 从身份服务器中创建令牌
我正在使用 IdentityServer4 并且有一个场景,我需要在密码重置过程中启动对安全 API 的调用。IdentityServer4 确实提供IdentityServerTools
了从扩展点调用安全资源的目的,但是目前没有缩进用法的文档或示例。
如何使用中提供的方法创建必要的令牌IdentityServerTools
?
rest - 使用 oAuth2 和第一方应用程序进行 API 身份验证
如果这已得到回答,我深表歉意,但我已经搜索了几个小时,但仍然不太明白。这是一个具体的问题,而不是“哪个是最好的”问题。
具体问题以斜体表示。
我创建了一个 RESTful API,起初它是完全开放的。然而,该组织现在决定创建一个第一方移动应用程序来消费和(在某种程度上)更新数据。
我正在调查身份验证框架 (oAuth2),但不确定 oAuth2 是否是实现我们目标的正确方法。并且,如果是,哪些授权授予适用于哪组用户。
我们的目标是:
- 允许用户完全通过 oAuth 2 提供商(twitter、facebook、google)在第一方应用程序中登录和创建帐户。这些用户可以通过第一方应用访问最大的数据集。
- 为用户分配不同的角色(管理员、版主等)。
- 允许其他应用程序注册、接收令牌凭据,并具有有限的写入访问权限或对数据的扩展访问权限。这将打开它们以创建第三方应用程序或研究系统。
- 最后,我们希望保持一些数据完全开放,不需要身份验证。
那么,我是否正确假设我们要设置一个 oAuth2 *Server*(授权和资源服务器)?
如果是这样,哪些授权授予适用于上述情况?
最后一个问题:对于使用第一方应用程序的用户,该应用程序是否负责登录并保留他们的访问凭据?API 服务器不提供 html,并且是 100% RESTful。它是否需要提供登录表单?