3.4. OAuth 身份验证概述


作为基本身份验证的替代选择,您可以使用有限的 OAuth 1.0 身份验证。这有时在协议的版本 1.0a 中被称为 1 委派的 OAuth。

要在 Satellite Web UI 中查看 OAuth 设置,请导航到 Administer > Settings > AuthenticationOAuth 使用者密钥是 所有 OAuth 客户端要使用的令牌。

Satellite 将 OAuth 设置存储在 /etc/foreman/settings.yaml 文件中。使用 satellite-installer 脚本配置这些设置,因为 Satellite 在升级时会覆盖对此文件的任何手动更改。

3.4.1. 配置 OAuth

要更改 OAuth 设置,请使用所需选项输入 satellite-installer。输入以下命令列出所有 OAuth 相关安装程序选项:

# satellite-installer --full-help | grep oauth

启用 OAuth 映射

默认情况下,Satellite 会授权所有 OAuth API 请求作为内置的匿名 API 管理员帐户。因此,API 响应包含所有 Satellite 数据。但是,您也可以指定 Foreman 用户,以发出请求并限制对该用户访问的数据。

要启用 OAuth 用户映射,请输入以下命令:

# satellite-installer --foreman-oauth-map-users true
重要

Satellite 不签署 OAuth 请求中的标头。具有有效使用者密钥的任何人都可以模拟任何 Foreman 用户。

3.4.2. OAuth 请求格式

每个 OAuth API 请求都需要具有现有 Foreman 用户和 Authorization 标头的 FOREMAN-USER 标头,格式为:

--header 'FOREMAN-USER: sat_username' \
--header 'Authorization: OAuth oauth_version="1.0",oauth_consumer_key="secretkey",oauth_signature_method="hmac-sha1",oauth_timestamp=timestamp,oauth_signature=signature'
重要

使用 OAuth 客户端库来构建所有 OAuth 参数。有关使用 requests_oauthlib Python 模块的示例,请参阅红帽知识库中的 如何通过 Red Hat Satellite 6 中的 python 脚本使用 OAuth 身份验证方法执行 API 调用

Example

本例列出了使用 OAuth 进行身份验证的架构。该请求在 FOREMAN-USER 标头中使用 sat_username 用户名。将 --foreman-oauth-map-users 设置为 true 时,响应仅包含用户有权访问查看的架构。签名反映了每个参数、HTTP 方法和 URI 更改。

请求示例:

$ curl 'https://satellite.example.com/api/architectures' \
--header 'Content-Type: application/json' \
--header 'Accept:application/json' \
--header 'FOREMAN-USER: sat_username' \
--header 'Authorization: OAuth oauth_version="1.0",oauth_consumer_key="secretkey",oauth_signature_method="hmac-sha1",oauth_timestamp=1321473112,oauth_signature=Il8hR8/ogj/XVuOqMPB9qNjSy6E='
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.