This documentation is for a release that is no longer maintained
See documentation for the latest supported version.第3章 GitHub での認証
GitHub または GitHub Enterprise でユーザーを認証する場合は、以下を行います。
3.1. GitHub での認証の有効化 リンクのコピーリンクがクリップボードにコピーされました!
GitHub を使用してユーザーを認証するには、Red Hat Developer Hub で GitHub 認証プロバイダーを有効にします。
前提条件
- カスタム Developer Hub アプリケーション設定を追加 している。また、それを変更するための十分な権限を持っている。
- GitHub アプリケーション を作成および管理するのに十分な権限が GitHub にある。
手順
Developer Hub が GitHub で認証できるようにするには、GitHub アプリケーションを作成します。きめ細かな権限を使用し、アプリケーションがアクセスできるリポジトリーをより細かく制御して、有効期間の短いトークンを使用するには、OAuth アプリケーションではなく GitHub アプリケーションを選択します。
次の設定で 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を選択します。
-
General
Clients secrets セクションで、Generate a new client secret をクリックします。 -
General
Private keys セクションで、Generate a private key をクリックします。 - Install App タブで、GitHub アプリケーションをインストールするアカウントを選択します。
次のステップのために以下の値を保存します。
- アプリケーション ID
- クライアント ID
- クライアントシークレット
- 秘密鍵
- Webhook シークレット
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 シークレット を入力します。
GitHub 認証プロバイダーを設定し、Developer Hub のカスタム設定で GitHub API とのインテグレーションを有効にするには、
app-config-rhdhなどのカスタム Developer Hub ConfigMap を編集し、app-config-rhdh.yamlコンテンツに次の行を追加します。GitHub での認証を有効にするための必須フィールドを含む
app-config-rhdh.yamlフラグメントCopy to Clipboard Copied! Toggle word wrap Toggle overflow environment: production-
環境を
productionとしてマークすると、Developer Hub のホームページでゲストログインが非表示になります。 clientId,clientSecret,host,appId,webhookUrl,webhookSecret,privateKey- GitHub で作成し、OpenShift でシークレットとして設定した Developer Hub アプリケーション情報を使用します。
sigInPage: github- GitHub プロバイダーをデフォルトのサインインプロバイダーとして有効にします。
オプション: 次のオプションフィールドを追加することを検討してください。
dangerouslyAllowSignInWithoutUserInCatalog: trueDeveloper Hub ソフトウェアカタログでユーザーをプロビジョニングする必要なく認証を有効にします。
警告Developer Hub の機能を調べるには
dangerouslyAllowSignInWithoutUserInCatalogを使用しますが、実稼働環境では使用しないでください。ソフトウェアカタログに存在しないユーザーを認証できるようにするオプションフィールドを含む
app-config-rhdh.yamlフラグメントCopy to Clipboard Copied! Toggle word wrap Toggle overflow callbackUrlOAuth フローを開始するときに 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>auth: providers: github: production: callbackUrl: <your_intermediate_service_url/handler>Copy to Clipboard Copied! Toggle word wrap Toggle overflow enterpriseInstanceUrlGitHub Enterprise の URL。前のステップで
GITHUB_HOST_DOMAINシークレットを定義しておく必要があります。オプションの
enterpriseInstanceUrlフィールドを含むapp-config-rhdh.yamlフラグメントauth: providers: github: production: enterpriseInstanceUrl: ${GITHUB_HOST_DOMAIN}auth: providers: github: production: enterpriseInstanceUrl: ${GITHUB_HOST_DOMAIN}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ヒント別の認証プロバイダーとの GitHub インテグレーションを有効にするには、次の設定を完了します。
-
GitHub プロバイダーを既存の
authセクションに追加します。 -
認証プロバイダーの設定から
signInPageセクションを保持します。
GitHub インテグレーションを有効にし、別の認証プロバイダーを使用するための必須フィールドを含む、
app-config-rhdh.yamlフラグメントCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
- Developer Hub のログインページに移動します。
- Developer Hub のサインインページには Sign in using GitHub と表示され、ゲストユーザーのサインインは無効になっています。
- GitHub でログインします。