# OAuth アプリの承認

OAuth を使用して、 GitHub ID をサードパーティのアプリケーションに接続できます。
OAuth appを承認するときは、アプリケーションを信頼し、そのアプリケーションの開発元を確認し、アプリケーションがアクセスする情報の種類を確認する必要があります。

OAuth appがGitHubのアカウントでユーザーを識別する必要がある場合は、アプリの開発者の連絡先情報と、要求されている特定のデータの一覧が表示されます。

## OAuth app アクセス

OAuth appsは、\_\_ データへの\_読み取\_りまたはGitHubアクセス権を持つことができます。

* **読み取りアクセス**では、アプリがデータを\_参照\_することのみ可能です。
* **書き込みアクセス**では、ユーザーのデータの "*変更*" が可能です。

> \[!TIP]
> 認可されたインテグレーションを定期的にレビューすることをおすすめします。 しばらくの間使われていないアプリケーションやトークンは削除してください。 詳しくは、「[承認された OAuth アプリをレビューする](/ja/enterprise-server@3.22/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps)」をご覧ください。

### OAuth のスコープについて

*スコープ* は、パブリック データと非パブリック データの両方へのアクセスを OAuth app が要求できるアクセス許可の名前付きグループです。

OAuth appと統合するGitHubを使用する場合、そのアプリでは、必要なデータへのアクセスの種類を把握できます。 アプリケーションにアクセスを許可すれば、アプリケーションはあなたの代わりにデータの読み取りや変更といったアクションを行えるようになります。 たとえば、`user:email` スコープを要求するアプリを使用する必要がある場合、アプリは個人用メール アドレスへの読み取り専用アクセス権を持つことになります。 詳しくは、「[OAuth アプリのスコープ](/ja/enterprise-server@3.22/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps)」をご覧ください。

> \[!NOTE]
> 現在、ソース コードのアクセスのスコープを読み取り専用に設定することはできません。

トークンは、トークンのオーナーと同様に、リソースにアクセスしてそれらのリソースに対してアクションを実行できますが、さらに、トークンに付与されるスコープまたはアクセス許可によって制限されます。 トークンは、ユーザーに追加のアクセス権を付与できません。 たとえば、アプリケーションは、 `admin:org` スコープで構成されたアクセス トークンを作成できますが、アプリケーションのユーザーが組織の所有者でない場合、アプリケーションには組織への管理アクセス権は付与されません。

ユーザー/アプリケーション/スコープの組み合わせごとに、1 時間あたり作成されるトークン数には 10 という上限があります。 アプリケーションが同じユーザーと同じスコープに対して 10 個を超えるトークンを作成した場合、 GitHub は、同じユーザー/アプリケーション/スコープの組み合わせで、次の順序で選択された既存のトークンの 1 つを取り消します。

1. 一度も使用されていない最も古いトークン。
2. すべてのトークンが使用されている場合は、最も最近使用されたトークン。

時間単位のレート制限に達した場合、最も古いトークンは取り消されません。 代わりに、ブラウザー内で再承認プロンプトがトリガーされ、ユーザーはアプリに付与しているアクセス許可を再確認するよう求められます。 このプロンプトは、アプリが 1 時間以内にユーザーに 10 個のトークンを要求する理由がほとんどないため、アプリが陥っている可能性のある無限ループを中断させることを目的としています。

### リクエストされるデータの種類

OAuth apps では、複数の種類のデータを要求できます。

| データの種類                                                                                                       | 説明                                                                                                                                                           |
| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| コミットのステータス                                                                                                   | アプリケーションにコミットのステータスをレポートするためのアクセスを許可できます。 コミットステータスのアクセスがあれば、アプリケーションはビルドが特定のコミットに対して成功したかどうかを判定できます。 アプリケーションはコードへのアクセスは持ちませんが、特定のコミットに対するステータス情報を読み書きできます。 |
| デプロイメント                                                                                                      | デプロイメントのステータスへアクセスできれば、アプリケーションはパブリック及びプライベートのリポジトリの特定のコミットに対してデプロイメントが成功したかを判断できます。 アプリケーションはコードにはアクセスできません。                                                |
| Gists                                                                                                        |                                                                                                                                                              |
| [Gist](https://gist.github.com) アクセスでは、ユーザーのパブリック Gist とシークレット Gist の両方への、アプリによる読み取りや書き込みが可能です。              |                                                                                                                                                              |
| フック                                                                                                          |                                                                                                                                                              |
| [Webhook](/ja/enterprise-server@3.22/webhooks/about-webhooks) アクセスでは、管理するリポジトリのフック構成への、アプリによる読み取りや書き込みが可能です。 |                                                                                                                                                              |
| 通知                                                                                                           | 通知アクセスを使用すると、アプリは問題やプル要求に関するコメントなど、 GitHub 通知を読み取ることができます。 しかし、アプリケーションはリポジトリ内へはアクセスできないままです。                                                                |
| 組織とチーム                                                                                                       | Organization および Team のアクセスがあれば、アプリケーションは Organization および Team のメンバー構成へのアクセスと管理ができます。                                                                       |
| ユーザーの個人データ                                                                                                   | ユーザデータには、名前、メールアドレス、所在地など、ユーザプロファイル内の情報が含まれます。                                                                                                               |
| リポジトリ                                                                                                        | リポジトリ情報には、コントリビュータの名前、あなたが作成したブランチ、リポジトリ内の実際のファイルなどが含まれます。 アプリケーションはユーザ単位のレベルでパブリックあるいはプライベートリポジトリへのアクセスをリクエストできます。                                          |
| リポジトリの削除                                                                                                     | アプリケーションはあなたが管理するリポジトリの削除をリクエストできますが、コードにアクセスすることはできません。                                                                                                     |
|                                                                                                              |                                                                                                                                                              |

## 更新された権限のリクエスト

新しいアクセス許可 OAuth apps 要求すると、現在のアクセス許可と新しいアクセス許可の違いについて通知されます。