3.9. 管理身份和授权


本节介绍管理 Red Hat OpenShift Dev Spaces 的身份和授权的不同方面。

3.9.1. GitHub、GitLab 或 Bitbucket 的 OAuth

允许用户处理远程 Git 存储库:

3.9.1.1. 为 GitHub 配置 OAuth 2.0

允许用户处理 GitHub 上托管的远程 Git 存储库:

  1. 设置 GitHub OAuth App (OAuth 2.0)。
  2. 应用 GitHub OAuth App Secret。
3.9.1.1.1. 设置 GitHub OAuth 应用程序

使用 OAuth 2.0 设置 GitHub OAuth 应用程序。

先决条件

  • 登录到 GitHub。
  • base64 安装在您要使用的操作系统中。

流程

  1. 前往 https://github.com/settings/applications/new
  2. 输入以下值:

    1. 应用程序名称OpenShift Dev Spaces.
    2. 主页 URL:"https://devspaces-<openshift_deployment_name>.<domain_name>"/
    3. 授权回调 URL:"https://devspaces-<openshift_deployment_name>.<domain_name>"/api/oauth/callback
  3. 点击 Register application
  4. Generate new client secret
  5. 复制 GitHub OAuth 客户端 ID,并将其编码为 Base64,以便在应用 GitHub OAuth App Secret 时使用:

    $ echo -n '<github_oauth_client_id>' | base64
    Copy to Clipboard Toggle word wrap
  6. 复制 GitHub OAuth 客户端 Secret,并将其编码为 Base64,以便在应用 GitHub OAuth App Secret 时使用:

    $ echo -n '<github_oauth_client_secret>' | base64
    Copy to Clipboard Toggle word wrap
3.9.1.1.2. 应用 GitHub OAuth App Secret

准备并应用 GitHub OAuth App Secret。

先决条件

  • 设置 GitHub OAuth 应用程序已完成。
  • 准备好设置 GitHub OAuth App 时所生成的 Base64 编码值:

    • GitHub OAuth 客户端 ID
    • GitHub OAuth 客户端机密
  • 具有对目标 OpenShift 集群的管理权限的活跃 oc 会话。请参阅 CLI 入门

流程

  1. 准备 Secret:

    kind: Secret
    apiVersion: v1
    metadata:
      name: github-oauth-config
      namespace: openshift-devspaces 
    1
    
      labels:
        app.kubernetes.io/part-of: che.eclipse.org
        app.kubernetes.io/component: oauth-scm-configuration
      annotations:
        che.eclipse.org/oauth-scm-server: github
        che.eclipse.org/scm-server-endpoint: <github_server_url> 
    2
    
    type: Opaque
    data:
      id: <Base64_GitHub_OAuth_Client_ID> 
    3
    
      secret: <Base64_GitHub_OAuth_Client_Secret> 
    4
    Copy to Clipboard Toggle word wrap
    1
    OpenShift Dev Spaces 命名空间。默认为 openshift-devspaces
    2
    GitHub Enterprise Server URL。默认情况下 ,https://github.com 用于 SAAS 版本。
    3
    Base64 编码的 GitHub OAuth 客户端 ID
    4
    Base64 编码的 GitHub OAuth 客户端 Secret
  2. 应用 Secret:

    $ oc apply -f - <<EOF
    <Secret_prepared_in_the_previous_step>
    EOF
    Copy to Clipboard Toggle word wrap
  3. 在输出中验证是否创建了 Secret。

3.9.1.2. 为 GitLab 配置 OAuth 2.0

允许用户处理使用 GitLab 实例托管的远程 Git 存储库:

  1. 设置 GitLab 授权应用程序(OAuth 2.0)。
  2. 应用 GitLab 授权应用程序 Secret。
3.9.1.2.1. 设置 GitLab 授权应用程序

使用 OAuth 2.0 设置 GitLab 授权应用程序。

先决条件

  • 登录到 GitLab。
  • base64 安装在您要使用的操作系统中。

