3.10. ID および承認の管理
このセクションでは、Red Hat OpenShift Dev Spaces の ID および承認の管理のさまざまな側面について説明します。
3.10.1. GitHub、GitLab、または Bitbucket の OAuth
ユーザーがリモート Git リポジトリーと連携できるようにするには、以下を実行します。
3.10.1.1. Configuring OAuth 2.0 for GitHub
ユーザーが GitHub でホストされるリモート Git リポジトリーと連携できるようにするには、以下を実行します。
- GitHub OAuth アプリ (OAuth 2.0) をセットアップします。
- GitHub OAuth アプリケーションシークレットを適用します。
3.10.1.1.1. GitHub OAuth アプリケーションの設定
Set up a GitHub OAuth App using OAuth 2.0.
前提条件
- 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 アプリケーションシークレットを適用する際に使用する GitHub OAuth クライアント ID をコピーし、これを Base64 にエンコードします。
$ echo -n '<github_oauth_client_id>' | base64
GitHub OAuth クライアントシークレットをコピーし、GitHub OAuth App Secret を適用する際に使用する Base64 にエンコードします。
$ echo -n '<github_oauth_client_secret>' | base64
3.10.1.1.2. GitHub OAuth アプリケーションシークレットの適用
GitHub OAuth App Secret を準備し、これを適用します。
前提条件
- GitHub OAuth アプリケーションの設定が完了します。
GitHub OAuth アプリケーションの設定時に生成された Base64 でエンコードされた値が作成されます。
- GitHub OAuth Client ID
- GitHub OAuth Client Secret
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
oc
セッション。Getting started with the 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
シークレットを適用します。
$ 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 で承認されたアプリケーションシークレットを適用します。
3.10.1.2.1. GitLab で承認されたアプリケーションの設定
OAuth 2.0 を使用して GitLab で承認されたアプリケーションを設定します。
前提条件
- GitLab にログインしている。
-
base64
が使用しているオペレーティングシステムにインストールされている。
手順
-
アバターをクリックして、
の編集に移動します。 - Name に OpenShift Dev Spaces を入力します。
-
https://devspaces-<openshift_deployment_name>.<domain_name>/api/oauth/callback
を リダイレクト URI として指定します。 - Confidential および Expire access tokens のチェックボックスを選択します。
-
Scopes の下で、
api
、write_repository
、およびopenid
のチェックボックスにチェックを入れます。 - Save application をクリックします。
GitLab アプリケーション ID をコピーし、GitLab で承認されたアプリケーションシークレットを適用するときに使用する Base64 にエンコードします。
$ echo -n '<gitlab_application_id>' | base64
GitLab クライアントシークレット をコピーし、GitLab で承認されたアプリケーションシークレットを適用するときに使用する Base64 にエンコードします。
$ echo -n '<gitlab_client_secret>' | base64
3.10.1.2.2. GitLab で承認されるアプリケーションシークレットの適用
GitLab で承認されるアプリケーションシークレットを準備し、これを適用します。
前提条件
- GitLab 認証アプリケーションの設定が完了します。
GitLab で承認されるアプリケーションの設定時に生成された Base64 でエンコードされた値が作成されます。
- GitLab Application ID
- GitLab Client Secret
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
oc
セッション。Getting started with the 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
シークレットを適用します。
$ 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 アプリケーションリンクシークレットを適用します。
3.10.1.3.1. Bitbucket アプリケーションリンクの設定
OAuth1.0 を使用して Bitbucket アプリケーションリンクを設定します。
前提条件
手順
コマンドラインでコマンドを実行して、次の手順に必要なファイルを作成し、Bitbucket アプリケーションリンクシークレットを適用するときに使用します。
$ 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 をクリックします。 - 提供されたアプリケーション URL が一度リダイレクトされました で、この URL を使用する チェックボックスをオンにして、続行 をクリックします。
- Application Name に OpenShift Dev Spaces を入力します。
- Application Type として Generic Application を選択します。
- OpenShift Dev Spaces を Service Provider Name として入力します。
-
bitbucket-consumer-key
ファイルの内容を Consumer キー として貼り付けます。 -
bitbucket-shared-secret
ファイルの内容を Shared シークレット として貼り付けます。 -
リクエストトークンの URL として
<bitbucket_server_url>/plugins/servlet/oauth/request-token
と入力します。 -
アクセストークンの URL として
<bitbucket_server_url>/plugins/servlet/oauth/access-token
と入力します。 -
Authorize URL として
<bitbucket_server_url>/plugins/servlet/oauth/authorize
と入力します。 - 受信リンクの作成 チェックボックスをオンにして、続行 をクリックします。
-
bitbucket-consumer-key
ファイルの内容を Consumer キー として貼り付けます。 - コンシューマー名 として OpenShift Dev Spaces を入力します。
-
public-stripped.pub
ファイルの内容を 公開鍵 として貼り付け、続行 をクリックします。
3.10.1.3.2. Bitbucket アプリケーションリンクシークレットの適用
Bitbucket アプリケーションリンクシークレットを準備し、これを適用します。
前提条件
- Bitbucket アプリケーションリンクの設定が完了します。
Bitbucket アプリケーションリンクの設定時に作成された以下の Base64 でエンコードされたファイルが作成されます。
-
privatepkcs8-stripped.pem
-
bitbucket_consumer_key
-
bitbucket-shared-secret
-
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
oc
セッション。Getting started with the 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
シークレットを適用します。
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
- 出力に Secret が作成されたことを確認します。