ボットでアダプティブ カードユニバーサル アクションの 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 のしくみを示しています。

ボットのアダプティブ カードユニバーサル アクションの SSO フローを示すスクリーンショット。

# 操作 何が起こっているのでしょうか
1 Teams クライアント → Bot サービス Teams は、ボットに呼び出し Action.Execute 要求を送信します。
アプリ ユーザーが以前にサインインしている場合、トークンは Bot Framework トークン ストアに保存されます。 ボットは、Bot Framework トークン ストア内のアプリ ユーザーの既存のトークンをチェックする Bot Framework トークン サービスを呼び出します。
• トークンが存在する場合は、アプリ ユーザーにアクセス権が付与されます。
• トークンが使用できない場合、ボットは認証フローをトリガーします。
2 Teams クライアント→ Microsoft Entra ID ボットでアダプティブ カードユニバーサル アクションを初めて使用するアプリ ユーザーの場合、トークン交換はアプリ ユーザーが同意した後にのみ行うことができます。 Teams クライアントは、同意を与えるメッセージをアプリ ユーザーに表示します。
同意が失敗した場合:
1. 認証はサインイン プロンプトにフォールバックし、ボット アプリを使用するにはアプリ ユーザーがサインインする必要があります。 Teams クライアントにサインイン ボタンが表示され、アプリ ユーザーが選択すると、[Microsoft Entra サインイン] ページが表示されます。
2. アプリ ユーザーがサインインし、Bot サービスへのアクセスを許可します。
3 Teams クライアント → ボット サービス Teams クライアントは、呼び出し Action.Execute 要求をトークンと共にボットに再送信します。
ボット サービスは、呼び出し呼び出しに応答して OAuth カード adaptiveCard/action 呼び出し応答を送信します。 Teams クライアントは、トークンと共に元の adaptiveCard/action をもう一度ボットに送信します。
4 Teams クライアント→ Microsoft Entra ID Microsoft Entra ID は、アダプティブ カードを使用して呼び出し応答を Teams クライアントに送信します。 ボットは、カードまたはメッセージを使用して、Teams クライアントに対して非エラー応答を返します。

ボットのアダプティブ カードユニバーサル アクションの場合、ボット アプリは Teams クライアントに OAuth カードを送信します。 このカードは、 tokenExchangeResourceを使用して Microsoft Entra ID からアクセス トークンを取得するために使用されます。 アプリ ユーザーの同意に従って、Teams クライアントは、Microsoft Entra ID から受け取ったトークンを、 tokenExchangeを使用してボット アプリに送信します。 ボット アプリはトークンを解析して、メール アドレスなどのアプリ ユーザーの情報を取得できます。

SSO を有効にするためのユース ケース

SSO の認証は、 Action.Execute内で、アダプティブ カードが共有されているグループ チャットまたはチャネル会話のコンテキスト内で認証を有効にします。

ボットは、次の Action.Execute に応答してサインイン要求で応答できます。

  • ボットが 1 対 1 のチャット、グループ チャット、またはチャネルで送信するアダプティブ カード。
  • 1 対 1 のチャット、グループ チャット、またはチャネルでメッセージ拡張機能アプリ (ボットによってサポート) を介してアプリ ユーザーによって送信されるアダプティブ カード。
  • アプリ ユーザーがメッセージを作成しているときに、作成またはプレビュー領域に存在するアダプティブ カード。 作成領域で、アダプティブ カードの更新が機能し、ボットがトークンを使用して、カードをチャットに送信する前に、アプリ ユーザーにユーザー固有のビューを提供したい場合があります。

次の手順

関連項目