認証と認可は、Google Cloud のインフラストラクチャに基づいて、 リソースへのアクセスをそれぞれ制御できます。このドキュメントでは、Google Cloud での認証および 認証の仕組みについて説明します。
プロセスの概要
次の図は、認証と認可の大まかな手順を示しています。 いくつかあります。
![Google Chat の認証と認可の手順の概要](https://developers-dot-devsite-v2-prod.appspot.com/static/workspace/chat/images/auth-process.png?authuser=9&hl=ja)
Google Cloud プロジェクトを構成し、Chat API を有効にして、 Chat 用アプリ: 開発では、 Google Cloud プロジェクトですGoogle Cloud プロジェクトで Chat API を有効にし、 Chat 用アプリを構成して認証を設定します。 詳細については、次をご覧ください: Google Workspace での開発 Chat アプリを作成するをご覧ください。
Call Chat API: アプリが Chat API を介して、Google Chat に Chat API。条件 アプリがサービス アカウントで認証されると、認証情報はサービス アカウントとして 必要があります。アプリで Chat API の呼び出しが必要な場合 まだ付与されていないユーザーの認証を使用すると、 できます。
リソースのリクエスト: アプリが次の権限によるアクセスを要求しています。 スコープ 認証の設定時に指定した名前です。
同意を求める: アプリがユーザーとして認証されている場合、Google は アプリに権限を付与するかどうかをユーザーが決定できる OAuth 同意画面 アクセス権を取得できます。サービス アカウントを使用した認証では ユーザーの同意が必要です。
リソースの承認済みリクエストを送信する: ユーザーが 場合、アプリは認証情報とユーザーが承認した認証情報を リクエストの範囲を特定します。リクエストが Google の承認サーバーに送信される アクセス トークンを取得します。
Google がアクセス トークンを返す: アクセス トークンには、 付与されています。返されたスコープのリストが、指定したポリシーよりも制限が トークンによって制限されたすべての機能がアプリによってオフになります。
リクエストされたリソースへのアクセス: アプリは Google から取得したアクセス トークンを使用して、 Chat API を呼び出して、Chat API リソースにアクセスできます。
更新トークンを取得する(省略可): アプリが 1 つのアクセス トークンの有効期間を超える Google Chat API では、 更新します。詳細については、次をご覧ください: OAuth 2.0 を使用して Google API にアクセスする
追加のリソースをリクエストする: アプリがさらにアクセス権を必要とする場合は、ユーザーに確認を求めます。 新しいスコープを付与し、アクセス トークンを取得するための新しいリクエストが発生する (ステップ 3 ~ 6)。
Chat アプリで認証が必要な場合
Chat アプリは、ユーザー操作に応じてメッセージを送信できます。 使用できます。また、ユーザーに代わって、ユーザーの代わりに Chat スペースの作成やグループ チャットの Chat スペース。
Chat アプリでは、チャット アプリケーションへの ただし、Chat 用アプリが Chat API または別の Google API を レスポンスを処理しています。
ユーザーの代わりに非同期メッセージを送信したりタスクを実行したりするには、 チャットアプリは、サービスに対して RESTful リクエストを Chat API 認証と認可が必要です。
ユーザー操作に対するレスポンスに認証を必要としない
Google Chat アプリは、ユーザーまたはグループとしての認証は 同期的に受信して応答する Chat アプリ 操作イベント。
Google Chat アプリは、ユーザーが Google Chat でなんらかの操作を は、次のような Chat 用アプリを呼び出します。
- ユーザーが Chat アプリにメッセージを送信します。
- ユーザーが Chat 用アプリに @メンションしました。
- ユーザーが Chat 用アプリの スラッシュ コマンドを使用します。
次の図は、HTTP リクエスト間のリクエスト / レスポンス シーケンスを Chat ユーザーと Chat アプリ:
![Chat 用アプリのインタラクション イベントに承認は不要](https://developers-dot-devsite-v2-prod.appspot.com/static/workspace/chat/images/auth-synchronous.png?authuser=9&hl=ja)
- ユーザーが Chat アプリにメッセージを送信すると、 できます。
- Google Chat からアプリにメッセージが転送されます。
- アプリはメッセージを受信して処理し、 できます。
- Google Chat によって、ユーザーまたはスペース内に回答が表示されます。
このシーケンスが Chat 用アプリのインタラクションごとに繰り返されます。 イベントです。
非同期メッセージには認証が必要
非同期メッセージは、Chat 用アプリが リクエストを Chat API これには認証と認可が必要です。
Chat API を呼び出すことで、Chat アプリはメッセージを投稿できます。 タスクを完了したり、データにアクセスしたりできます。対象 たとえば、サーバーの停止を検出すると、Chat アプリは Chat API で以下を行えます。
- 問題の調査と修正に特化した Chat スペースを作成する 停止します
- Chat スペースにユーザーを追加します。
- Chat スペースにメッセージを投稿して、スペースの詳細を説明する 停止します
次の図は、インスタンス間の非同期メッセージ シーケンスを Chat スペース:
![非同期メッセージに必要な認証](https://developers-dot-devsite-v2-prod.appspot.com/static/workspace/chat/images/auth-asynchronous.png?authuser=9&hl=ja)
- Chat アプリは、メッセージを作成し、
Chat 用 API に
spaces.messages.create
メソッド、 HTTP リクエストにユーザー認証情報を含めます。 - Google Chat は、Google Chat で Chat 用アプリを認証 サービスアカウントまたはユーザー認証情報です。
- Google Chat は、指定された Chat にアプリのメッセージをレンダリングする。 選択します。
Chat API のスコープ
OAuth 同意画面を構成してスコープを選択する ユーザーやアプリのレビュアーに表示する情報を定義して、 有効にして後で公開できます
アプリに付与するアクセス権のレベルを定義するには、 認可スコープを宣言します。認可スコープは OAuth 2.0 URI である Google Workspace アプリ名、そのアプリ名、 アクセスレベルが含まれます。
機密でないスコープ
スコープコード | 説明 |
---|---|
https://www.googleapis.com/auth/chat.bot
|
Chat アプリでチャットの表示とメッセージの送信を許可します。贈る Chat アプリで使用できるすべての機能にアクセスできます。 |
機密性の高いスコープ
スコープコード | 説明 |
---|---|
https://www.googleapis.com/auth/chat.spaces
|
会話とスペースの作成、メタデータの参照または編集( 履歴設定とアクセス設定など)を Chat 内で管理できます。 |
https://www.googleapis.com/auth/chat.spaces.create
|
Chat で新しい会話を作成する。 |
https://www.googleapis.com/auth/chat.spaces.readonly
|
Chat でチャットとスペースを表示する。 |
https://www.googleapis.com/auth/chat.memberships
|
Chat の会話のメンバーを表示、追加、更新、削除する。 |
https://www.googleapis.com/auth/chat.memberships.app
|
Google Chat の会話への追加と削除ができます。 |
https://www.googleapis.com/auth/chat.memberships.readonly
|
Chat の会話のメンバーを表示する。 |
https://www.googleapis.com/auth/chat.messages.create
|
Chat でメッセージを作成して送信する。 |
https://www.googleapis.com/auth/chat.messages.reactions
|
Chat 内のメッセージに対するリアクションの表示、追加、削除。 |
https://www.googleapis.com/auth/chat.messages.reactions.create
|
Chat でメッセージにリアクションを追加できます。 |
https://www.googleapis.com/auth/chat.messages.reactions.readonly
|
Chat でメッセージへのリアクションを表示する。 |
https://www.googleapis.com/auth/chat.users.readstate
|
Chat の会話の最終既読時間の表示と変更を行います。 |
https://www.googleapis.com/auth/chat.users.readstate.readonly
|
Chat のスレッドの最終既読時間を表示します。 |
https://www.googleapis.com/auth/chat.admin.spaces.readonly
|
管理者のドメインが所有するチャットとスペースを Chat で表示します。 |
https://www.googleapis.com/auth/chat.admin.spaces
|
管理者のドメインが所有するチャットとスペースを Chat で表示または編集する。 |
https://www.googleapis.com/auth/chat.admin.memberships.readonly
|
管理者のドメインが所有する会話のメンバーとマネージャーを Chat で表示できます。 |
https://www.googleapis.com/auth/chat.admin.memberships
|
管理者のドメインが所有する会話のメンバーとマネージャーを Chat で表示、追加、更新、削除する。 |
制限付きスコープ
スコープコード | 説明 |
---|---|
https://www.googleapis.com/auth/chat.delete
|
会話とスペース、関連ファイルへのアクセス権を削除する できます。 |
https://www.googleapis.com/auth/chat.import
|
スペース、メッセージ、メンバーシップを Chat にインポートします。対象 詳細については、以下をご覧ください。 Chat アプリにデータのインポートを許可する |
https://www.googleapis.com/auth/chat.messages
|
メッセージの表示、作成、送信、更新、削除と、メッセージの追加、表示、 メッセージへのリアクションの削除。 |
https://www.googleapis.com/auth/chat.messages.readonly
|
Chat でメッセージとリアクションを表示する。 |
https://www.googleapis.com/auth/chat.admin.delete
|
管理者のドメインが所有する会話とスペース、関連ファイルへのアクセス権を削除する できます。 |
上の表のスコープは、 次の定義があります。
非機密 - このスコープでは、広範囲を網羅する アクセスでき、基本的なアプリ確認のみが必要です。対象 詳しくは、試験準備の手順 確認します。
Sensitive - このスコープにより、アプリに特定のスコープ ユーザーの Google データ。必要な アプリの追加確認を実施してください。詳細については、このモジュールの 要件については、機密性の高い情報をリクエストするアプリ用の手順 スコープ。
制限付き - Google ユーザーデータに幅広くアクセスできます。 制限付きスコープの確認プロセスを完了する必要があります。対象 この要件の詳細については、Google API サービス: ユーザーデータ ポリシー および特定の API の追加要件 スコープ。 制限付きの Google 広告をリクエストするアプリ向けの手順 スコープ。
アプリで他の Google API にアクセスする必要がある場合は、それらのスコープを追加できます できます。Google API スコープの詳細については、OAuth 2.0 を使用した OAuth 2.0 の使用をご覧ください。 Google API にアクセスする。
Google Workspace API のスコープについて詳しくは、以下をご覧ください。 OAuth 同意画面を構成し、スコープを選択します。
必要な認証の種類
Chat 用アプリは 2 つの方法で認証と認可を行うことができます。 ユーザー認証情報またはサービス アカウント。
ユーザー認証情報による承認により、Chat アプリは ユーザーデータにアクセスし、ユーザーに代わって操作を完了します。 OAuth スコープは、承認済みのデータとアクションを指定します。
アプリの承認では、Chat 用アプリが
サービス アカウント認証情報を使用して API をアプリとして操作できます。アプリの認証を常に
chat.bot
承認スコープを使用します。
特定の API リクエストに使用する認証情報の種類を決定する際は、 一部の API メソッドは、特定のタイプのデータのみをサポートする あります。API メソッドが両方の認証情報をサポートしている場合、 は、返される結果に影響を及ぼします。
- アプリの承認を使用すると、メソッドはアプリが実行可能なリソースのみを返す できます。
- ユーザー承認を使用すると、メソッドは user が アクセスできます。
たとえば、アプリの認証を使用して ListSpaces
メソッドを呼び出すと、
アプリがメンバーになっているスペースのリスト。ユーザーで ListSpaces
を呼び出す
Authorization は、ユーザーがメンバーになっているスペースのリストを返します。イン
アプリでは、
必要な機能に応じて Chat API。
非同期 Chat API 呼び出しの場合
次の表に、Chat API のメソッドと、サポートされているメソッドを示します。 認可スコープ:
メソッド | ユーザー認証のサポート | アプリの認証のサポート | サポートされている認可スコープ | |
---|---|---|---|---|
スペース | ||||
スペースを作成する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
スペースを設定する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
スペースを取得する |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
|||
スペースを一覧表示する |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
|||
スペースを検索 |
管理者権限を使用するユーザー認証の場合:
<ph type="x-smartling-placeholder">
|
|||
スペースを更新する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
スペースを削除する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
スペースのインポート プロセスを完了する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
ダイレクト メッセージを見つける |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
|||
メンバー | ||||
メンバーを作成する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
メンバーを取得する |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
|||
メンバーを一覧表示する |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
|||
メンバーを削除する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
メンバーを更新する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
メッセージ | ||||
メッセージを作成する |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
|||
メッセージを取得する |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
|||
メッセージを一覧表示する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
メッセージを更新する |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
|||
メッセージを削除する |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
|||
リアクション | ||||
リアクションを作成する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
リアクションを一覧表示する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
リアクションを削除する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
メディア、添付ファイル | ||||
メディアを添付ファイルとしてアップロードする | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
メディアをダウンロードする |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
|||
メッセージの添付ファイルを取得する | — |
アプリの認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
ユーザーの読み取り状態 | ||||
ユーザーのスペース読み取り状態を取得する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
ユーザーのスペース読み取り状態を更新する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
ユーザーのスレッドの読み取り状態を取得する | — |
ユーザー認証を使用する場合:
<ph type="x-smartling-placeholder">
|
||
スペース イベント | ||||
宇宙のイベントを確認する | — |
ユーザー認証では、
スコープを使用する必要があり、
<ph type="x-smartling-placeholder"></ph>
イベントタイプ:
|
||
スペースのイベントを一覧表示する | — |
ユーザー認証では、
スコープを使用する必要があります。
<ph type="x-smartling-placeholder"></ph>
リクエストに含まれるイベントタイプに基づいて識別されます。
|
Chat 用アプリのインタラクション イベントの場合
次の表に、ユーザーが Chat 用アプリを使用する一般的な方法と、認証が必要かサポートされているかを示します。
シナリオ | 認証は不要 | ユーザー認証のサポート | アプリの認証のサポート | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
メッセージの送信元: |
|
|||||||||||||||
メッセージへの応答: |
|
|||||||||||||||
新しいメッセージを送信する: |
|
関連トピック
- Google Workspace での認証と認可の概要については、 認証と承認します。
- Google Cloud での認証と認可の概要については、以下をご覧ください。 認証の概要。
- サービス アカウントの詳細については、このモジュールの サービス アカウント。
- Google API による OAuth 2.0 の活用方法について詳しくは、 OAuth 2.0 を使用した Google API へのアクセス
- 認証と認可を設定する ユーザー認証情報 または サービス アカウント。