3.10. 管理身份和授权

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

3.10.1. OAuth 用于 GitHub、GitLab 或 Bitbucket

允许用户使用远程 Git 存储库:

3.10.1.1. 为 GitHub 配置 OAuth 2.0

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

  1. 设置 GitHub OAuth 应用程序(OAuth 2.0)。
  2. 应用 GitHub OAuth 应用 Secret。
3.10.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- &lt;openshift_deployment_name>.<domain_name&gt; /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.10.1.1.2. 应用 GitHub OAuth 应用程序 Secret

准备并应用 GitHub OAuth 应用 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
    type: Opaque
    data:
      id: <Base64_GitHub_OAuth_Client_ID> 2
      secret: <Base64_GitHub_OAuth_Client_Secret> 3
    1
    OpenShift Dev Spaces 命名空间。默认为 openshift-devspaces
    2
    base64 编码的 GitHub OAuth 客户端 ID
    3
    base64 编码的 GitHub OAuth 客户端 Secret
  2. 应用 Secret:

    $ oc apply -f - <<EOF
    <Secret_prepared_in_the_previous_step>
    EOF
  3. 在输出中验证 Secret 是否已创建。

3.10.1.2. 为 GitLab 配置 OAuth 2.0

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

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

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

先决条件

  • 已登陆到 GitLab。
  • base64 安装在您正在使用的操作系统中。

流程

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

    $ echo -n '<gitlab_application_id>' | base64
  8. 复制 GitLab 客户端 Secret,并将其编码为 Base64,以便在应用 GitLab-authorized 应用程序 Secret 时使用:

    $ echo -n '<gitlab_client_secret>' | base64
3.10.1.2.2. 应用 GitLab-authorized 应用程序 Secret

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

先决条件

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

    • GitLab 应用程序 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.10.1.3. 为 Bitbucket 配置 OAuth 1.0

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

  1. 设置 Bitbucket 应用程序链接(OAuth 1.0)。
  2. 应用 Bitbucket 应用链接 Secret。