GitHub App を使用した資格情報の認可について
既定では、エンタープライズインストールの GitHub Apps は資格情報を承認できません。 エンタープライズ メンバーが個々の組織に対して同じ資格情報を承認する必要がある回数を減らすために、アプリが既存の personal access tokens (classic) または検証済みのユーザー所有の SSH 認証キーを承認できるようにします。 要求ごとに最大 50 の選択された組織が許可されます。
GitHub Appを使用せずに単一の組織の資格情報を承認するには、シングル サインオンに使用する個人用アクセス トークンの認可 または シングル サインオンに使用する SSH キーの認可 を参照してください。
前提条件
アプリで資格情報を承認するには、次の要件を満たす必要があります。
- 企業では、エンタープライズ レベルの SSO を使用する必要があります。
- 資格情報の所有者は、アプリが資格情報を承認するすべての組織のメンバーである必要があります。
GitHub App の作成
-
新しいアプリを登録します。 手順については、GitHub アプリの登録 を参照してください。 アプリは次の手順を実行する必要があります。
- 企業または企業内の組織が所有している。
- "エンタープライズ資格情報" アクセス許可への書き込みアクセス権を持っている。
-
アプリのクライアント ID をメモし、秘密キーを生成して安全に格納します。 「GitHub アプリの秘密キーの管理」を参照してください。
-
エンタープライズ アカウントにアプリをインストールします。 「Enterprise に GitHub アプリをインストールする」を参照してください。
-
アプリのインストール ページの URL で、インストール ID をメモします。 ID は、
/enterprises/ENTERPRISE/settings/installations/IDURL の末尾にある数値の文字列です。
GitHub Appによる資格情報の承認を許可する
-
企業ページに移動してください。 たとえば、GitHub.com の [Enterprise] ページから。
-
[ Settings] の下にある [Authentication security] をクリックします。
-
[資格情報] で、[GitHub Appsによる資格情報の承認を許可する] を有効にします。
インストール アクセス トークンの生成
アプリは、エンタープライズ インストール アクセス トークンを使用して API 要求を認証する必要があります。 組織のインストール アクセス トークン、ユーザー アクセス トークン、および personal access tokens はサポートされていません。
インストール アクセス トークンを生成するには:
- アプリのクライアント ID と秘密キーを使用して、JSON Web トークン (JWT) を生成します。 「GitHub アプリの JSON Web トークン (JWT) の生成」を参照してください。
- JWT とエンタープライズ インストール ID を使用して、インストール アクセス トークンを作成します。 「GitHub アプリのインストール アクセス トークンの生成」を参照してください。
インストール アクセス トークンは、アプリに付与されたエンタープライズアクセス許可を継承し、スコープを絞り込むことができず、1 時間後に期限切れになります。
資格情報識別子の検索
企業内の組織に対して既に承認されている資格情報の場合、組織の所有者は REST API を使用して識別子を一括で取得できます。 「組織のREST APIエンドポイント」を参照してください。
応答では、personal access token (classic)にauthorized_credential_idを使用するか、SSH キーのfingerprintを使用します。 その組織の資格情報の承認を識別する credential_idは使用しないでください。
このエンドポイントは、組織に対して承認されていない資格情報を返しません。 別の資格情報の識別子を取得するには、次のいずれかの方法を使用します。
- personal access token (classic)の場合は、トークン設定ページからトークンを開きます。 トークン ID は、
/settings/tokens/IDURL の末尾にある番号です。 または、エンタープライズ監査ログに記録されたアクションにトークンが使用された場合、エンタープライズ所有者はイベントのtoken_idフィールドでその ID を見つけることができます。 この ID は、そのトークンで認証されたエンタープライズに表示されるイベントが保持されている間のみ、監査ログで使用できます。 トークン値ではなく、ID を共有します。 詳細については、「個人用アクセス トークンを管理する」および「エンタープライズの監査ログの検索」を参照してください。 - SSH キーの場合は、検証済みのユーザー所有認証キーの SHA-256 フィンガープリントを見つけます。 詳細については、「SSH キーをレビューする」を参照してください。
資格情報を認可する
REST API を使用して、選択した組織の資格情報を承認します。 例えば次が挙げられます。
curl --request POST \
--url "https://api.github.com/enterprises/ENTERPRISE/credential-authorizations" \
--header "Accept: application/vnd.github+json" \
--header "Authorization: Bearer INSTALLATION-ACCESS-TOKEN" \
--header "X-GitHub-Api-Version: 2026-03-10" \
--data '{
"credential_id": 12345678,
"credential_type": "classic_pat",
"organizations": ["ORGANIZATION-1", "ORGANIZATION-2"]
}'
ENTERPRISE を enterprise スラッグに、INSTALLATION-ACCESS-TOKEN をインストール アクセス トークンに、ORGANIZATION-1 と ORGANIZATION-2 を organization スラッグに置き換えます。
12345678をpersonal access token (classic)の ID に置き換えます。 代わりに SSH キーを承認するには、 12345678 をキーの SHA-256 フィンガープリントに置き換え、 classic_pat を ssh_keyに置き換えます。
詳細については、「エンタープライズ資格情報承認用の REST API エンドポイント」を参照してください。
GitHub Apps による資格情報の認証の無効化
この設定を無効にすると、アプリは新しい資格情報承認を作成できなくなります。 既存の承認は、取り消されるか、資格情報が取り消されるか削除されるか、資格情報の所有者が組織内のメンバーシップを失うまでアクティブなままです。
同じ REST API を使用して、エンタープライズ委任によってアプリが作成した承認を取り消すことができます。