问题标签 [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 回答
28 浏览

jwt - 在 SolrJ 客户端处理 JWT 过期

目前我在标头中设置 JWT 令牌(client_credentials),同时在 java 中创建与 solr 的连接。令牌将在 15 分钟后到期,需要重新创建更改标头的连接。

有没有更好的方法来自动刷新与 Java 中更新的令牌的 solr 连接?

0 投票
1 回答
2351 浏览

azure - 从 Azure AD 生成令牌失败并出现错误 AADSTS9002326

我在 Azure AD 中注册了两个应用程序;一个是服务器,另一个是客户端。创建了两个集合;一组用于生产,另一组用于 UAT。客户端应用程序是“Web”类型,没有一个是 SPA。

生产服务器应用程序几乎是 UAT 服务器应用程序的克隆。生产客户端应用程序几乎是 UAT 客户端应用程序的克隆。

消费者使用客户端应用程序通过使用 OAuth 2.0 令牌端点 (v2) https://login.microsoftonline.com/[--Tenant--]/oauth2/v2.0/token作为具有密钥的客户端凭据流来获取令牌。生成的令牌用作授权我的 Web API 的不记名令牌。

在生产客户端应用程序上,从 Token 端点检索 Token 时返回错误,它读取为:

AADSTS9002326:仅“单页应用程序”允许跨域令牌赎回

最奇怪的是:

  1. Production Client App 可以从公网(Internet)获取Token,但不能在内网获取Token(可以访问Internet)
  2. UAT 客户端应用程序从公共和内部网络(具有 Internet 访问权限)生成令牌。

有了这样的事实,说生产消费者站点存在网络限制是不合理的。我不知道为什么 App 不在内部网络中而是在公共网络中生成令牌,而 UAT 应用程序在生成令牌方面没有问题,无论环境如何。

这个案例几乎详细说明了我的案例,但我检查了我的案例,其中客户端应用程序是公共的,服务器应用程序是私有的。

在哪里搜索?要看哪些方面?

0 投票
1 回答
18 浏览

oauth - 用于保护 API 的 Oauth Flow

我正在为多租户应用程序设计一个 REST API。我想保护 API。多租户应用程序可以由租户订阅,而租户又可以有多个用户使用该应用程序。

我计划同样使用 OAuth。其中一种可能性是使用 OAuth 的客户端凭据流 - 其中向订阅服务的每个租户提供客户端 ID 和密码。

这种方法的问题是,我无法区分租户的不同用户,因为每个人都使用相同的客户端 ID 和密码来获取访问令牌。

另一种选择是使用 OAuth 的授权令牌流。但在这种情况下,我不确定交互应该如何,因为它是 API(非 UI)。

此外,如何使用 SAML 解决这种用例?

0 投票
1 回答
718 浏览

authentication - 使用 Keycloak 作为 Azure AD 的身份代理授予客户端凭据

我正在尝试将客户端凭据授予使用 Keycloak 作为 Azure AD 的身份代理的后端服务。我还需要将来自外部 IdP 的访问令牌存储在 Keycloak 中,以从 MS Graph API 检索组信息。我有这个用例为使用授权代码流的机密客户端工作,但我无法让它与客户端凭据授权一起使用。

我在 Keycloak 中创建了一个启用了“启用服务帐户”的“机密”客户端。我还在 Azure AD 中创建了一个启用客户端凭据授予的应用程序,并在 Keycloak 中创建了一个外部身份提供程序。

在使用 client_id 和 client_secret 进行身份验证后,我从 Keycloak 获取访问令牌,但是当我尝试从 Keycloak 端点检索外部 IdP 访问令牌时,我收到一条错误消息,提示“用户 [GUID] 与身份提供者没有关联”。我很感激任何建议或反馈。

0 投票
0 回答
73 浏览

kotlin - 当 grant_type 为密码时,Ktor OAuth 不起作用

我在我的 kotlin Ktor 后端实现了 OAuth 授权。

使用时grant_type = client_credentials,一切都按预期工作。

但是,在使用时grant_type = password,它甚至不执行loadTokens.

loadTokens示例中的断点client_credentials确实命中,在密码示例中,loadTokens命中了几次但内部没有。tokenClient即使配置了日志级别,第二个示例中也没有记录身份验证请求。

这个有效:

而这个没有:

0 投票
1 回答
268 浏览

spring-boot - 如何使用访问令牌/授权标头使 spring webclient 跟随重定向?

我们正在使用带有 webflux 的 spring boot 2.4.5 并调用具有客户端凭据授予类型的服务。我们注意到的是 webclient 没有遵循重定向。

我们如何让 webclient 遵循重定向,它可以继续传递访问令牌,直到它获得 http 200?

添加以下代码段不会将访问令牌传递给重定向的 url,它会返回 401。

0 投票
0 回答
124 浏览

swagger-ui - 从 Swagger 为 ClientCredential Flow 调用 okta 令牌 URL 时出现 PKCE 错误

为 API 创建了 Swagger UI,并希望使用此 Swagger 公开 API(意味着应用程序没有设置除此 Swagger 之外的任何其他 UI)。Swagger 已为 OAuth2 ClientCredential 流配置,其令牌 URL 为 https://{{domain}}.okta.com/oauth2/{{OAuthServrID}}/v1/token,但在授权时,出现以下错误 {error: invalid_client,描述:对令牌端点的浏览器请求必须使用 Proof Key 进行代码交换}

我很少看到有关此问题的帖子,例如 Okta 引入了此要求以防止在 Web 浏览器中使用客户端凭据流。但是有解决方案或解决方法吗?

0 投票
2 回答
31 浏览

oauth-2.0 - API 到 API - 使用服务帐户

我正在尝试借助客户端凭据流从另一个 API (API1) 调用 API (API2)。是否可以仅授予对 API2 某些部分的访问权限?

为了提供一些上下文,当从 API1 调用 API2 时,我目前正在使用一个服务帐户来决定允许访问 API2 的哪些部分。服务帐户在 API2 中创建和配置(使用角色),并提前与 API1 共享。

我正在尝试使用 oAuth 的客户端凭据流来实现这一点,但我找不到任何有关 API 内受限访问的信息。我相信 ApiScopes 在这种情况下不起作用。

您能否让我知道在客户端凭据流中是否可以进行受限 API 访问?或者这可以在任何其他流程中实现吗?

问候,湿婆

0 投票
0 回答
204 浏览

azure-active-directory - 配置 OpenAPI/Swagger 以使用客户端凭据流从 Azure AD 获取 access_token

我们正在尝试在我们的 .NET 6 API 项目中配置 swagger,以便它使用“客户端凭据流”自动从 Azure 令牌端点检索 access_token。这是startup.cs中的配置部分

当用户第一次单击“授权”按钮时,它看起来如下。但是,在输入 client_id 和 client_secret 并单击 Authorize 按钮后,它会显示消息“Auth Error TypeError: Failed to fetch”

在此处输入图像描述

发送到令牌端点的请求有些奇怪。有效负载仅包括 grant_type 和范围。但是 client_id 和 client_secret 是 base64 编码并在 Authorization 标头中发送:

在此处输入图像描述

是 Azure 令牌端点拒绝生成 access_token 的原因吗?我使用了相同的令牌端点并成功使用邮递员获取令牌,但我在有效负载中包含了所有参数。

如果是这种情况,是否可以更改 Swagger 的配置,以便在有效负载中发送 client_id 和 client_secret(连同 grant_type 和范围)?

0 投票
1 回答
161 浏览

azure - Microsoft Identity Web:具有基于证书的身份验证的 Azure AD 客户端凭据流

我正在使用 Microsoft Identity Web (MSAL) 库连接到 Graph API。[https://github.com/AzureAD/microsoft-identity-web][1]

为此,我将客户端凭据流与基于证书的身份验证一起使用。

我的配置如下

服务注册

appSettings.json

为此,我收到以下错误

IDW10104:客户端密钥和客户端证书都不能为空或空格,并且在调用 Web API 时,Web 应用程序的配置中只能包含 ONE。例如,在 appsettings.json 文件中。

但是,我能够使用Microsoft.Identity.Client累积令牌并与 Graph API 连接(使用客户端凭据流和基于证书的身份验证)

我在这里缺少任何配置吗?