ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

その他の認証方式

本番環境以外でのテストには、Basic 認証を使用できます。

ここには以下の内容があります:

Did this doc help you?

API は複数の認証方式を提供していますが、本番アプリケーションには OAuth を使用することを強くお勧めします。 他の方式は、スクリプトまたはテスト(完全な OAuth では過剰になる場合)に使用するために提供されています。 認証に GitHub Enterprise を使用するサードパーティのアプリケーションは、GitHub Enterprise の認証情報を要求または収集してはなりません。 代わりに、OAuth web フローを使用してください。

Basic 認証

API は、RFC2617 で定義されている Basic 認証をサポートしていますが、若干の違いがあります。 主な違いは、RFC では、認証されていないリクエストに 401 Unauthorized レスポンスで応える必要がある点です。 これにより、多くの場所でユーザデータの存在が明らかになります。 代わりに、GitHub Enterprise API は 404 Not Found で応答します。 これにより、401 Unauthorized レスポンスを想定する HTTP ライブラリで問題が発生する可能性があります。 これは Authorization ヘッダを手動で作成することで解決できます。

OAuth と個人アクセストークンを使用する

GitHub API への認証には OAuth トークンを使用することをお勧めします。 OAuth トークンには個人アクセストークンが含まれており、ユーザはいつでもアクセスを取り消すことができます。

$ curl -u username:token http(s)://[hostname]/api/v3/user

このアプローチは、ツールが Basic 認証のみをサポートしているが、OAuth アクセストークンのセキュリティ機能を利用したい場合に役立ちます。

ユーザ名とパスワードを使用する

非推奨の注意: GitHubは、APIのパスワード認証を廃止します。 You must now authenticate to the GitHub API with an API token, such as an OAuth access token, GitHub App installation access token, or personal access token, depending on what you need to do with the token. For more information, see the blog post.

パスワードを使ったAPIの認証は現在利用可能で、GitHub Enterprise Serverでは非推奨になっていません。 GitHubは、この機能のサポートの削除に先立って、非推奨化を告知し、通知を行います。

GitHub Enterprise API で Basic 認証を使用するには、アカウントに関連付けられているユーザ名とパスワードを送信します。

たとえば、cURL を介して API にアクセスしている場合、<username> を GitHub Enterprise のユーザ名に置き換えると、次のコマンドで認証されます。 (cURL からパスワードの入力を求められます。)

$ curl -u username http(s)://[hostname]/api/v3/user

2 要素認証を有効にしている場合は、2 要素認証の使用方法を理解した上で行ってください。

2 要素認証を使用する

非推奨の注意: GitHubは、APIのパスワード認証を廃止します。 You must now authenticate to the GitHub API with an API token, such as an OAuth access token, GitHub App installation access token, or personal access token, depending on what you need to do with the token. For more information, see the blog post.

パスワードを使ったAPIの認証は現在利用可能で、GitHub Enterprise Serverでは非推奨になっていません。 GitHubは、この機能のサポートの削除に先立って、非推奨化を告知し、通知を行います。

2 要素認証を有効にしている場合、REST API のほとんどのエンドポイントの Basic 認証では、ユーザ名とパスワードの代わりに個人アクセストークンまたは OAuth トークンを使用する必要があります。

新しい個人用アクセストークンを生成するか、OAuth Authorizations APIのエンドポイントで「新しい認可を生成」して新しいOAuthトークンを作成することができます。 詳しい情報については、「コマンドラインの個人アクセストークンを作成する」を参照してください。 次に、これらのトークンを使って、GitHub API で OAuth トークンを使用して認証します。 ユーザ名とパスワードで認証する必要があるのは、OAuth トークンを作成するとき、または OAuth Authorizations API を使用するときだけです。

2 要素認証で OAuth Authorizations API を使用する

OAuth Authorizations API を呼び出す場合、Basic 認証では、トークンの代わりにワンタイムパスワード(OTP)とユーザ名とパスワードを使用する必要があります。 OAuth Authorizations API で認証しようとすると、サーバは 401 Unauthorized とこれらのヘッダの 1 つで応答し、2 要素認証コードが必要であることを通知します。

X-GitHub-OTP: required; SMS または X-GitHub-OTP: required; app

このヘッダは、アカウントの 2 要素認証コードの受け取り方法を示します。 アカウントの設定方法に応じて、SMS 経由で OTP コードを受け取るか、Google 認証システムや 1Password などのアプリケーションを使用します。 詳しい情報については「2 要素認証の設定」を参照してください。 ヘッダーで次のように OTP を渡します。

$ curl --request POST \
  --url https://api.github.com/authorizations \
  --header 'authorization: Basic PASSWORD' \
  --header 'content-type: application/json' \
  --header 'x-github-otp: OTP' \
  --data '{"scopes": ["public_repo"], "note": "test"}'

Did this doc help you?