ボットでアダプティブ カードユニバーサル アクションの SSO を有効にする
Teams でのシングル サインオン (SSO) では、アプリ ユーザーは Teams を使用してボットのアダプティブ カードユニバーサル アクションにアクセスできるという利点があります。 Microsoft または Microsoft 365 アカウントを使用して Teams にログインすると、アプリ ユーザーは再びサインインしなくてもアプリを使用できます。 アプリは、Microsoft Entra IDを介して付与されたアクセス権を持つ任意のデバイス上のアプリ ユーザーが利用できます。
アダプティブ カードのユニバーサル アクションの詳細については、「アダプティブ カード のユニバーサル アクション」を参照してください。
アダプティブ カードユニバーサル アクションでは、アクションを処理するための共通バックエンドとしてボットが使用され、新しいアクションの種類が導入されます。 ボットでは、Bot Framework を使用してアプリ ユーザーとの通信を処理し、SSO 認証のためにボットにアクセス トークンを送受信します。 同様に、アダプティブ カード ユニバーサル アクションでは、Bot Framework を使用して SSO 認証も有効にします。
アダプティブ カードユニバーサル アクションの SSO を有効にする前に、ボットの SSO を有効にしてください。
Teams 実行時の SSO
ボットでアダプティブ カードユニバーサル アクションの SSO を有効にするには、サインインしている Teams アプリ ユーザーのアクセス トークンを取得します。 このプロセスには、ボット アプリ クライアントとサーバー、Teams クライアント、Bot Framework、およびMicrosoft Entra IDが含まれます。 この操作中、アプリ ユーザーはマルチテナント環境でアクセス トークンを取得することに同意する必要があります。
次の図は、Teams アプリ ユーザーがボットのアダプティブ カード ユニバーサル アクションにアクセスしようとしたときの SSO のしくみを示しています。
# | 操作 | 何が起こっているのでしょうか |
---|---|---|
1 | Teams クライアント → Bot サービス | Teams は、ボットに呼び出し Action.Execute 要求を送信します。 アプリ ユーザーが以前にサインインしている場合、トークンは Bot Framework トークン ストアに保存されます。 ボットは、Bot Framework トークン ストア内のアプリ ユーザーの既存のトークンをチェックする Bot Framework トークン サービスを呼び出します。 • トークンが存在する場合は、アプリ ユーザーにアクセス権が付与されます。 • トークンが使用できない場合、ボットは認証フローをトリガーします。 |
2 | Microsoft Entra ID → Teams クライアント | ボットでアダプティブ カードユニバーサル アクションを初めて使用するアプリ ユーザーの場合、トークン交換はアプリ ユーザーが同意した後にのみ行うことができます。 Teams クライアントは、同意を与えるメッセージをアプリ ユーザーに表示します。 同意が失敗した場合: 1. 認証はサインイン プロンプトにフォールバックし、ボット アプリを使用するにはアプリ ユーザーがサインインする必要があります。 Teams クライアントにサインイン ボタンが表示され、アプリ ユーザーが選択すると、[Microsoft Entra サインイン] ページが表示されます。 2. アプリ ユーザーがサインインし、Bot サービスへのアクセスを許可します。 |
3 | Teams クライアント → ボット サービス | Teams クライアントは、呼び出し Action.Execute 要求をトークンと共にボットに再送信します。 ボット サービスは、呼び出し呼び出しに応答して OAuth カードを使用 adaptiveCard/action 呼び出し応答を送信します。 Teams クライアントは、トークンと共に元の adaptiveCard/action をもう一度ボットに送信します。 |
4 | Microsoft Entra ID → Teams クライアント | Microsoft Entra IDは、アダプティブ カードを使用して Teams クライアントに呼び出し応答を送信します。 ボットは、カードまたはメッセージを使用して、Teams クライアントに対して非エラー応答を返します。 |
ボットのアダプティブ カードユニバーサル アクションの場合、ボット アプリは OAuth カードを Teams クライアントに送信します。 このカードは、tokenExchangeResource
を使用してMicrosoft Entra IDからアクセス トークンを取得するために使用されます。 アプリ ユーザーの同意に従って、Teams クライアントは、tokenExchange
を使用してMicrosoft Entra IDから受信したトークンをボット アプリに送信します。 ボット アプリはトークンを解析して、メール アドレスなどのアプリ ユーザーの情報を取得できます。
SSO を有効にするためのユース ケース
SSO の認証は、 Action.Execute
内で、アダプティブ カードが共有されているグループ チャットまたはチャネル会話のコンテキスト内で認証を有効にします。
ボットは、次の Action.Execute
に応答してサインイン要求で応答できます。
- ボットが 1 対 1 のチャット、グループ チャット、またはチャネルで送信するアダプティブ カード。
- 1 対 1 のチャット、グループ チャット、またはチャネルでメッセージ拡張機能アプリ (ボットによってサポート) を介してアプリ ユーザーによって送信されるアダプティブ カード。
- アプリ ユーザーがメッセージを作成しているときに、作成またはプレビュー領域に存在するアダプティブ カード。 作成領域でアダプティブ カードの更新が機能し、ボットがトークンを使用して、カードをチャットに送信する前に、アプリ ユーザーにユーザー固有のビューを提供したい場合があります。
次の手順
関連項目
Platform Docs