Skip to main content

このバージョンの GitHub Enterprise サーバーはこの日付をもって終了となりました: 2024-09-25. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise サーバーにアップグレードしてください。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせください

GitHub への認証方法について

認証先に応じて異なる資格情報を使い、GitHub に対して認証することで、アカウントのリソースに安全にアクセスできます。

GitHub への認証について

アカウントを安全に保つには、GitHub の特定のリソースにアクセスする前に認証する必要があります。 GitHub に対して認証するときは、自分が申告した本人であることを証明するために、自分に固有の資格情報を入力または確認します。

GitHub 内のリソースには、ブラウザーて、GitHub Desktop または別のデスクトップ アプリケーション経由、API 経由、コマンド ライン経由など、さまざまな方法でアクセスできます。 GitHub への各アクセス方法は、異なる認証モードをサポートしています。

  • ID プロバイダー (IdP)
  • 2 要素認証を使用したユーザー名とパスワード
  • Personal access token
  • SSH キー

ブラウザで認証する

ブラウザーで GitHub に対して認証するには、さまざまな方法があります。

  • ユーザー名とパスワードのみ

    • GitHub でアカウントを作成するときにパスワードを作成します。 パスワードマネージャを使用して、ランダムで一意のパスワードを生成することをお勧めします。 詳細については、「強力なパスワードの作成」を参照してください
  • 2 要素認証 (2FA) (推奨)

    • 2FA を有効にした場合は、ユーザー名とパスワードを正常に入力した後、モバイル デバイスで時間ベースのワンタイム パスワード (TOTP) アプリケーションによって生成されるコードも指定するように求められます。。 詳細については、「2 要素認証を利用した GitHub へのアクセス」を参照してください。

    • TOTP アプリケーションを使った認証に加えて、必要に応じて代替の方法として、WebAuthn を使ったセキュリティ キーを追加できます。 「セキュリティ キーを使って 2 要素認証を設定する」をご覧ください。

  • 外部認証

    • サイト管理者は、ユーザー名とパスワードの代わりに外部認証を使うように お使いの GitHub Enterprise Server インスタンス を構成することがあります。 詳細については、「ID とアクセス管理について」を参照してください。

セッション Cookie

GitHub は、サービスを提供し、セキュリティを強化するために Cookie を使います。

  • gist.HOSTNAME ドメインとインスタンスのベース ドメインでは個別の Cookie を使用します。
  • 通常、非アクティブな状態が 2 週間続いたユーザー セッションには、GitHub によって削除のマークが付けられます。
  • サインアウトしても、GitHub によってすぐにセッションが削除されるわけではありません。期限切れのセッションは、GitHub によって定期的に自動削除されます。

GitHub Desktop で認証する

お使いのブラウザを使用して GitHub Desktop で認証できます。 詳しくは、「GitHub Desktop での GitHub への認証」をご覧ください。

API で認証する

さまざまな方法で API を使用して認証できます。 詳しくは、「REST API に対する認証」をご覧ください。

personal access token で API に認証を行う

個人用に GitHub REST API を使用する場合は、personal access tokenを作成できます。 可能であれば、GitHub は、personal access token (classic) ではなく fine-grained personal access token を使うことをお勧めします。 personal access tokenの作成の詳細については、「個人用アクセス トークンを管理する」を参照してください。

アプリを使用した API への認証

Organization または他のユーザーの代わりに API を使用する場合、GitHub では、GitHub App の使用が推奨されます。 詳しくは、「GitHub アプリでの認証について」をご覧ください。

また、OAuth app を使用して OAuth トークンを作成し、REST API にアクセスすることもできます。 しかし、GitHub では、代わりに GitHub App を使用することが推奨されます。 GitHub Apps を使うと、アプリのアクセスとアクセス許可をより詳細に制御できます。

GitHub Actions ワークフローにおける API への認証

GitHub Actions ワークフローで API を使用する場合、GitHub では、トークンを作成するのではなく、組み込み GITHUB_TOKEN で認証することが推奨されます。 permissions キーを使用して、GITHUB_TOKEN へのアクセス許可を付与できます。

GITHUB_TOKEN は、ワークフローを含むリポジトリ内のリソースにのみアクセスできることに注意してください。 ワークフロー リポジトリの外部にあるリソースを変更する必要がある場合は、personal access token または GitHub App を使う必要があります。

詳しくは、「自動トークン認証」をご覧ください。

コマンドラインで認証する

コマンド ラインから GitHub のリポジトリにアクセスするには、HTTPS と SSH の 2 つの方法があり、それぞれ認証方法が異なります。 認証方法は、リポジトリのクローンを作成するときに HTTPS または SSH リモート URL を選択したかどうかに基づいて決まります。 アクセス方法の詳細については、「リモートリポジトリについて」を参照してください。

HTTPS

ファイアウォールやプロキシの内側にいる場合でも、GitHub 上のすべてのリポジトリを HTTPS 経由で操作できます。

GitHub CLI で認証する場合は、personal access token または Web ブラウザーを使って認証できます。 GitHub CLI を使用した認証の詳細については、「gh auth login」を参照してください。

GitHub CLI なしで認証する場合は、personal access token で認証する必要があります。 Git からパスワードの入力するダイアログが表示されたら、personal access token を入力します。 または、Git Credential Manager などの認証情報ヘルパーを使用できます。 より安全な認証方法を優先し、Git のパスワードベースの認証が削除されました。 詳しくは、「個人用アクセス トークンを管理する」をご覧ください。 Git を使って GitHub で認証するたびに、資格情報の入力が求められます (資格情報ヘルパーを使ってキャッシュしていない場合)。

SSH

SSH 経由で GitHub 上のすべてのリポジトリを操作できますが、ファイアウォールやプロキシによって SSH 接続が拒否される場合があります。

GitHub CLI で認証すると、CLI によってマシン上で SSH 公開キーが検索され、アップロード用のものを選ぶようにダイアログが表示されます。 GitHub CLI でアップロード用の SSH 公開鍵が見つからない場合は、新しい SSH 公開/秘密キーペアを生成し、お使いの GitHub Enterprise Server インスタンス 上のアカウントに公開キーをアップロードできます。 これで、personal access token を使うか、Web ブラウザー経由で認証できるようになります。 GitHub CLI を使用した認証の詳細については、「gh auth login」を参照してください。

GitHub CLI なしで認証する場合は、ローカル コンピューターで SSH 公開/秘密鍵ペアを生成し、お使いの GitHub Enterprise Server インスタンス のアカウントに公開キーを追加する必要があります。 詳しくは、「新しい SSH キーを生成して ssh-agent に追加する」をご覧ください。 Git を使って GitHub で認証するたびに、SSH キーのパスフレーズの入力が求められます (キーを格納していない場合)。

GitHub のトークンフォーマット

GitHub は、トークンの種別を示すプレフィックスで始まるトークンを発行します。

トークンの種類Prefix詳細情報
Personal access token (classic)ghp_個人用アクセス トークンを管理する
Fine-grained personal access tokengithub_pat_個人用アクセス トークンを管理する
OAuth アクセス トークンgho_OAuth アプリの承認
GitHub App のユーザー アクセス トークンghu_ユーザーに代わって GitHub アプリで認証する
GitHub App インストール アクセス トークンghs_GitHub App インストールとしての認証
GitHub App のトークンのリフレッシュghr_ユーザー アクセス トークンを更新する