# ユーザーに代わってGitHub アプリで認証する

GitHub App は、issue の作成、コメントの投稿、デプロイの作成などのアクションをユーザーの代わりに実行できます。

アプリは、ユーザーに代わって API 要求を行うことができます。 アプリがユーザーに代わって行った API 要求は、そのユーザーに帰属します。 たとえば、アプリがユーザーに代わってコメントを投稿した場合、GitHub UI には、ユーザーのアバター写真とアプリのアイデンティコン バッジがイシューの作成者として表示されます。

![アプリのアイデンティコン バッジがオーバーレイされたユーザー アバターがあるコメントのスクリーンショット。 アバターがオレンジ色の枠線で強調表示されています。](/assets/images/help/apps/github-app-acting-on-your-behalf.png)

同様に、要求によって監査ログとセキュリティ ログ内の対応するエントリがトリガーされた場合、ログはユーザーをアクターとして一覧表示しますが、"programmatic\_access\_type" は "GitHub アプリ ユーザーからサーバーへのトークン" と表示されます。

ユーザーに代わって API 要求を行うには、ユーザーがアプリを承認する必要があります。 複数のメンバーを含む organization にアプリがインストールされている場合は、アプリがメンバーに代わって操作する前に、各メンバーがアプリを認可する必要があります。 ユーザーがアプリを承認するためにアプリをインストールする必要はありません。

ユーザーがアカウントにアプリをインストールすると、アプリが要求したリソースへのアクセス許可が付与されます。 インストール プロセスの間に、アプリが個々のユーザーに対して要求できるアカウント アクセス許可の一覧も表示されます。 ユーザーは、アプリを承認するときに、ユーザーの代わりに動作するためのアクセス許可をアプリに付与し、アプリから要求されたアカウント アクセス許可を付与します。

ユーザーがアプリを承認したら、OAuth トークンの一種であるユーザー アクセス トークンを生成できます。 後続の API 要求の `Authorization` ヘッダーにあるユーザー アクセス トークンを送信する必要があります。 ユーザーにアプリの認可を求め、ユーザー アクセス トークンを生成する方法の詳細については、「[GitHub アプリのユーザー アクセス トークンの生成](/ja/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)」を参照してください。

ユーザーに代わって操作する場合、安全で適切なアクセスを確保するため、アプリのアクセスは制限されます。

* アプリは、そのユーザーがアクセスできるリソースにのみアクセスできます。 ユーザーがリポジトリへのアクセス権を持っていない場合、アプリがそのリポジトリにインストールされている場合でも、アプリはユーザーに代わってそのリポジトリにアクセスすることはできません。
* アプリは、アクセス許可を持つリソースにのみアクセスできます。 アプリに `Issues` アクセス許可がない場合、ユーザーがリポジトリにアクセスできる場合でも、アプリはユーザーの issue を作成したり読み取ったりすることはできません。
* アプリは、インストールされているアカウント内のリソースにのみアクセスできます。 アプリがユーザーの個人用アカウントにのみインストールされている場合、その organization にもアプリがインストールされていない限り、そのユーザーが所属する organization のリソースにアクセスすることはできません。

ユーザー アクセス トークンを使用して行われた要求は、"ユーザーからサーバーへの" 要求と呼ばれることもあります。

トークンは、トークンのオーナーと同様に、リソースにアクセスしてそれらのリソースに対してアクションを実行できますが、さらに、トークンに付与されるスコープまたはアクセス許可によって制限されます。 トークンは、ユーザーに追加のアクセス権を付与できません。

アプリのアクティビティをユーザーではなくアプリに帰属させる場合は、代わりにアプリのインストールとして認証する必要があります。 詳しくは、「[GitHub App インストールとしての認証](/ja/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation)」をご覧ください。

> \[!NOTE]
> GitHub App を承認した後に自分の Organization で所有しているリソースを表示できないことがユーザーから報告され、その Organization で SAML SSO を使用している場合、再認証する前に、Organization のアクティブな SAML セッションを開始するようにユーザーに指示します。 詳細については、GitHub Enterprise Cloud ドキュメントの「[SAML アプリと GitHub Apps](/ja/enterprise-cloud@latest/apps/using-github-apps/saml-and-github-apps)」を参照してください。