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
  6. 复制 GitHub OAuth 客户端 Secret,并将其编码为 Base64,以便在应用 GitHub OAuth App Secret 时使用:

    $ echo -n '<github_oauth_client_secret>' | base64
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
    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
  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
  8. 复制 GitLab Client Secret,并将其编码为 Base64,以便在应用 GitLab-authorized 应用程序 Secret 时使用:

    $ echo -n '<gitlab_client_secret>' | base64
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
    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
  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
  8. 复制 Secret 值并将其编码为 Base64,以便在应用 Bitbucket OAuth consumer Secret 时使用:

    $ echo -n '<bitbucket_oauth_consumer_secret>' | base64
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
    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
  3. 在输出中验证是否创建了 Secret。

3.9.2. 配置管理用户

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

流程

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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.