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 存储库:
- 设置 GitHub OAuth 应用程序(OAuth 2.0)。
- 应用 GitHub OAuth 应用 Secret。
3.10.1.1.1. 设置 GitHub OAuth 应用程序
使用 OAuth 2.0 设置 GitHub OAuth 应用程序。
先决条件
- 已登陆到 GitHub。
-
base64
安装在您正在使用的操作系统中。
流程
- 请访问 https://github.com/settings/applications/new
输入以下值:
-
应用程序名称 :
OpenShift Dev Spaces
. -
主页 URL:
https://devspaces- <openshift_deployment_name>. <domain_name>/
-
授权回调 URL:
https://devspaces- <openshift_deployment_name>.<domain_name> /api/oauth/callback
-
应用程序名称 :
- 点击 Register application。
- 单击 Generate new client secret。
复制 GitHub OAuth 客户端 ID 并将其编码为 Base64,以便在应用 GitHub OAuth App Secret 时使用:
$ echo -n '<github_oauth_client_id>' | base64
复制 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 入门。
流程
准备 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
应用 Secret:
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
- 在输出中验证 Secret 是否已创建。
3.10.1.2. 为 GitLab 配置 OAuth 2.0
允许用户使用使用 GitLab 实例托管的远程 Git 存储库:
- 设置 GitLab 授权应用程序(OAuth 2.0)。
- 应用 GitLab 授权应用程序 Secret。
3.10.1.2.1. 设置 GitLab 授权应用程序
使用 OAuth 2.0 设置 GitLab 授权应用程序。
先决条件
- 已登陆到 GitLab。
-
base64
安装在您正在使用的操作系统中。
流程
-
点击您的 avatar 并前往
。 - 输入 OpenShift Dev Spaces 作为名称。
-
输入
https://devspaces- <openshift_deployment_name> .<domain_name> /api/oauth/callback
作为 Redirect URI。 - 选中 机密和 过期访问令牌 复选框。
-
在 Scopes 下,选中
api
、write_repository
和openid
复选框。 - 点 Save application。
复制 GitLab 应用程序 ID 并将其编码为 Base64,以便在应用 GitLab-authorized 应用程序 Secret 时使用:
$ echo -n '<gitlab_application_id>' | base64
复制 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 入门。
流程
准备 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
应用 Secret:
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
- 在输出中验证 Secret 是否已创建。
3.10.1.3. 为 Bitbucket 配置 OAuth 1.0
允许用户处理托管在 Bitbucket 服务器上的远程 Git 存储库:
- 设置 Bitbucket 应用程序链接(OAuth 1.0)。
- 应用 Bitbucket 应用链接 Secret。
3.10.1.3.1. 设置 Bitbucket 应用程序链接
使用 OAuth 1.0 设置 Bitbucket 应用程序链接。
流程
在命令行中运行命令,为后续步骤创建必要的文件,并在应用 Bitbucket 应用程序链接 Secret 时使用:
$ openssl genrsa -out private.pem 2048 && \ openssl pkcs8 -topk8 -inform pem -outform pem -nocrypt -in private.pem -out privatepkcs8.pem && \ cat privatepkcs8.pem | sed 's/-----BEGIN PRIVATE KEY-----//g' | sed 's/-----END PRIVATE KEY-----//g' | tr -d '\n' | base64 | tr -d '\n' > privatepkcs8-stripped.pem && \ openssl rsa -in private.pem -pubout > public.pub && \ cat public.pub | sed 's/-----BEGIN PUBLIC KEY-----//g' | sed 's/-----END PUBLIC KEY-----//g' | tr -d '\n' > public-stripped.pub && \ openssl rand -base64 24 > bitbucket-consumer-key && \ openssl rand -base64 24 > bitbucket-shared-secret
-
转至
。 -
在 URL 字段中输入
https://devspaces- <openshift_deployment_name > . <domain_name> /
,然后点击 Create new link。 - 在提供的 Application URL 下,选中 Use this URL 复选框,然后单击 Continue。
- 输入 OpenShift Dev Spaces 作为 Application Name。
- 选择 通用应用程序 作为 应用程序类型。
- 输入 OpenShift Dev Spaces 作为 Service Provider Name。
-
将
bitbucket-consumer-key
文件的内容粘贴为 Consumer 键。 -
将
bitbucket-shared-secret
文件的内容粘贴到 共享机密中。 -
输入
<bitbucket_server_url> /plugins/servlet/oauth/request-token
作为 Request Token URL。 -
输入
<bitbucket_server_url> /plugins/servlet/oauth/access-token
作为 Access token URL。 -
输入
<bitbucket_server_url> /plugins/servlet/oauth/authorize
作为 Authorize URL。 - 选中 Create incoming 链接 复选框,再单击 Continue。
-
将
bitbucket_consumer_key
文件的内容粘贴为 Consumer Key。 - 输入 OpenShift Dev Spaces 作为 Consumer 名称。
-
将
public-stripped.pub
文件的内容粘贴为 公钥,然后单击 Continue。
3.10.1.3.2. 应用 Bitbucket 应用程序链接 Secret
准备并应用 Bitbucket 应用链接 Secret。
先决条件
- 设置 Bitbucket 应用链接已完成。
准备好设置 Bitbucket 应用程序链接时创建的以下 Base64 编码文件:
-
privatepkcs8-stripped.pem
-
bitbucket_consumer_key
-
bitbucket-shared-secret
-
-
具有目标 OpenShift 集群的管理权限的活跃
oc
会话。请参阅 CLI 入门。
流程
准备 Secret:
kind: Secret apiVersion: v1 metadata: name: bitbucket-oauth-config namespace: openshift-devspaces 1 labels: app.kubernetes.io/component: oauth-scm-configuration app.kubernetes.io/part-of: che.eclipse.org annotations: che.eclipse.org/oauth-scm-server: bitbucket che.eclipse.org/scm-server-endpoint: <bitbucket_server_url> 2 type: Opaque data: private.key: <Base64_content_of_privatepkcs8-stripped.pem> 3 consumer.key: <Base64_content_of_bitbucket_server_consumer_key> 4 shared_secret: <Base64_content_of_bitbucket-shared-secret> 5
应用 Secret:
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
- 在输出中验证 Secret 是否已创建。