第3章 GitHub での認証


GitHub または GitHub Enterprise でユーザーを認証する場合は、以下を行います。

3.1. GitHub での認証の有効化

GitHub を使用してユーザーを認証するには、Red Hat Developer Hub で GitHub 認証プロバイダーを有効にします。

前提条件

手順

  1. Developer Hub が GitHub で認証できるようにするには、GitHub アプリケーションを作成します。きめ細かな権限を使用し、アプリケーションがアクセスできるリポジトリーをより細かく制御して、有効期間の短いトークンを使用するには、OAuth アプリケーションではなく GitHub アプリケーションを選択します。

    1. 次の設定で GitHub アプリケーションを登録します

      • GitHub アプリケーション名: <Red Hat Developer Hub>-<GUID> など、GitHub アプリケーションを識別する一意の名前を入力します。
      • ホームページ URL: Developer Hub の URL: https://<my_developer_hub_url>
      • 認可コールバック URL: Developer Hub 認証バックエンド URL: https://<my_developer_hub_url>/api/auth/github/handler/frame
      • Webhook URL: Developer Hub の URL: https://<my_developer_hub_url>
      • Webhook シークレット: 強力なシークレットを提供します。
      • リポジトリー権限:

        • 次の項目に対する Read-only アクセスを有効にします。

          • 管理
          • コミットステータス
          • 内容
          • Dependabot アラート
          • Deployments
          • プルリクエスト
          • Webhook

            ヒント

            GitHub API を使用して変更を加える予定の場合は、Read-only ではなく、Read and write 権限が有効になっていることを確認してください。

        • 必要に応じて他の権限を切り替えます。
      • 組織の権限:

        • メンバー への Read-only アクセスを有効にします。
      • Where can this GitHub App be installed? で、Only on this account を選択します。
    2. General Clients secrets セクションで、Generate a new client secret をクリックします。
    3. General Private keys セクションで、Generate a private key をクリックします。
    4. Install App タブで、GitHub アプリケーションをインストールするアカウントを選択します。
    5. 次のステップのために以下の値を保存します。

      • アプリケーション ID
      • クライアント ID
      • クライアントシークレット
      • 秘密鍵
      • Webhook シークレット
  2. GitHub 認証情報を Developer Hub シークレットに追加するには、secrets-rhdh などの Developer Hub シークレットを編集し、次のキー/値のペアを追加します。

    AUTH_GITHUB_APP_ID
    保存した アプリケーション ID を入力します。
    AUTH_GITHUB_CLIENT_ID
    保存した クライアント ID を入力します。
    GITHUB_HOST_DOMAIN
    GitHub Enterprise を使用していない場合は、GitHub ホストドメイン (github.com) を入力します。
    GITHUB_ORGANIZATION
    `<your_github_organization_name>' などの GitHub 組織名を入力します。
    GITHUB_ORG_URL
    $GITHUB_HOST_DOMAIN/$GITHUB_ORGANIZATION を入力します。
    GITHUB_CLIENT_SECRET
    保存した クライアントシークレット を入力します。
    GITHUB_PRIVATE_KEY_FILE
    保存した 秘密鍵 を入力します。
    GITHUB_WEBHOOK_URL
    Developer Hub の URL を入力します (https://<my_developer_hub_url>)
    GITHUB_WEBHOOK_SECRET
    保存した Webhook シークレット を入力します。
  3. GitHub 認証プロバイダーを設定し、Developer Hub のカスタム設定で GitHub API とのインテグレーションを有効にするには、app-config-rhdh などのカスタム Developer Hub ConfigMap を編集し、app-config-rhdh.yaml コンテンツに次の行を追加します。

    GitHub での認証を有効にするための必須フィールドを含む app-config-rhdh.yaml フラグメント

    auth:
      environment: production
      providers:
        github:
          production:
            clientId: ${AUTH_GITHUB_CLIENT_ID}
            clientSecret: ${AUTH_GITHUB_CLIENT_SECRET}
    integrations:
      github:
        - host: ${GITHUB_HOST_DOMAIN}
          apps:
            - appId: ${AUTH_GITHUB_APP_ID}
              clientId: ${AUTH_GITHUB_CLIENT_ID}
              clientSecret: ${GITHUB_CLIENT_SECRET}
              webhookUrl: ${GITHUB_WEBHOOK_URL}
              webhookSecret: ${GITHUB_WEBHOOK_SECRET}
              privateKey: |
                ${GITHUB_PRIVATE_KEY_FILE}
    signInPage: github
    Copy to Clipboard

    environment: production
    環境を production としてマークすると、Developer Hub のホームページでゲストログインが非表示になります。
    clientId, clientSecret, host, appId, webhookUrl, webhookSecret, privateKey
    GitHub で作成し、OpenShift でシークレットとして設定した Developer Hub アプリケーション情報を使用します。
    sigInPage: github
    GitHub プロバイダーをデフォルトのサインインプロバイダーとして有効にします。

    オプション: 次のオプションフィールドを追加することを検討してください。

    dangerouslyAllowSignInWithoutUserInCatalog: true

    Developer Hub ソフトウェアカタログでユーザーをプロビジョニングする必要なく認証を有効にします。

    警告

    Developer Hub の機能を調べるには dangerouslyAllowSignInWithoutUserInCatalog を使用しますが、実稼働環境では使用しないでください。

    ソフトウェアカタログに存在しないユーザーを認証できるようにするオプションフィールドを含む app-config-rhdh.yaml フラグメント

    auth:
      environment: production
      providers:
        github:
          production:
            clientId: ${AUTH_GITHUB_CLIENT_ID}
            clientSecret: ${AUTH_GITHUB_CLIENT_SECRET}
    integrations:
      github:
        - host: ${GITHUB_HOST_DOMAIN}
          apps:
            - appId: ${AUTH_GITHUB_APP_ID}
              clientId: ${AUTH_GITHUB_CLIENT_ID}
              clientSecret: ${GITHUB_CLIENT_SECRET}
              webhookUrl: ${GITHUB_WEBHOOK_URL}
              webhookSecret: ${GITHUB_WEBHOOK_SECRET}
              privateKey: |
                ${GITHUB_PRIVATE_KEY_FILE}
    signInPage: github
    dangerouslyAllowSignInWithoutUserInCatalog: true
    Copy to Clipboard

    callbackUrl

    OAuth フローを開始するときに GitHub が使用するコールバック URL (例: <your_intermediate_service_url/handler>)。多くの Developer Hub インスタンスに対して 1 つの OAuth アプリケーションを使用する場合など、Developer Hub が直接のレシーバーではない場合に定義します。

    オプションの enterpriseInstanceUrl フィールドを含む app-config-rhdh.yaml フラグメント

    auth:
      providers:
        github:
          production:
            callbackUrl: <your_intermediate_service_url/handler>
    Copy to Clipboard

    enterpriseInstanceUrl

    GitHub Enterprise の URL。前のステップで GITHUB_HOST_DOMAIN シークレットを定義しておく必要があります。

    オプションの enterpriseInstanceUrl フィールドを含む app-config-rhdh.yaml フラグメント

    auth:
      providers:
        github:
          production:
            enterpriseInstanceUrl: ${GITHUB_HOST_DOMAIN}
    Copy to Clipboard

    ヒント

    別の認証プロバイダーとの GitHub インテグレーションを有効にするには、次の設定を完了します。

    • GitHub プロバイダーを既存の auth セクションに追加します。
    • 認証プロバイダーの設定から signInPage セクションを保持します。

    GitHub インテグレーションを有効にし、別の認証プロバイダーを使用するための必須フィールドを含む、app-config-rhdh.yaml フラグメント

    auth:
      environment: production
      providers:
        github:
          production:
            clientId: ${AUTH_GITHUB_CLIENT_ID}
            clientSecret: ${AUTH_GITHUB_CLIENT_SECRET}
        <your_other_authentication_providers_configuration>
    integrations:
      github:
        - host: ${GITHUB_HOST_DOMAIN}
          apps:
            - appId: ${AUTH_GITHUB_APP_ID}
              clientId: ${AUTH_GITHUB_CLIENT_ID}
              clientSecret: ${GITHUB_CLIENT_SECRET}
              webhookUrl: ${GITHUB_WEBHOOK_URL}
              webhookSecret: ${GITHUB_WEBHOOK_SECRET}
              privateKey: |
                ${GITHUB_PRIVATE_KEY_FILE}
    signInPage: <your_main_authentication_provider>
    Copy to Clipboard

検証

  1. Developer Hub のログインページに移動します。
  2. Developer Hub のサインインページには Sign in using GitHub と表示され、ゲストユーザーのサインインは無効になっています。
  3. GitHub でログインします。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat