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 リポジトリーと連携できるようにするには、以下を実行します。

  1. GitHub OAuth アプリ (OAuth 2.0) をセットアップします。
  2. GitHub OAuth アプリケーションシークレットを適用します。
3.10.1.1.1. GitHub OAuth アプリケーションの設定

Set up a GitHub OAuth App using OAuth 2.0.

前提条件

  • 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 アプリケーションシークレットを適用する際に使用する GitHub OAuth クライアント ID をコピーし、これを Base64 にエンコードします。

    $ echo -n '<github_oauth_client_id>' | base64
  6. 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 を参照。

手順

  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 でエンコードされた GitHubOAuth クライアント ID
    3
    base64 でエンコードされた GitHub OAuth クライアントシークレット
  2. シークレットを適用します。

    $ 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 で承認されたアプリケーションシークレットを適用します。
3.10.1.2.1. GitLab で承認されたアプリケーションの設定

OAuth 2.0 を使用して GitLab で承認されたアプリケーションを設定します。

前提条件

  • GitLab にログインしている。
  • base64 が使用しているオペレーティングシステムにインストールされている。

手順

  1. アバターをクリックして、プロファイルアプリケーション の編集に移動します。
  2. NameOpenShift Dev Spaces を入力します。
  3. https://devspaces-<openshift_deployment_name>.<domain_name>/api/oauth/callbackリダイレクト URI として指定します。
  4. Confidential および Expire access tokens のチェックボックスを選択します。
  5. Scopes の下で、apiwrite_repository、および openid のチェックボックスにチェックを入れます。
  6. Save application をクリックします。
  7. GitLab アプリケーション ID をコピーし、GitLab で承認されたアプリケーションシークレットを適用するときに使用する Base64 にエンコードします。

    $ echo -n '<gitlab_application_id>' | base64
  8. 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 を参照。

手順

  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 です。SAAS バージョンには https://gitlab.com を使用します。
    3
    Base64 でエンコードされた GitLab アプリケーション ID
    4
    Base64 でエンコードされた GitLab クライアントシークレット
  2. シークレットを適用します。

    $ 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 アプリケーションリンクシークレットを適用します。