...是的,我知道标题本身有缺陷!
当前,我有一个系统,该系统使用/ userinfo端点中的信息来决定是否允许他们访问特定资源。
例如仅允许具有和= company = X属性的成员访问X公司的资源
这很好。但是,现在我想允许一台机器访问X公司的资源(不涉及用户)。如果我创建一个服务帐户并使用客户端凭据授予获得访问令牌,那么将没有相应的userinfo(因为没有用户)。
我的问题是-允许机器访问X公司数据的正确方法是什么?
注意:公司(在此示例中)不是固定列表。它们可以动态添加。
答案 0 :(得分:1)
当您是指计算机时,我假设您有一个在计算机上运行的客户端应用程序。并且此客户端需要获取令牌并消耗资源。
就OAuth 2.0而言,最终用户无需获得令牌。这是使用客户端证书授予时看到的。此外,用户信息终结点由OpenID Connect定义。在OpenID Connect中,每个流程都涉及最终用户交互(最终用户身份验证)。
您有两个选择
您在此处创建特定于所提及机器的用户,并与客户端共享该机器的密码。该用户很特殊,这意味着它不是人类。您可以进一步为此类用户定义规则
您将无法获得有关用户信息端点的任何帮助。但是您将必须信任访问令牌并允许访问资源。例如,这是匿名访问。特殊资源集将接受此资源,并且这些资源将不归任何用户所有。