问题标签 [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.
c# - OpenID Connect:如何在客户端凭证流中添加声明数据
是否可以使用 OpenID Connect 在客户端凭据流中添加自定义声明数据?
如果是的话,你能告诉我怎么做吗?
我正在为移动应用程序的服务设置客户端凭据流,以便通过令牌端点进行通信以获取访问令牌。在这里,我需要使用 JWT 声明中的每个用户登录数据生成令牌。
请建议是否有更好的流程来实现这一目标。
identityserver4 - 使用身份服务器 4 和客户端凭据授予类型的基于角色的访问
我刚开始使用 Identity Server 4。
我正在尝试使用 Client Credentials 授权类型来保护 API。
我在 IS4 中有一个 API 设置:
我也有以下客户端设置:
我在 API 中有一个要保护的控制器:
如果我随后创建一个令牌请求,如下所示:
这允许我调用 API 并访问资源。完美的!
但是,我想用一个角色来保护控制器,例如
所以我的两个问题是:
1:如何使用客户端凭据设置基于角色的授权?
2:由于客户端凭据未链接到用户,我如何保持记录更改的审计跟踪,例如供应商 X 由 userId 5 更新,等等。
谢谢
authorization - 如何在 keycloak 管理控制台中对客户端进行 IP 限制
我在 keycloak 管理控制台中定义了一个客户端,以使用 client_credentials 流对其进行授权,以在我的应用程序中调用服务器到服务器 api。一切都很好,我想为该客户端应用 IP 限制。
我在哪里可以在管理控制台中定义这个限制?我在 keycloak 文档中没有找到这样的配置。
azure-ad-b2c - 更改密码 Azure AD B2C
我已经能够创建 Azure Functions App 来管理 Azure B2C 用户。我可以使用 client_credentials Flow 创建新用户并完美更新配置文件。但是,当我使用带有正文的 PATCH 请求更改密码时:
我收到此错误:
我对此进行了一些研究,并发现更新密码需要委托权限“Directory.AccessAsUser.All”。在前端应用程序中,我使用 B2CLogin 流登录,因此访问令牌与 Graph API 不兼容。此外,“Directory.AccessAsUser.All”在 B2C 应用程序的应用程序级别不存在。因此,我也不能将补丁请求与 client_credentials 流一起使用。根据一些建议,该过程可以由 Azure AD PowerShell 通过分配“公司管理员”角色来完成。但是,我还没有找到通过 Azure Function 重置密码的解决方案。分步解决方案(如果存在)对我来说真的很有帮助,因为我对 Azure 服务还比较陌生。
rest - 具有 API 和仅外部提供商的网站的 OAuth 安全性
我在一台服务器上有一个带有 RESTful API 的 .Net core 3.2 站点,在另一台服务器上有一个客户端网站。用户仅通过 Facebook、Google 或 Microsoft 等外部提供商向客户端应用程序进行身份验证。我们还有一个将要使用的 Identity Server 4.0,但它的行为就像另一个外部提供者一样。
问题是,一旦用户在客户端通过身份验证,并且他们授予的角色/声明已经确定,我们如何从 API 请求特定资源?客户端 Web 应用程序了解用户并知道用户就是他们所说的那个人,客户端应用程序知道他们可以做什么。我们如何将这些信息安全地传递给 API?
我正在考虑 API 和网站之间的 client_credentials,但它似乎适用于没有用户的情况,如服务或守护进程。
我不希望 API 知道或关心用户,只希望他们经过身份验证以及他们的声明是什么。
security - OAuth2 - 受信任的客户端能否通过客户端凭据流访问用户资源
从 OAuth 网站查看对客户端凭据授予类型的解释:
客户端使用客户端凭据授予类型来获取用户上下文之外的访问令牌。
这通常被客户端用来访问关于他们自己的资源,而不是访问用户的资源。
如果客户端是受信任的应用程序(内部开发),它可以访问用户的资源吗?
从技术上讲,应用程序不是这些资源的“资源所有者”,但因为它是内部开发的“超级”应用程序,它应该能够访问它们,以实现组织的业务需求。
例如 - 想想您在 Google 中的用户。Google 地图应用程序会创建您拥有的资源(例如您在地图上“保存”的位置)。然后,一些具有“超级”权限的 Google 守护程序应用程序可以访问您创建的那些资源,以便处理它们并向您展示相关的广告。
那有意义吗?
谢谢!
西蒙。
oauth - oauth - 共享 client_secret
假设我在 Auth 服务器上注册了 2 个服务:
- 服务 A,带有
client-id=service-a-id
和client_secret=service-a-secret
- 服务 B,带有
client-id=service-b-id
和client_secret=service-b-secret
Auth Server 发出 JWT
现在服务 A 想要调用服务 B 并使用client credentials
流。哪些服务应该client_secret
与另一个服务共享它的共享?如果 Service A 使用自己的 secret 向 auth server 发送请求并获取令牌,那么service-a-secret
应该与 Service B 共享,以便它可以验证 JWT 签名?
我很迷失方向,因为secret
假设除了身份验证服务器和所有者应用程序之外不与任何人共享。但是,如果服务 B 想在不调用 Auth Server 的情况下验证令牌,它应该怎么做。
reactjs - oauth2 客户端凭据流 Cors 问题
我正在尝试在我的反应应用程序中使用adal-node实现客户端凭据流
我正在尝试的代码
我已经从我的本地运行http://localhost:3000/
因此,在应用程序的 Azure 活动目录应用程序注册中,我已http://localhost:3000/
在 Web 重定向 URI 下添加。还尝试在 SPA 下添加它
但是当我运行它时会出现 CORS 错误
Access to fetch at 'https://login.microsoftonline.com/xxxx.onmicrosoft.com/oauth2/token?api-version=1.0' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
我在这里遗漏了一些东西
当我运行 Chrome 时chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
这有效并生成有效令牌
postman - 如何创建一个 client_credential 帐户才能执行管理任务?
我正在尝试实现与该用户相同的操作,但使用带有 client_credentials 的客户端
我已经按照这篇文章创建了具有客户端凭据授予的客户端,因此我可以像这样获取访问令牌
但是当我尝试调用execute-action-email api时,我只收到错误 401
我错过了什么?