问题标签 [clientcredential]

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 回答
240 浏览

asp.net-core - ITokenAcquisition 令牌刷新和过期功能

我目前正在注入 ITokenAcquisition 并调用 GetAccessTokenForAppAsync 以从 Azure AD 获取访问令牌。

我已经使用 AddInMemoryTokenCaches 连接了它。这是我在 Startup.cs 中的代码:

我的问题是,当当前缓存的令牌即将到期时,ITokenAcquisition 的实现是否会处理获取刷新令牌?Aka,我是否必须在我的代码中明确管理它?如果是这样,哪里有一些很好的示例/文档如何做到这一点?

另外,如果 ITokenAcquisition 不处理基于过期的令牌刷新,是否会使用 IDownstreamWebApi 处理它?

IdentityModel 库有关于它为您处理的令牌管理的非常清晰的信息。

概述页面上,它清楚地说明了(在深入了解细节或实现之前)您可以期望从使用该库中获得什么:

  • 过期访问令牌的自动刷新
  • 刷新令牌撤销
  • HttpClient 的令牌生命周期自动化

任何帮助,将不胜感激。谢谢!

0 投票
0 回答
46 浏览

swagger - CORE 3.1 Visual Studio 2019 上 IdentityServer4 ClientCredentials 的 swashbuckle 正确配置

我有一个 API,我需要授权(使用属性 [Authorize])身份服务器 4 使用生成的 DB 配置,包括表 Clients、Scope、ClientScope、Client Secrets。

我有带有秘密 InternalClientSecret 的客户端 InternalClient,如果从代码授权,它可以完美运行。

但我不知道如何配置正确的 swashbuckle 以使 swagger 发出授权请求

在此处输入图像描述

在此处输入图像描述

按下授权按钮后:
在此处输入图像描述

API列表也改变了外观:
在此处输入图像描述

如果我到达 API,我会得到 401,如果我按下锁定按钮,我会看到:
在此处输入图像描述

后面的代码:

我做错了什么,有什么想法吗?或者也许有人有一个可行的例子?

0 投票
1 回答
5661 浏览

azure - 无法使用 Azure AD 和客户端凭据流为特定范围请求 OAuth2 令牌

我们正在开发一个带有前端和后端的应用程序。应该通过带有 OAuth2 令牌的 Rest API 访问后端。授权提供程序是 Azure AD。

在 Azure 中,我们创建了 2 个应用注册。一个用于 API,一个用于客户端应用程序。API 注册定义了 3 个范围(读取、写入、删除)。客户端应用注册已委派这些范围的权限。

我们从客户端应用注册请求带有 clientID 和 clientSecret 的令牌。

问题是我们只能请求范围为 api/.default 的令牌。例如 api/read 导致无效范围错误。但如果我们使用 api/.default,则令牌中不包含范围 (scp) 属性。不需要检查使用 API 的应用程序是否具有正确的权限吗?

我不确定我们是否做错了什么,或者我们是否有错误的理解/期望。

0 投票
1 回答
222 浏览

java - Spring boot Oauth 安全性 - 客户端凭据授予类型中主体中的用户(自定义信息)信息

我对从前端服务到其他后端服务的其余调用使用“客户端凭据”授权类型。客户端凭据授予类型也在其他后端服务中使用。通过这样做,我无法知道谁是请求的实际调用者(当前登录用户)。有没有办法将主体的身份验证和授权信息注入到客户端凭据授予中颁发的令牌中?(用户信息是指拥有客户端凭据的用户的 ID 或详细信息)。我可以使用自定义令牌增强器向令牌添加一些自定义数据。但是我不知道如何在 principal( SpringSecurityPrincipal springSecurityPrincipal = (SpringSecurityPrincipal)oAuth2Authentication.getPrincipal();) 中获取它,通常在密码流中我们可以通过使用自定义来实现AuthenticationProvider像这样的实现是否有任何类可以实现并用于添加自定义主体?

谢谢您的帮助。

0 投票
1 回答
60 浏览

oauth-2.0 - 如何在服务器端更改范围时使 JWT 令牌无效