流程

  1. 点您的 avatar,转到 Edit profile Applications
  2. 输入 OpenShift Dev Spaces 作为名称
  3. 输入 "https://devspaces-<openshift_deployment_name>.<domain_name>"/api/oauth/callback 作为 Redirect URI
  4. 选中 机密和 过期访问令牌 复选框。
  5. Scopes 下,选中 apiwrite_repositoryopenid es。
  6. Save application
  7. 复制 GitLab 应用 ID,并将其编码为 Base64,以便在应用 GitLab-authorized 应用程序 Secret 时使用:

    $ echo -n '<gitlab_application_id>' | base64
    Copy to Clipboard Toggle word wrap
  8. 复制 GitLab Client Secret,并将其编码为 Base64,以便在应用 GitLab-authorized 应用程序 Secret 时使用:

    $ echo -n '<gitlab_client_secret>' | base64
    Copy to Clipboard Toggle word wrap
3.9.1.2.2. 应用 GitLab-authorized 应用程序 Secret

准备并应用 GitLab-authorized 应用 Secret。

先决条件

  • 设置 GitLab 授权应用程序已完成。
  • 在设置 GitLab 授权应用程序时生成的 Base64 编码值会被准备:

    • GitLab Application ID
    • GitLab 客户端机密
  • 具有对目标 OpenShift 集群的管理权限的活跃 oc 会话。请参阅 CLI 入门

流程

  1. 准备 Secret:

    kind: Secret
    apiVersion: v1
    metadata:
      name: gitlab-oauth-config
      namespace: openshift-devspaces 
    1
    
      labels:
        app.kubernetes.io/part-of: che.eclipse.org
        app.kubernetes.io/component: oauth-scm-configuration
      annotations:
        che.eclipse.org/oauth-scm-server: gitlab
        che.eclipse.org/scm-server-endpoint: <gitlab_server_url> 
    2
    
    type: Opaque
    data:
      id: <Base64_GitLab_Application_ID> 
    3
    
      secret: <Base64_GitLab_Client_Secret> 
    4
    Copy to Clipboard Toggle word wrap
    1
    OpenShift Dev Spaces 命名空间。默认为 openshift-devspaces
    2
    GitLab 服务器 URL。使用 https://gitlab.com 作为 SAAS 版本。
    3
    Base64 编码的 GitLab 应用程序 ID
    4
    Base64 编码的 GitLab 客户端 Secret
  2. 应用 Secret:

    $ oc apply -f - <<EOF
    <Secret_prepared_in_the_previous_step>
    EOF
    Copy to Clipboard Toggle word wrap
  3. 在输出中验证是否创建了 Secret。

3.9.1.3. 为 Bitbucket 服务器配置 OAuth 1.0

允许用户使用托管在 Bitbucket 服务器上的远程 Git 存储库:

  1. 在 Bitbucket 服务器上设置应用程序链接(OAuth 1.0)。
  2. 对 Bitbucket 服务器应用应用程序链接 Secret。

3.9.1.4. 为 Bitbucket 云配置 OAuth 2.0

您可以让用户处理 Bitbucket 云上托管的远程 Git 存储库:

  1. 在 Bitbucket 云中设置 OAuth consumer (OAuth 2.0)。
  2. 对 Bitbucket 云应用 OAuth 使用者机密。
3.9.1.4.1. 在 Bitbucket 云中设置 OAuth 用户

在 Bitbucket 云中为 OAuth 2.0 设置 OAuth 用户。

先决条件

  • 登录到 Bitbucket 云。
  • base64 安装在您要使用的操作系统中。

