3.9. ID および承認の管理
このセクションでは、Red Hat OpenShift Dev Spaces の ID および承認の管理のさまざまな側面について説明します。
3.9.1. Git プロバイダーの OAuth の設定
OpenShift Dev Spaces と Git プロバイダーの間で OAuth を設定して、ユーザーがリモート Git リポジトリーを操作できるようにすることができます。
3.9.1.1. Configuring OAuth 2.0 for GitHub
ユーザーが GitHub でホストされるリモート Git リポジトリーと連携できるようにするには、以下を実行します。
- GitHub OAuth アプリ (OAuth 2.0) をセットアップします。
- GitHub OAuth アプリケーションシークレットを適用します。
3.9.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
-
Homepage URL:
https://<openshift_dev_spaces_fqdn>/
-
Authorization callback URL:
https://<openshift_dev_spaces_fqdn>/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.9.1.1.2. GitHub OAuth アプリケーションシークレットの適用
GitHub OAuth App Secret を準備し、これを適用します。
前提条件
- GitHub OAuth アプリケーションの設定が完了します。
GitHub OAuth アプリケーションの設定時に生成された Base64 でエンコードされた値が作成されます。
- GitHub OAuth Client ID
- GitHub OAuth Client Secret
-
宛先 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 che.eclipse.org/scm-server-endpoint: <github_server_url> 2 che.eclipse.org/scm-github-disable-subdomain-isolation: "<true_or_false>" 3 type: Opaque data: id: <Base64_GitHub_OAuth_Client_ID> 4 secret: <Base64_GitHub_OAuth_Client_Secret> 5
- 1
- OpenShift Dev Spaces namespace。デフォルトは
openshift-devspaces
です。 - 2
- これは、組織が使用している GitHub 製品によって異なります。GitHub.com または GitHub Enterprise Cloud でリポジトリーをホストする場合は、この行を省略するか、デフォルトの
https://github.com
を入力します。GitHub Enterprise Server でリポジトリーをホストする場合は、GitHub Enterprise Server の URL を入力します。 - 3
- この行は GitHub Enterprise Server に対してのみ追加されます。サブドメイン分離を無効にするには、これを
"true"
に設定します。サブドメイン分離を有効にするには、これを"false"
に設定します。 - 4
- Base64 でエンコードされた GitHubOAuth クライアント ID。
- 5
- base64 でエンコードされた GitHub OAuth クライアントシークレット。
シークレットを適用します。
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
- 出力に Secret が作成されたことを確認します。
3.9.1.2. GitLab の OAuth 2.0 の設定
ユーザーが GitLab インスタンスを使用してホストされるリモート Git リポジトリーと連携できるようにするには、以下を実行します。
- GitLab 認定アプリケーション (OAuth 2.0) をセットアップします。
- GitLab で承認されたアプリケーションシークレットを適用します。
3.9.1.2.1. GitLab で承認されたアプリケーションの設定
OAuth 2.0 を使用して GitLab で承認されたアプリケーションを設定します。
前提条件
- GitLab にログインしている。
-
base64
が使用しているオペレーティングシステムにインストールされている。
手順
-
アバターをクリックして、
の編集に移動します。 - Name に OpenShift Dev Spaces を入力します。
-
Redirect URI として
https://<openshift_dev_spaces_fqdn>/api/oauth/callback
を入力します。 - 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.9.1.2.2. GitLab で承認されるアプリケーションシークレットの適用
GitLab で承認されるアプリケーションシークレットを準備し、これを適用します。
前提条件
- GitLab 認証アプリケーションの設定が完了します。
GitLab で承認されるアプリケーションの設定時に生成された Base64 でエンコードされた値が作成されます。
- GitLab Application ID
- GitLab Client Secret
-
宛先 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
シークレットを適用します。
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
- 出力に Secret が作成されたことを確認します。
3.9.1.3. Bitbucket サーバーの OAuth 2.0 の設定
OAuth 2.0 を使用すると、ユーザーが Bitbucket Server でホストされているリモート Git リポジトリーを操作できるようになります。
- Bitbucket Server で OAuth 2.0 アプリケーションリンクをセットアップします。
- Bitbucket Server のアプリケーションリンクシークレットを適用します。
3.9.1.3.1. Bitbucket Server での OAuth 2.0 アプリケーションリンクのセットアップ
Bitbucket Server で OAuth 2.0 アプリケーションリンクをセットアップします。
前提条件
- Bitbucket Server にログインしている。
-
base64
が使用しているオペレーティングシステムにインストールされている。
手順
- Administration > Applications > Application links に移動します。
- Creae List を選択します。
- External application および Incoming を選択します。
-
Redirect URL フィールドに
https://<openshift_dev_spaces_fqdn>/api/oauth/callback
を入力します。 - Application permissions で Admin - Write チェックボックスを選択します。
- Save をクリックします。
Client ID をコピーし、Bitbucket アプリケーションリンクのシークレットを適用するときに使用できるように Base64 にエンコードします。
$ echo -n '<Bitbucket_Client_ID>' | base64
Client secret をコピーし、Bitbucket アプリケーションリンクシークレットを適用するときに使用できるように Base64 にエンコードします。
$ echo -n '<Bitbucket_Client_secret>' | base64
3.9.1.3.2. Bitbucket Server の OAuth 2.0 アプリケーションリンクシークレットの適用
Bitbucket Server の OAuth 2.0 アプリケーションリンクシークレットを準備して適用します。
前提条件
- アプリケーションリンクが Bitbucket Server にセットアップされている。
Bitbucket アプリケーションリンクの設定時に生成された Base64 エンコードされた値が準備されています。
- Bitbucket Client ID
- Bitbucket Client secret
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
oc
セッション。CLI の使用方法 を参照。
手順
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 che.eclipse.org/scm-server-endpoint: <bitbucket_server_url> 2 type: Opaque data: id: <Base64_Bitbucket_Client_ID> 3 secret: <Base64_Bitbucket_Client_Secret> 4
シークレットを適用します。
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
- 出力に Secret が作成されたことを確認します。
3.9.1.4. Bitbucket Cloud 向け OAuth 2.0 の設定
Bitbucket Cloud でホストされているリモート Git リポジトリーをユーザーが操作できるようにすることができます。
- Bitbucket Cloud で OAuth コンシューマー (OAuth 2.0) をセットアップします。
- Bitbucket Cloud に OAuth コンシューマーシークレットを適用します。
3.9.1.4.1. Bitbucket Cloud で OAuth コンシューマーを設定する
Bitbucket Cloud で OAuth 2.0 の OAuth コンシューマーをセットアップします。
前提条件
- Bitbucket Cloud にログインしている。
-
base64
が使用しているオペレーティングシステムにインストールされている。
手順
- アバターをクリックして、All workspaces ページに移動します。
- ワークスペースを選択してクリックします。
-
に移動します。 - Name に OpenShift Dev Spaces を入力します。
-
Callback URL として
https://<openshift_dev_spaces_fqdn>/api/oauth/callback
と入力します。 - Permissions で、Account と Repositories のすべてのチェックボックスをオンにして、Save をクリックします。
追加したコンシューマーを展開してから、キー 値をコピーして Base64 にエンコードし、Bitbucket OAuth コンシューマーシークレットを適用するときに使用します。
$ echo -n '<bitbucket_oauth_consumer_key>' | base64
Bitbucket OAuth コンシューマーシークレットを適用するときに使用するために、Secret 値をコピーして Base64 にエンコードします。
$ echo -n '<bitbucket_oauth_consumer_secret>' | base64
3.9.1.4.2. Bitbucket Cloud に OAuth コンシューマーシークレットを適用する
Bitbucket Cloud の OAuth コンシューマーシークレットを準備して適用します。
前提条件
- OAuth コンシューマーは Bitbucket Cloud でセットアップされます。
Bitbucket OAuth コンシューマーのセットアップ時に生成された Base64 でエンコードされた値が準備されます。
- Bitbucket OAuth コンシューマーキー
- Bitbucket OAuth コンシューマーシークレット
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
oc
セッション。CLI の使用方法 を参照。
手順
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
シークレットを適用します。
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
- 出力に Secret が作成されたことを確認します。
3.9.1.5. Bitbucket サーバー向け OAuth 1.0 の設定
ユーザーが Bitbucket サーバーでホストされるリモート Git リポジトリーと連携できるようにするには、以下を実行します。
- Bitbucket Server でアプリケーションリンク (OAuth 1.0) を設定します。
- Bitbucket Server のアプリケーションリンクシークレットを適用します。
3.9.1.5.1. Bitbucket Server でのアプリケーションリンクの設定
Bitbucket Server で OAuth 1.0 のアプリケーションリンクをセットアップします。
前提条件
手順
コマンドラインでコマンドを実行して、次の手順に必要なファイルを作成し、アプリケーションリンクシークレットを適用するときに使用します。
$ 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://<openshift_dev_spaces_fqdn>/
と入力し、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 Key として貼り付けます。 - コンシューマー名 として OpenShift Dev Spaces を入力します。
-
public-stripped.pub
ファイルの内容を 公開鍵 として貼り付け、Continue をクリックします。
3.9.1.5.2. Bitbucket Server 用にアプリケーションリンクシークレットを適用する
Bitbucket Server のアプリケーションリンクシークレットを準備して適用します。
前提条件
- アプリケーションリンクが Bitbucket Server にセットアップされている。
アプリケーション連携の設定時に作成された以下のファイルが用意されています。
-
privatepkcs8-stripped.pem
-
bitbucket-consumer-key
-
bitbucket-shared-secret
-
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
oc
セッション。CLI の使用方法 を参照。
手順
bitbucket-consumer-key
ファイルの内容を Base64 にエンコードします。$ echo -n '<bitbucket-consumer-key file content>' | base64
bitbucket-shared-secret
ファイルの内容を Base64 にエンコードします。$ echo -n '<bitbucket-shared-secret file content>' | base64
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-consumer-key> 4 shared_secret: <Base64_content_of_bitbucket-shared-secret> 5
シークレットを適用します。
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
- 出力に Secret が作成されたことを確認します。
3.9.1.6. Microsoft Azure DevOps サービス用の OAuth 2.0 の設定
ユーザーが Microsoft Azure Repos でホスティングされているリモート Git リポジトリーを操作できるようにするには:
- Microsoft Azure DevOps Services OAuth アプリケーション (OAuth 2.0) をセットアップします。
- Microsoft Azure DevOps Services OAuth アプリケーションシークレットを適用します。
3.9.1.6.1. Microsoft Azure DevOps Services OAuth アプリケーションのセットアップ
OAuth 2.0 を使用して、Microsoft Azure DevOps Services OAuth アプリケーションをセットアップします。
前提条件
- Microsoft Azure DevOps Services にログインしています。
- サードパーティーアプリケーションは、OAuth を介して社内のリソースにアクセスできます。セキュリティーとアプリケーションのアクセスポリシーを管理する を参照してください。
-
base64
が使用しているオペレーティングシステムにインストールされている。
手順
- https://app.vsaex.visualstudio.com/app/register/ にアクセスしてください。
以下の値を設定します。
-
会社名:
OpenShift Dev Spaces
-
アプリケーション名:
OpenShift Dev Spaces
-
Application website:
https://<openshift_dev_spaces_fqdn>/
-
Authorization callback URL:
https://<openshift_dev_spaces_fqdn>/api/oauth/callback
-
会社名:
- Select Authorized scopes で、Code (read and write) を選択します。
- Create application をクリックします。
Microsoft Azure DevOps Services OAuth アプリケーションシークレットを適用する際に使用するために、アプリケーション ID をコピーし、Base64 にエンコードします。
$ echo -n '<microsoft_azure_devops_services_oauth_app_id>' | base64
- Show をクリックして、Client Secret を表示します。
Microsoft Azure DevOps Services OAuth アプリケーションシークレットを適用する際に使用するために、クライアントシークレット をコピーし、Base64 にエンコードします。
$ echo -n '<microsoft_azure_devops_services_oauth_client_secret>' | base64
3.9.1.6.2. Microsoft Azure DevOps Services OAuth アプリケーションシークレットの適用
Microsoft Azure DevOps Services シークレットを準備および適用します。
前提条件
- Microsoft Azure DevOps Services OAuth アプリケーションのセットアップが完了しました。
Microsoft Azure DevOps Services OAuth アプリケーションのセットアップ時に生成された、Base64 エンコードされた値が準備されます。
- アプリケーション ID
- Client Secret
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
oc
セッション。CLI の使用方法 を参照。
手順
Secret を準備します。
kind: Secret apiVersion: v1 metadata: name: azure-devops-oauth-config namespace: openshift-devspaces1 labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: oauth-scm-configuration annotations: che.eclipse.org/oauth-scm-server: azure-devops type: Opaque data: id: <Base64_Microsoft_Azure_DevOps_Services_OAuth_App_ID>2 secret: <Base64_Microsoft_Azure_DevOps_Services_OAuth_Client_Secret>3
シークレットを適用します。
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
- 出力に Secret が作成されたことを確認します。
3.9.2. GDPR に準拠したユーザーデータの削除
個人データを消去する権利を個人に強制する General Data Protection Regulation (GDPR) に従って、OpenShift Container Platform 上のユーザーのデータを削除できます。他の Kubernetes インフラストラクチャーのプロセスは異なる場合があります。Red Hat OpenShift Dev Spaces のインストールに使用しているプロバイダーのユーザー管理のベストプラクティスに従ってください。
次のようにユーザーデータを削除すると、元に戻すことはできません。削除されたデータはすべて削除され、復元できなくなります。
前提条件
-
OpenShift Container Platform クラスターの管理権限を持つアクティブな
oc
セッション。Getting started with the OpenShift CLI を参照してください。
手順
次のコマンドを使用して、OpenShift クラスター内のすべてのユーザーをリスト表示します。
$ oc get users
ユーザーエントリーを削除します。
重要ユーザーに関連するリソース (プロジェクト、ロール、サービスアカウントなど) がある場合は、ユーザーを削除する前に、まずそれらを削除してください。
$ oc delete user <username>