Apps について
App は、 の機能を操作して拡張するために構築できる統合の一種です。 App を構築して、ユーザーのサインインやサービス アカウントの作成を必要とせずに、柔軟性を提供し、プロセスの摩擦を軽減できます。
Apps の一般的なユース ケースは次のとおりです。
- タスクまたはバックグラウンド プロセスの自動化
- " によるサインイン" のサポート。これにより、ユーザーは、自分の アカウントでサインインし、エコシステムで ID を提供できます
- 開発ツールとしての使用。これにより、ユーザーは、 App にサインインして を操作できるようになります。その後、アプリはユーザーに代わって動作できます
- ツールまたは外部サービスと の統合
OAuth apps と同様に、 Apps でも OAuth 2.0 が使われ、ユーザーの代わりに動作することができます。 OAuth apps とは異なり、 Apps はユーザーから独立して動作することもできます。
Apps は、組織や個人アカウントに直接インストールでき、特定のリポジトリへのアクセス権を付与できます。 精細なアクセス権限が付いており、webhook が組み込まれています。
また、Enterprise 所有の App を作成することもできます。これは、Enterprise内の組織にのみインストールでき、Enterprise のメンバーのみが認可できます。 詳しくは、「Enterprise 向け Apps の作成」をご覧ください。
デフォルトでは、Organization内の Appsの設定を管理できるのはOrganizationのオーナーだけです。 組織が所有する Apps の開発者設定を追加ユーザーが変更できるようにするため、所有者は App マネージャーのアクセス許可を付与できます。 App マネージャーは、サード パーティのアプリケーションを管理できません。 Organization での App マネージャーの追加と削除の詳細については、「Organizationのロール」を参照してください。
App の作成
App を作成するには、まず App を登録する必要があります。 詳しくは、「 App の登録」をご覧ください。
次に、コードを記述して App に機能を追加する必要があります。 App 登録の資格情報を使って、 の API に対して認証された要求を行うことができます。 App のコードを記述する方法の詳細については、「 App のコードの記述について」を参照してください。 認証された要求を行う方法の詳細については、「 アプリでの認証について」を参照してください。
App のコードを記述したら、アプリをどこかで実行する必要があります。 アプリが Web サイトまたは Web アプリの場合は、Azure App Service などのサーバー上でアプリをホストできます。 アプリがクライアント側アプリの場合は、ユーザーのデバイス上で実行できます。
App を使うには、組織または個人用アカウントにインストールする必要があります。
- App がプライベートの場合は、アプリを所有するアカウントでのみインストールできます。
- App がパブリックの場合は、他のユーザーや組織もインストールできます。
- App を Enterpriseが所有している場合は、Enterprise のどの組織でもインストールできます。
詳細については、「独自の App のインストール」および「 App の共有」を参照してください。
構築する App の種類について
App を設計する方法は複数あり、アプリに必要な機能に基づいてそれらを検討する必要があります。
ユーザーに代わって実行する Apps
アプリでユーザーに代わってアクションを実行する場合は、認証にユーザー アクセス トークンを使用する必要があります。 この種類の要求は "user-to-server" と呼ばれることがあり、アプリに付与されたアクセス許可とユーザーのアクセス許可によってアプリが制限されることを意味します。 このパターンでは、アプリでアクションが実行される前に、ユーザーがアプリを承認する必要があります。 詳しくは、「ユーザーに代わって アプリで認証する」をご覧ください。
App を使用して作成できる自動化 (ユーザーに代わってアプリが実行する場合) の例としては、次のようなものがあります。
- エコシステムの ID プロバイダーとして を使用する App。
- ユーザーに役立つ可能性があるサービスを の上に追加する App。 Marketplace を通じて、またはアプリを公開することで、他の開発者とアプリを共有できます。
独自で実行する Apps
アプリがユーザーの代わりではなく独自で実行する場合、認証にインストール アクセス トークンを使用する必要があります。 この種類の要求は、"server-to-server" とも呼ばれることがあり、アプリに付与されたアクセス許可によってアプリが制限されることを意味します。 詳しくは、「 App インストールとしての認証」をご覧ください。
App を使用して作成できる自動化 (アプリが独自で実行する場合) の例としては、次のようなものがあります。
- 特定の基準セットがある場合に Webhook を使用してイベントに対応する App。 たとえば、fine-grained personal access token に対する要求を確認するために、REST API エンドポイントを中心に特定のポリシーが与えられた要求を承認する自動化を作成できます。
- リポジトリの共同作成者に役立つ App。 たとえば、共同作成者が pull request を作成した後またはコメントを作成した後、アプリで有用なリソースを投稿できます。
- 他の CI/CD ツールに提供するため、またはリポジトリから情報をプルするために、有効期間の短いトークンを生成する App。
Webhook に応答する Apps
アプリで のイベントに応答する必要がある場合、アプリで Webhook をサブスクライブする必要があります。 たとえば、pull request が開かれたときにアプリにコメントを残すことができます。 詳しくは、「 Apps での Webhook の使用」をご覧ください。
特定のアクションを実行できる Apps
App を設定する際、アプリの特定のアクセス許可を選択できます。 これらのアクセス許可によって、アプリで API を使用して実行できること、サインインしたユーザーに代わって実行できること、アプリで受け取ることができる Webhook が決定されます。 詳しくは、「 アプリのアクセス許可を選択する」をご覧ください。