问题标签 [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.

0 投票
0 回答
260 浏览

php - 在 laravel 中使用自定义防护进行 api 身份验证时出现 FatalThrowableError

每次我尝试在我的自定义保护 () 中分别通过或驱动程序进行身份验证时,我都会不断收到FatalThrowableError异常或 a ,但是使用会话驱动程序它工作得很好。我已经根据文档定义了警卫,但仍然无济于事,我不明白我哪里出错了BadMethodCallExceptiontokenpassportapi-users

代码

配置\Auth.php

AuthController.php

模型\ApiUser.php

错误

使用token作为驱动时

使用护照作为司机时

0 投票
0 回答
63 浏览

android - 使用电子邮件/密码在 API 上实施 OAuth 以进行身份​​验证

我刚刚继承了一个 API(用 Python/Flask 编写并在 AWS 上运行,带有 MongoDB 后端)的所有权,其中唯一的身份验证是手动电子邮件/密码登录。

目前的流程是:

  1. 从用户(通过应用程序)获取电子邮件和密码。
  2. 验证密码后,提交给 API,API 将在 JSON 对象中返回 API 密钥。
  3. 在所有后续 API 调用中使用 API 密钥来使用服务。

该 API 被用作多个 Android 应用程序的后端。我现在想添加 OAuth 以允许用户使用 Google Auth 登录/注册,但我在实现这一点时遇到了一个绊脚石:

我不能使用任何其他身份验证,例如Firebase 身份验证,因为即使在应用程序(电子邮件/密码或谷歌)上完成身份验证,我也无法在没有手动密码的情况下获取 API 密钥(因为它的方式实施的)。

在 SOOAUth 网站上浏览了以下主题,但没有想到如何解决这个问题。

我该如何处理?我必须重写 API 吗?我问这个是因为,如果我“信任”OAuth 模块,我必须向它公开一个端点和敏感数据(不使用 API 进行身份验证),这是一个糟糕的主意。

0 投票
1 回答
789 浏览

php - 使用 Laravel Passport 仅在少数路由上访问自己的帐户

我的整个应用程序有很多 api 路由为我的前端提供 ajax 响应。我使用 Laravel Passport xsrf 令牌保护来保护我的路由并管理身份验证。但是,我们计划提供一个特定类型的用户可以使用的 api。更详细地说,这是我们想要实现的(虚构)示例:

一家公司可以有很多职位空缺。我的 api 路由很多,现在我想让公司所有者能够通过我们的 sdk 获取他所有的空缺并将它们放在他的网站上。我面临的问题:据我正确理解护照,个人访问令牌是我需要的东西。我不想要“使用我的应用程序登录”功能(jet),我该如何禁用它?我只希望用户访问他自己的信息,而不是其他用户。而且我可能希望将来让用户注册不同的api。这样他就可以为不同的路由拥有多个访问令牌,但是这些路由都在一个 api.php 路由文件中。我想我需要为此使用范围,但是我如何安全地将范围分配给令牌,因为这只执行单个路由?

有人可以帮助我正确理解护照的概念吗?

0 投票
1 回答
90 浏览

authentication - 使用 Google 作为身份提供者的 Salesforce 的 Api 身份验证

我对身份验证/授权领域有点陌生,需要一些关于如何构建/实施最终将连接到 Salesforce 并检索信息的应用程序的建议。在一个非常高的级别上,我正在构建一个需要提取 Salesforce 相关数据以显示给用户的移动应用程序。他们特定的 Salesforce 实例使用 Google 作为身份提供者。此外,我们计划设置一个网关来协调与 Salesforce 的所有通信,并可能进行一些响应聚合。我们还计划使用 Cognito 来处理身份管理。我的具体问题是:

  1. 我将通过 Salesforce 身份验证端点进行身份验证吗?如果 Salesforce 最终使用 Google 作为身份提供商,那么直接从 Salesforce 本身检索该令牌是否有意义?
    1. 我是否需要在 Salesforce 或 Google 中将移动应用程序注册为应用程序?我了解 Salesforce 本身需要在 Google 中注册才能允许将 Google 用作 Salesforce 中的身份提供者,但同时注册是否有意义?
    2. 目前不需要限制资源访问,因为任何可以登录的用户都可以看到所有内容。这会影响实施吗?从本质上讲,如果用户可以使用他们的 Google 凭据登录 Salesforce(也就是他们有一个用户映射),那么他们应该能够看到任何东西。

我确定我在问一些幼稚的问题,并且真的不知道从哪里开始。我最近使用 Azure 作为身份提供者构建了一个供 Salesforce Connect 使用的 Api,这相当简单,尽管它是机器对机器的并且更简单。任何帮助都将不胜感激。谢谢你。

0 投票
0 回答
129 浏览

api - 在 python 自动化测试中无法使用访问令牌授权访问 API

我正在用 python 为其余的 api 编写自动化 api 测试。我有访问令牌,但它显示“访问被拒绝”。相同的令牌适用于邮递员请求。如果我的代码中缺少某些内容,有人可以告诉我吗?

我得到的输出:

预期结果:它应该返回 JSON 正文和状态码 200 以及内容

0 投票
1 回答
100 浏览

asp.net-core - 如何为我的 API 定义两种访问令牌的策略,一种具有身份(子),一种没有身份?

我正在通过 ASPNET Core 使用 IdentityServer4,并且我希望用户通过 Web 浏览器通过他们的身份(隐式和混合)以及通过客户端以编程方式(客户端凭据)访问我的 API。我意识到我所要做的就是添加AddIdentityServerAuthentication,我就完成了。但是,这仅解决了此问题的身份验证方面,而不是授权。

授权:

使用 ASPNET Core,您可以只使用基于角色的身份验证(或类似的 PolicyServer 权限),但前提是您拥有具有角色声明的身份,这不适用于客户端凭据。因此,这使我们需要按角色、策略和范围进行保护。我怎样才能做到这一点?

  • 你不能有多个政策,如果你这样做,它们都必须通过。
  • 您不能有多个身份验证方案,因为我的调用AddIdentityServerAuthentication必须使用相同的权限,那么 IdentityServer4.AccessTokenValidation/JwtBearer 如何知道您尝试通过哪个方案挑战?
  • 多个要求可能有效,但您需要在处理非身份访问令牌的情况下添加额外要求。您如何检测您正在处理的令牌类型?只说“如果没有子,这是客户信誉”是否安全。
  • 我应该放弃这个设计并强制我的用户使用设备代码流吗?看着az cli它神奇地打开一个浏览器,然后你就可以开始编写脚本,尽情享受。IS4 轻松支持这一点,尤其是verficationUrlComplete

我想我有一个有效的 POC,但我对此并不满意。https://gist.github.com/VictorioBerra/8c333a228c55d86a7c15f7f300284634

它基本上涉及重新实现默认范围声明要求处理程序和策略服务器权限要求处理程序。但这是根据令牌类型有条件地应用需求处理程序的唯一方法。

0 投票
0 回答
671 浏览

php - 如何用基本身份验证用户和密码替换 Postman PHP 代码片段?

我正在使用客户的第三方 API,我能够成功发布到他们的端点,但没有太多 API 经验我不确定如何处理 Postman 呈现给 WordPress 钩子的 PHP 代码片段,这是一个提交表单后的重力表单挂钩。

查看下面的代码片段,我确实看到了一些我觉得复制过来没有好处的实例,比如 Postman-Token 和 Cookie。我只是找不到让基本身份验证工作的方法。

0 投票
1 回答
1296 浏览

azure - ASP.NET Core Web API + Azure AD 身份验证

我需要一些帮助来为我的应用程序实施授权基础架构。

我有一个使用 Web API 的 Angular SPA 应用程序。该 Web API 依次使用另一个 Web API 来服务其请求。所以,我总共有 2 个 Web API 和一个 Angular SPA 应用程序。

我希望 Angular SPA 应用程序的用户通过我们的 Azure AD 帐户进行身份验证,然后与其他两个 Web API 共享此令牌以对请求进行身份验证。

请告知如何去做,任何想法都非常感谢。

0 投票
1 回答
417 浏览

node.js - 通过 API-KEY 使用来自外部 API 的数据的 Alexa 技能

我尝试使用在 node.js 8.1 上运行的 lambda 从 alexa 后端代码访问外部 API,该代码可以访问任何不需要 api-key 的端点,但我找不到包含我的授权(api-key ) 在代码中,以便我可以检索我正在寻找的数据。我试图访问的api文档如下:

curl --request GET -H 'Authorization: Bearer' -H 'Content-Type: application/json' " https://some-end-point/path/i/want "

这适用于 alexa-skills-kit,它在调用技能后使用 lambda 并尝试使用 api-key 访问外部 api。代码可以将信息检索到不需要任何密钥的任何端点。我已经尝试将密钥作为参数包含在 URL(api 密钥 + URL)中,因为我是 alexa、lambda、nodejs 的新手,我不知道如何调试它,但我只是没有得到想要的输出(这是 alexa 转动文本与从外部 api 获得的信息进行对话)。

pd:假设我的 api 密钥是:xxxx-xxxx-xxxx

上面的代码可以无错误地访问任何端点,但我不知道如何包含 api 密钥以便它可以访问 api,预期的输出是通过包含 api-key 来访问 api

任何关于这个问题的帮助都会很高兴从这个新手那里得到帮助......

0 投票
2 回答
648 浏览

google-data-studio - Google Data Studio:如何使用 2 KEYS 为 API 连接器启用身份验证

我正在尝试在 GDS 中为 Web 服务 API 编写连接器。API 身份验证方法使用 2 个 KEYS(在标头中传递):X-App-KeyX-User-Key

2 键身份验证流程不适合我的.gs连接器脚本中可用的 5 个身份验证选项。我是否实施自定义身份验证方法(不知道如何)或修改USER_PASSUSER_TOKEN接受 2 个密钥?

更新:我开始连接另一个服务,这个服务使用API_TOKENand API_SECRET。同样,我看不出 5 种身份验证类型中的哪一种适合。

我认为这是一个常见的问题,因为那里有很多不同的 API ......