流程

  1. 点 avatar,进入 All workspaces 页面。
  2. 选择一个工作区并点它。
  3. 前往 Settings OAuth consumers Add consumer
  4. 输入 OpenShift Dev Spaces 作为名称
  5. 输入 "https://devspaces-<openshift_deployment_name>.<domain_name>"/api/oauth/callback 作为 Callback URL
  6. "权限" 下,选中所有 帐户 和存储库复选框,然后单击保存
  7. 展开添加的使用者,然后复制 Key 值并将其编码为 Base64,以便在应用 Bitbucket OAuth consumer Secret 时使用:

    $ echo -n '<bitbucket_oauth_consumer_key>' | base64
    Copy to Clipboard Toggle word wrap
  8. 复制 Secret 值并将其编码为 Base64,以便在应用 Bitbucket OAuth consumer Secret 时使用:

    $ echo -n '<bitbucket_oauth_consumer_secret>' | base64
    Copy to Clipboard Toggle word wrap
3.9.1.4.2. 为 Bitbucket 云应用 OAuth 用户 Secret

为 Bitbucket 云准备并应用 OAuth 用户 Secret。

先决条件

  • OAuth 使用者在 Bitbucket 云中设置。
  • 准备好设置 Bitbucket OAuth 消费者时生成的 Base64 编码值:

    • Bitbucket OAuth 使用者密钥
    • Bitbucket OAuth 使用者机密
  • 具有对目标 OpenShift 集群的管理权限的活跃 oc 会话。请参阅 CLI 入门

流程

  1. 准备 Secret:

    kind: Secret
    apiVersion: v1
    metadata:
      name: bitbucket-oauth-config
      namespace: openshift-devspaces 
    1
    
      labels:
        app.kubernetes.io/part-of: che.eclipse.org
        app.kubernetes.io/component: oauth-scm-configuration
      annotations:
        che.eclipse.org/oauth-scm-server: bitbucket
    type: Opaque
    data:
      id: <Base64_Bitbucket_Oauth_Consumer_Key> 
    2
    
      secret: <Base64_Bitbucket_Oauth_Consumer_Secret> 
    3
    Copy to Clipboard Toggle word wrap
    1
    OpenShift Dev Spaces 命名空间。默认为 openshift-devspaces
    2
    base64 编码的 Bitbucket OAuth 使用者密钥
    3
    Base64 编码的 Bitbucket OAuth 使用者 Secret
  2. 应用 Secret:

    $ oc apply -f - <<EOF
    <Secret_prepared_in_the_previous_step>
    EOF
    Copy to Clipboard Toggle word wrap
  3. 在输出中验证是否创建了 Secret。

3.9.2. 配置管理用户

要在 OpenShift Dev Spaces 服务器上执行需要管理特权的操作,如删除用户数据,请激活具有管理特权的用户。默认安装为 admin 用户启用管理特权,无论它在 OpenShift 中是否存在。

流程

  • 配置 CheCluster 自定义资源,以使用管理特权设置 & lt;admin > 用户。请参阅 第 3.1.2 节 “使用 CLI 配置 CheCluster 自定义资源”

    spec:
      components:
        cheServer:
          extraProperties:
            CHE_SYSTEM_ADMIN__NAME: '<admin>'
    Copy to Clipboard Toggle word wrap

3.9.3. 删除用户数据

3.9.3.1. 根据 GDPR 删除用户数据

您可以使用 OpenShift Dev Spaces API 删除 OpenShift Dev Spaces 用户数据。按照此流程,服务符合欧盟通用数据保护条例(GDPR),以强制个人使用个人数据清除的权利。

先决条件

流程

  1. 获取 &lt ;username&gt; user < id > id : 进入 https://<devspaces-<openshift_deployment_ name >.<domain_name&gt; > /swagger/#/user/find_1,点 Try it out,设置名称 : &lt;username&gt;,然后点 Execute。向下滚动 Response body 以查找 id 值。
  2. 删除 OpenShift Dev Spaces 服务器 管理的 <id > 用户数据,如用户首选项:导航到 https:// <devspaces- &lt;openshift_deployment_name>.<domain_name> &gt;/swagger/#/user/remove,点 Try it out,设置 id: <id>,然后点 Execute。预期为 204 响应代码:
  3. 删除 user 项目,以删除绑定到用户的所有 OpenShift 资源,如工作区、secret 和 configmaps。

    $ oc delete namespace <username>-devspaces
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat