繁体   English   中英

每个设备是否应该让 Keycloak 中的用户通过资源所有者密码凭据进行身份验证

[英]Should each device get a user in Keycloak authenticated through Resource Owner Password Credentials

我正在使用人类用户和物联网设备在 Keycloak 中实现身份验证系统。

人类用户:通过 spa 访问系统并使用基于标准重定向的身份验证流程。

物联网设备:该用例涉及许多高价值设备,这些设备不具有交互性,需要将遥测数据传输到后端并访问它们自己的数据以及来自相关用户的数据。 我目前的计划是使用资源所有者密码凭据授予,因为可以在配置期间使用凭据设置嵌入式系统。

我的想法是,这将使我能够使用 Keycloak 组和角色进行权限管理和用户 <-> 设备关联。

这种方法有什么本质上的错误吗?

我目前的计划是使用资源所有者密码凭据授予,因为可以在配置期间使用凭据设置嵌入式系统。

源代码可以阅读:

资源所有者密码凭证授予类型适用于资源所有者与客户端具有信任关系的情况,例如设备操作系统或高特权应用程序。 授权服务器在启用此授权类型时应特别小心,并且仅在其他流程不可行时才允许它。

此授权类型适用于能够获取资源所有者凭据(用户名和密码,通常使用交互式表单)的客户端。 它还用于使用直接身份验证方案(例如 HTTP Basic 或 Digest 身份验证)将现有客户端迁移到 OAuth,方法是将存储的凭据转换为访问令牌:

您的用例是否满足这些限制?

如果不是,请考虑改用客户端凭据授予

使用机器对机器 (M2M) 应用程序(例如 CLI、守护程序或在后端运行的服务)时,系统会验证和授权应用程序而不是用户。 对于这种情况,用户名 + 密码或社交登录等典型身份验证方案没有意义。 相反,M2M 应用程序使用客户端凭据流(在 OAuth 2.0 RFC 6749,第 4.4 节中定义),其中它们传递其客户端 ID 和客户端密钥来验证自己并获取令牌。

因此,在后者中,您将使用客户端密码而不是使用用户名和密码进行身份验证。

我的想法是,这将使我能够使用 Keycloak 组和角色进行权限管理和用户 <-> 设备关联。

您仍然可以向机密客户端添加声明并将其用于权限管理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM