API は複数の認証方式を提供していますが、本番アプリケーションには OAuth を使用することを強くお勧めします。 他の方式は、スクリプトまたはテスト(完全な OAuth では過剰になる� �合)に使用するために提供されています。 認証に GitHub Enterprise Server を利用するサードパーティのアプリケーションでは、GitHub Enterprise Server 認証情� �を要求または収集してはなりません。 代わりに、OAuth web フローを使用してく� さい。
Basic 認証
API は、RFC2617 で定義されている Basic 認証をサポートしていますが、若干の違いがあります。 主な違いは、RFC では、認証されていないリクエストに 401 Unauthorized
レスポンスで応える必要がある点です。 これにより、多くの� �所でユーザデータの存在が明らかになります。 Instead, the GitHub Enterprise Server API responds with 404 Not Found
. これにより、401 Unauthorized
レスポンスを想定する HTTP ライブラリで問題が発生する可能性があります。 これは Authorization
ヘッダを手動で作成することで解決できます。
OAuth と個人アクセストークンを使用する
GitHub API への認証には OAuth トークンを使用することをお勧めします。 OAuth トークンには個人アクセストークンが含まれており、ユーザはいつでもアクセスを取り消すことができます。
$ curl -u username:token http(s)://[hostname]/api/v3/user
このアプローチは、ツールが Basic 認証のみをサポートしているが、OAuth アクセストークンのセキュリティ機能を利用したい� �合に役立ちます。
ユーザ名とパスワードを使用する
Basic 認証を GitHub Enterprise Server API, simply send the username and 対応するユーザ名とパスワードを送信する� けです。
たとえば、cURL を介して API にアクセスしている� �合、<username>
を GitHub Enterprise Server のユーザ名に置き換えると、次のコマンドで認証されます。 (cURL からパスワードの入力を求められます。)
$ curl -u username http(s)://[hostname]/api/v3/user
2 要� 認証を有効にしている� �合は、2 要� 認証の使用方法を理解した上で行ってく� さい。
2 要� 認証を使用する
2 要� 認証を有効にしている� �合、REST API のほとんどのエンドポイントの Basic 認証では、個人アクセストークン または OAuth トークンをユーザ名とパスワードの代わりに を使用する必要があります。
新しい個人アクセストークンを生成するか、 OAuth Authorizations API で [新しい認証の作成][/rest/reference/oauth-authorizations#create-a-new-authorization] エンドポイントを使用して新しい OAuth トークンを生成することができます。 詳しい情� �については、「コマンドラインの個人アクセストークンを作成する」を参照してく� さい。 Then you would use these tokens to authenticate using OAuth token with the GitHub Enterprise Server API. The only time you need to authenticate with your username and password is when you create your OAuth token or use the 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"}'