首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用本地数据库的WSO2 API管理器终端用户自定义身份验证策略

使用本地数据库的WSO2 API管理器终端用户自定义身份验证策略
EN

Stack Overflow用户
提问于 2021-03-03 05:32:09
回答 1查看 231关注 0票数 1

对于通过web浏览器通过internet访问的web应用程序门户,需要在WSO2 API管理器中实现以下身份验证流。

  • 应用程序的最终用户(Portal瘦客户端)必须使用用户/密码方案登录。
  • 用户和凭据信息存储在本地应用程序关系数据库(例如- MySQL)中。
  • 应用程序具有用户管理屏幕来添加/删除/更新用户和映射角色。
  • API管理器必须针对本地用户存储对用户进行身份验证,并生成一个JWT/Ouath2 2令牌。
  • 要配置自定义密码策略(例如,用户必须在5次失败尝试后被锁定)。
  • 最终用户将使用生成的令牌访问受保护的API。
  • API管理器应该授权令牌,并将API路由到适当的微服务。

从我们发现的文档中,应该创建一个辅助用户存储,以允许应用程序的最终用户成为WSO2 API用户的一部分,因此身份验证将由API管理器本身负责。我希望更好地了解如何实施这一目标。

  1. 通过应用程序中的用户管理屏幕,预期最终用户数据库中的更改是非常动态的,是否需要以某种方式将其更新为API管理器用户存储?或者可以将API管理器用户存储直接从适用的用户表中读取。
  2. API管理器能否针对每个用户执行应用程序DB中配置的加密密码验证?
  3. 有没有其他方法,例如,我的应用程序公开一个rest端点进行身份验证,而API管理器通过传递作为令牌api一部分接收的用户名和密码来调用这个端点来执行身份验证。
EN

回答 1

Stack Overflow用户

发布于 2021-06-26 18:34:23

您可以将应用程序的用户存储作为API管理器中的辅助存储,并实现您的需求。有关配置二次用户存储的详细信息,请参阅有关配置的正式文档。

此外,如果您有一个JDBC用户存储,那么您可以定制API管理器中的辅助用户存储的查询,以正确地查询用户条目。此外,您还可以实现自定义的用户商店管理器和插件(如果您有更多的自定义字段和操作)。

回答你的问题

通过应用程序中的用户管理屏幕,预期最终用户数据库中的更改是非常动态的,是否需要以某种方式将其更新为API管理器用户存储?或者可以从适用的用户表中直接读取API管理器用户存储区吗?

不,它不需要在API管理器中执行任何手动更改,除非您没有正确配置用户存储。但是,请注意,如果您计划使用应用程序用户存储中的用户的用户在API平台中创建API和订阅,那么删除这些用户可能会导致平台中不一致的行为。

API管理器能否针对每个用户执行应用程序DB中配置的加密密码验证?

您可以编写一个自定义的用户商店管理器来处理密码验证。

有没有其他方法,例如,我的应用程序公开一个rest端点进行身份验证,而API管理器通过传递作为令牌API一部分接收的用户名和密码来调用这个端点来执行身份验证。

我可以想出一个替代REST方法的方法。它是开发一个定制的Handler,并使它与API一起执行除了令牌验证之外的验证。总之,

  • 开发一个突触手
  • 让Handler与API以及默认的APIAuthenticationHandler一起使用
  • 从自定义处理程序中的传输头读取和提取usernamepassword
  • 调用应用程序的REST端点并检查有效性
  • 如果成功,继续进行API调用(继续通常的令牌验证过程和所有过程),如果不成功,则删除并返回错误。

但是,请注意,这个外部验证过程需要足够快,以避免在较长时间内阻塞API管理器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66451288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档