7.2. 认证和授权
7.2.1. 使用 OAuth 控制访问
您可以通过身份验证和授权使用 API 访问控制来保护容器平台。OpenShift Container Platform master 包含内置的 OAuth 服务器。用户可以获取 OAuth 访问令牌来对自身进行 API 身份验证。
作为管理员,您可以使用用户身份供应商(如 LDAP、GitHub 或 Google)配置 OAuth 以进行身份验证。Deny All 用户身份供应商默认用于新的 OpenShift Container Platform 部署,但您可以在初始安装时或安装后进行此配置。如需完整的身份提供程序列表,请参阅配置身份验证和用户代理。
例如,在安装后配置 GitHub 身份提供程序:
- 编辑 /etc/origin/master-config.yaml 中的 master 配置文件。
修改
oauthConfig
小节:oauthConfig: ... identityProviders: - name: github challenge: false login: true mappingMethod: claim provider: apiVersion: v1 kind: GitHubIdentityProvider clientID: ... clientSecret: ... organizations: - myorganization1 - myorganization2 teams: - myorganization1/team-a - myorganization2/team-b
注意如需更多详细信息和使用情况,请参阅配置身份验证中的 GitHub 部分。
保存更改后,重启 master 服务以使更改生效:
# master-restart api # master-restart controllers
深入阅读
OpenShift Container Platform 架构
- OpenShift Container Platform CLI 参考
- OpenShift Container Platform 开发者指南:CLI 身份验证
7.2.2. API 访问控制和管理
应用程序可以拥有多个独立的 API 服务,这些服务具有不同的端点需要管理。OpenShift Container Platform 包含 3scale API 网关的容器化版本,以便您管理 API 并控制访问。
3scale 为您提供用于 API 身份验证和安全性的各种标准选项,它们可单独或组合起来用于发布凭证和控制访问:标准 API 密钥、应用程序 ID 和密钥对以及 OAuth 2.0。
您可以限制对特定端点、方法和服务的访问,并为用户组应用访问策略。您可以通过应用程序计划来为各组开发人员设置 API 使用率限制并控制流量。
有关使用容器化 3scale API 网关 APIcast v2 的教程,请参阅在 Red Hat OpenShift 上运行 APIcast。
7.2.3. Red Hat SSO
Red Hat Single Sign-On(RH-SSO)服务器通过根据标准提供 Web SSO 功能来保护应用程序,包括 SAML 2.0、OpenID Connect 和 OAuth 2.0。该服务器可充当基于 SAML 或 OpenID Connect 的用户身份供应商 (IdP),使用基于标准的令牌在您的企业用户目录或用于身份信息的第三方用户身份供应商与您的应用程序之间进行调和。您可以将 Red Hat SSO 与基于 LDAP 的目录服务集成,包括 Microsoft Active Directory 和 Red Hat Enterprise Linux Identity Management。
有关使用指南,请参阅 Red Hat JBoss SSO。
7.2.4. 安全自助服务 Web 控制台
OpenShift Container Platform 提供了一个自助服务 Web 控制台,以确保团队在没有授权的情况下无法访问其他环境。OpenShift Container Platform 通过提供以下功能来确保安全多租户 master:
- 使用传输层安全 (TLS) 访问 master
- 使用 X.509 证书或 OAuth 访问令牌访问 API 服务器
- 通过项目配额限制异常令牌可以造成的破坏
- etcd 不直接向集群公开
深入阅读
-
OpenShift Container Platform 架构: Infrastructure Components
Web Console - OpenShift Container Platform Developer Guide: Web Console Authentication