我正在实现 oauth2 客户端凭据流。当调用 Auth 服务器获取令牌时...我返回一个 jwt 令牌,其中还包括范围(例如读取:订单和写入:订单)以及作为受众的 api 标识符(../serv/api/v1/orders)。当我使用 then 令牌时,我将它作为 Bearer 令牌传递到身份验证标头中。当我检查令牌是否有效时,我会检查过期日期。如果调用的 API 与受众相同,并且调用的端点是否包含在我的令牌中的范围。如果服务器端我删除了范围(例如,我删除了 write:order 范围),则前一个令牌还包含写入范围。实际上我唯一要做的就是等待令牌失败,当我得到一个新令牌时,我将没有写入范围。

如何在到期前使​​之前的令牌失效?我应该在令牌验证期间检查范围服务器端吗?在这种情况下,我认为将范围注册到令牌中是没有用的。

感谢帮助。

0 投票
0 回答
466 浏览

asp.net-core - 如何获取适用于 OpenIddict ClientCredential 授权类型的基本身份验证中的客户端密码?

我已经使用 OpenIddict 为 ClientCredentials 配置了一个授权服务器,如下所示。

当 client_id 和 client_secret 在请求正文中时,我可以获得 access_token。 访问令牌返回

但是当 client_id 和 client_secret 在基本授权标头中作为 Base64 编码的 client_id:client_secret 发送时,它不起作用。grant_type=client_credentials 在正文中指定。 使用基本身份验证时出错

openid 配置文档似乎表明 client_secret_basic 支持

设置服务器时我是否错过了任何配置?问候。

0 投票
0 回答
640 浏览

php - Laravel 护照 - 中间件 client_credentials 不记名令牌不起作用

我有一个 laravel 项目,使用 Passport Client Credentials 获取承载令牌,我使用创建客户端 ID 和机密 ID

并得到

客户 ID 和秘密 ID

并像这样从邮递员那里获取承载/访问代码 承载代码

但是在使用这个 barear 调用其他这样的 api 但不工作之后

和输出只是

但是,如果我将路由更改为闭包函数,它的工作方式如下

输出闭包函数

我已将此添加到 kernel.php

并更改驱动程序

我也将此添加到.htaccess,

但是对于您的信息,我之前没有 .htaccess 并且我使用php artisan serve 我已经阅读了许多解决方案但仍然无法正常运行我的应用程序,

有人可以帮我解决这个问题吗?感谢您的时间。

0 投票
0 回答
31 浏览

php - 我无法在使用 Laravel 护照 9 的客户端凭据授予令牌测试中检索持有者令牌

我正在尝试使用laravel passport 9 的Client Credentials Grant Tokens来检索不记名令牌。事情是这样的。我在测试时无法从我的请求中获取不记名令牌。

当我使用上面的代码在测试中进行身份验证时,结果为$request->bearerToken()空。就在我本地环境中的测试中,它工作得很好。

0 投票
1 回答
45 浏览

oauth - OAuth - 使授权代码流在没有网站或用户的情况下工作?

我有一个后端处理器(想象一个每天一次生成报告的计时作业),它需要与第三方系统集成。他们的 API 仅支持“授权码”授权类型。问题是我什至无法填写令牌请求,因为我没有redirect_uri(没有网站),而且我绝对没有任何类型的用户。我将通过他们的开发人员门户 (Mashery) 为我的后端报告处理器应用程序提供 OAuth 客户端 ID 和密码。

我想使用“客户端凭据”授权类型/流,因为我只是一个后端服务。

有没有办法伪造或破解它,以便我的小后端服务可以以某种方式与授权代码流一起工作?

提前致谢

0 投票
1 回答
330 浏览

keycloak - 如何在访问令牌中指定特定于客户端的自定义属性

我有一个 Keycloak 设置,并且正在使用 client_credential 流为数千个后端创建访问令牌。

我想在访问令牌中包含另一个自定义字段,所以在exp等旁边,我想有一个 field publicKey。该字段对于每个客户端都是特定且唯一的。

使用Keycloak可以吗?

编辑:澄清我有很多后端,每个后端都有一个特定和独特的publicKey