问题标签 [implicit-flow]
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.
oauth-2.0 - 将隐式流与 SPA 一起使用时,我们实际上在数据库中的何处创建帐户?
我试图了解 OAuth2.0 Implicit Flow (with OIDC) 如何与一个非常简单的 SPA/Mobile 客户端 (aka Client) 和我的 REST Api (aka Resource Server) 一起使用并创建新帐户。
我或多或少了解客户端如何从身份验证服务(Auth0/Stormpath/IdentityServer/etc)请求令牌。然后它使用这个令牌来访问受限的 API 端点。
但是我一直在阅读的所有示例都是在这些身份验证服务上创建了“帐户”(这是必需的,我理解),但在我的服务(我的资源服务器)上没有创建任何内容。
我需要在我的数据库中创建一个帐户,因为我有想要存储的用户数据/设置(例如,他们下的订单等)。当然,我不想存储任何安全信息……因为这就是我使用外部身份验证服务的原因。
那么,任何人都可以解释他们如何使用隐式流和..当返回令牌(或更具体地说,当使用 OpenID Connect 获取用户信息时)时,您会确定用户是否存在,如果是新用户则创建一个.
我还认为,从身份验证服务的角度issuer_id + sub
确定用户都需要令牌。unique
最后,您如何防止“新帐户垃圾邮件/滥用”?我假设在您的客户端中的某个时刻(在每个 Rest API 请求之前检查本地存储令牌,因为我们需要在bearer
标头中粘贴一些令牌)......当您决定创建一个新用户时...... .我的REST Api(又名资源服务器)将有一个端点来创建新用户..就像POST /account/
..那么如何保护您的服务器免受垃圾邮件的新随机POST创建新帐户?IP+时延限制?
oauth-2.0 - oauth2 隐式流缺少同意屏幕
我正在使用 auth0 玩 oauth2。我能够使用 REST 客户端发送模拟隐式流。我的问题是我能够在不弹出同意屏幕的情况下获取用户详细信息。流程如下 1. 我发送用户名、密码和客户端 ID。2. 获取访问令牌 3. 使用步骤 2 中的访问令牌发送请求用户信息的请求。这里我得到了带有用户详细信息的响应,但是没有同意屏幕,弹出用户授予访问权限。这不是一个缺陷吗?
oauth-2.0 - 与 IdentityServer4 相关的隐式流/授权类型概述或图表
我正在学习使用 IdentityServer4 实现隐式流。我有一个使用 MVC 的工作演示。
任何人都可以提供与 IdentityServer4 和 OpenID Connect 相关的隐式流程流程图吗?
此外,是否可以使用诸如 Postman 之类的东西来测试此流程,或者该流程是否与客户端上运行的 JS 紧密耦合,例如此处所述的答案?
如果我将grant_type 混为一谈,因为这种安全性对我来说是新的:)
access-token - 身份服务器 4 中的静默令牌更新,js 客户端应用程序未按预期工作
我正在使用身份服务器 4 为企业架构中的不同应用程序提供身份服务。
使用带有 oidc-client.js 的身份服务器 4 应用程序使用隐式流注册了一个 SPA 应用程序,并且正在运行。
但是问题在于令牌更新,需要长时间保留用户登录而不要求用户再次登录。
为了实现这一点,使用以下配置实现了静默令牌更新。
var mgr = new Oidc.UserManager(config);
通过上述配置,自动更新正在发生,但它不是如预期的那样静默更新,正在发生完整的页面重定向到重定向 uri 以处理来自身份服务器的响应。
例如: index.html 是我的实际页面,其中发生静默更新, callback.html 是重定向 uri , index.html 被重定向到 callback.html 然后更新,然后重定向回 index.html,附加实际网络日志以下,
任何人都可以帮我解决这个问题,让无声更新发生。
oauth-2.0 - 如何在 OpenID Connect/OAuth2 隐式流中获取新的访问令牌
我目前在移动应用程序中使用 OpenID Connect/Oauth2 Implicit Flow。我正在为用户提供一个 Web 视图来登录并获取访问令牌和到期时间。但是,当访问令牌过期时,我需要要求用户重新登录吗?或者有没有一种方法可以使用当前的访问令牌静默获取新的访问令牌,而不会打扰用户。我想另一种选择是将令牌到期时间设置为非常长的时间,但我读过这是一个坏主意。
我在这里错过了什么吗?
javascript - Mendeley API - 如何使用 JavaScript SDK - 隐式流认证
我希望你不会介意我发布一个问题,因为我不是程序员,需要一个“傻瓜”的解释。虽然我可以使用基本的 JavaScript,但我从未使用过 API。
这就是我想要做的:
我在我的硬盘驱动器上制作了一个 HTML 页面(我最终想将它与 PhoneGap 之类的东西打包到一个移动应用程序中,以便与我的同事分享)。
在我的页面的一部分中,我想填充我在基于 Web 的 Mendeley 参考管理器应用程序中拥有的带注释的引文文件夹的内容。
目前,我正在用一个 JSON 文件填充我的页面(我从 Mendeley 导出并重新格式化 - 只是为了让我的引文格式代码正确 - 这部分很好,看起来很棒)。
但我希望我的页面不是使用以前导出的文件填充,而是在打开我的应用程序时自动下载到我的页面中的 Mendeley 文件夹的最新内容。
我已经研究了 Mendeley api “文档”,查看了书籍,YouTube 教程,搜索了网络 - 所有使用 api 下载我能找到的数据的示例,不要帮助我弄清楚如何使用 Mendeley api。我什至无法从 Mendeley SDK 中的“示例”中理解!
到目前为止,这就是我所能理解的(或者可能是误解!):
- 在 Mendeley 注册并获得一个“客户 ID”和一个“秘密”:我已经做到了
- 决定我想要什么样的身份验证流程:这将是“隐式流程”,因为我需要直接从浏览器访问 Mendeley。我知道“隐式流”不需要“秘密”,只需要“客户端 ID”。
- 使用 Mendeley JavaScript SDK:我使用的是“独立”版本 - 我在我的页面中使用脚本标记来引用它,如 Readme SDK 文件中所述。我还将隐式流所需的代码片段复制并粘贴到名为“oauth-config.js”的文件中,如 SDK 示例文件中所述:oauth-config.implicit-grant.js.dist
但现在呢?
- 我究竟如何使用 SDK 来获取我的数据?我找不到方向。
- 假设我可以从 Mendeley 获取我的数据,我处理 JSON 以在我的页面中显示的脚本如何访问响应数据?
asp.net-core - IdentityServer4 - 如何实现模拟
我要求允许我们的内部支持用户冒充我们的客户用户。
我目前正在使用 IdentityServer4、隐式流和 OIDC 客户端。
目前找到的资源。
鉴于在线资源有限,是否有关于我可以/应该如何使用 IdentityServer4 实现模拟的任何建议?
angular - IdentityServer4 - 结合 MVC 和 SPA - 避免额外的往返
我有一个网站,它结合了 ASP.NET Core MVC 和基于角度的 SPA,我正在尝试使用 IdentityServer4 来保护它。当前登录流程如下所示:
- 用户单击主页上的登录按钮(www.example.com,基于 MVC)
- 用户被重定向到登录页面(login.example.com,基于 MVC)并登录
用户被重定向到 www.example.com/app 站点检测到它没有用户的 cookie,因此它将用户重定向到 login.example.com/connect/authorize 端点- 用户被重定向回带有 id_token 到 www.example.com/signin-oidc 的站点,这会丢弃 cookie
- 然后用户最终被重定向到应该显示 SPA 的 www.example.com/app
问题是当这最终完成时,SPA 需要访问令牌,以便它可以调用 API。我尝试使用 angular-auth-oidc-client 库,问题是这会等待整个 Angular 应用程序加载应用程序才发现它没有访问令牌并再次重定向到 login.example.com /connect/authorize 端点以获取令牌。
有没有更简单的方法来做到这一点?即在第 5 步使用访问令牌将用户重定向到应用程序?或者选择一种完全不同的方式来识别身份?
angular - 如何在 Identity Server 4 中使用自定义逻辑来限制可以向谁颁发 id 令牌或访问令牌
我有一个用 Angular 编写的 SPA,它与一些 API(也归我所有)通信以完成所有工作。为了保护应用程序,我使用带有 AAD 的 Identity Server 4 作为单个外部提供程序。
如果用户在导航到路由之前尚未经过身份验证,我在 Angular 中使用路由保护来启动 oidc 隐式流。这一切都很好——在可以访问任何“安全”路由之前,用户必须使用 AAD 登录。
该应用程序的一个新要求是只允许我们 AAD 租户中的一部分用户使用该应用程序。在 AccountController.ExternalLoginCallback(来自快速入门 UI)中,我可以使用从 AAD 返回的声明来做出此决定。一旦我确定了它是否是一个有效用户,我就无法弄清楚如何从那里做认证失败并将响应返回给我的 SPA,这将允许我显示“未经授权”的视图。
这可能吗?我的工作流程是否需要更改以满足这一新要求,或者有没有办法将此自定义逻辑注入到 Identity Server 的某个地方?
angular - Angular、Keycloak 和 SSO 使用 angular-oauth2-oidc 自动登录
我们正在尝试在我们的环境中创建以下设置... Angular 4.4+ 应用程序使用 Keycloak 作为具有 AD 联合和 Kerberos 支持的身份验证服务器。这是为了为我们的 Intranet 用户提供我们内部 Web 应用程序的真正 SSO 体验。
流动:
- 用户导航到应用程序
- 应用程序检查本地存储中的有效令牌
- 如果没有有效令牌,则启动 initImplicitFlow
- 服务器和客户端浏览器进行 Kerberos 协商,而不是显示登录屏幕
- 协商成功后重定向回应用程序,就像用户输入了正确的凭据一样。
- 应用程序在响应中检查有效令牌(这是模糊的部分),将令牌和用户角色保存到 localStorage,并且路由守卫现在允许在应用程序中导航。
我试图让以下示例进行自动登录启动,但似乎无法让它工作。任何人都可以查看此示例并查看将 initImplicitFlow 调用放在何处以使其工作吗?我尝试了很多不同的东西,以至于我什至无法保持直截了当。
参考项目 - https://github.com/manfredsteyer/angular-oauth2-oidc/tree/master/sample/src
感谢您对此提供任何帮助或指导。