搜索

7.6. direct Naked Impersonation

download PDF

您可以在不提供 subject_token 的情况下发出内部令牌交换请求。这称为直接人类模拟,因为它将大量信任放在客户端中,因为该客户端可以模拟域中任何用户。对于无法获取主体才能交换的应用,您可能需要进行这个桥接。例如,您可能要集成一个直接与 LDAP 登录的遗留应用程序。在这种情况下,传统应用程序可以验证用户本身,但不能获取令牌。

警告

为客户端启用直接 naked impersonation 存在风险。如果客户端的凭据已被停止,则客户端可以模拟系统中的任何用户。

7.6.1. 授予对交换的权限

如果提供 audience 参数,则调用客户端必须具有与客户端交换的权限。本章前文中介绍了如何设置此设置。

另外,调用客户端必须被授予模拟用户的权限。在管理控制台中.

流程

  1. 点菜单中的 Users
  2. 单击权限选项卡。

    用户权限

    User Permissions

  3. 权限已启用 为 true。

    身份供应商权限

    exchange users permission set

    该页面显示 模仿 链接。

  4. 点击该链接以开始定义权限。

    这个设置页面会显示。

    用户识别权限设置

    Users Impersonation Permission Setup

  5. Authorization 链接
  6. 前往 Policies 选项卡,再创建客户端策略。

    客户端策略创建

    Client Policy Creation

  7. 输入作为请求令牌交换的经过身份验证的用户的起始客户端。
  8. 返回到用户的 模拟 权限,再添加您刚刚定义的客户端策略。

    应用客户端策略

    Apply Client Policy

现在,您的客户端具有模拟用户的权限。如果您没有正确执行此操作,如果您尝试进行这类交换,您将得到一个 403 Forbidden 响应。

注意

不允许公共客户端直接生成模拟。

7.6.2. 发出请求

要发出请求,只需指定 requested_subject 参数。这必须是有效用户的用户名或用户 id。如果您想要,还可以指定 audience 参数。

curl -X POST \
    -d "client_id=starting-client" \
    -d "client_secret=the client secret" \
    --data-urlencode "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \
    -d "requested_subject=wburke" \
    http://localhost:8080/auth/realms/myrealm/protocol/openid-connect/token
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.