アプリの SSO を有効にする

Teams でのシングル サインオン (SSO) では、アプリ ユーザーは Teams を使用してボットまたはメッセージ拡張機能アプリにアクセスできるという利点があります。 Microsoft または Microsoft 365 アカウントを使用して Teams にログインすると、アプリ ユーザーは、もう一度サインインしなくてもアプリを使用できます。 アプリは、Azure Active Directory (AD) を介して付与されたアクセス権を持つ任意のデバイス上のアプリ ユーザーが利用できます。

注:

Teams のボット アプリの SSO は、1 対 1 のチャットでのみサポートされます。

このセクションでは、ボットとメッセージング拡張機能アプリに必要な SSO 構成について説明します。

Teams での SSO ユーザー エクスペリエンス

アプリ ユーザーは、個人用の Microsoft アカウントまたは Microsoft 365 アカウントを使用して Teams にサインインします。 これを利用し、SSO を使用してアプリ ユーザーの認証と承認を行うことができます。 Azure AD を使用すると、アプリ ユーザーはボットまたはメッセージ拡張機能アプリにアクセスできます。

  • Teams は、アプリ ユーザーの ID を認証して保存します。
  • ボットは、Teams によって既に検証されているアプリ ユーザーの格納された ID を使用します。
  • アプリ ユーザーは、ID を使用してボットにアクセスするために Teams に同意する必要があります。
  • アプリ ユーザーは、Web、デスクトップ、またはモバイル クライアントでアプリにアクセスできます。

注:

アプリ ユーザーは、テナント内のすべての SharePoint および OneDrive アセットの読み取りと書き込みをアプリ ユーザーが許可する Sites.ReadWrite.All などの一部のアクセス許可スコープにアクセス許可を与えることはできません。 このようなスコープの場合、アプリ ユーザーの代わりに同意を付与できるのはテナント管理者だけです。

ここでは、Teams 内で SSO エクスペリエンスを実現するために、実行時にバックエンドで発生することに目を向けてみましょう。

Teams 実行時の SSO

ボットまたはメッセージ拡張機能アプリで SSO を実現するには、現在サインインしている Teams アプリ ユーザーのアクセス トークンを取得します。 このプロセスには、ボット アプリ クライアントとサーバー、Teams クライアント、Bot Framework、Azure AD が含まれます。 この操作中、アプリ ユーザーは、マルチテナント環境でアクセス トークンを取得することに同意する必要があります。

次の図は、Teams アプリ ユーザーがボットまたはメッセージ拡張機能アプリにアクセスしようとしたときの SSO のしくみを示しています。

実行時のボットとメッセージ拡張機能の SSO

# 操作 何が起こっているのでしょうか
1 Teams クライアント → Bot サービス アプリ ユーザーが送信するメッセージは、Teams クライアントによって受信され、ボットに送信されます。
アプリ ユーザーが以前にサインインしている場合、トークンは Bot Framework トークン ストアに保存されます。 ボットは Bot Framework トークン サービスを呼び出し、Bot Framework トークン ストア内のアプリ ユーザーの既存のトークンをチェックします。
• トークンが存在する場合は、アプリ ユーザーにアクセス権が付与されます。
• 使用可能なトークンがない場合、ボットは認証フローをトリガーします。
2 Bot Framework トークン サービス→ボット サービス ボットは Bot Framework Token Service を呼び出して、ユーザーのサインイン リンクを取得します。
3 Bot Framework Token Service → Teams クライアント ボット アプリの場合: Bot Framework Token Service は、サインインの要求リンクをボット サービスに送信し、OAuth カードで Teams クライアントに転送します。
メッセージ拡張アプリの場合: OAuth カードの代わりに、Bot Framework Token Service によって呼び出し要求が送信されます。
4 Teams クライアント → Bot Service → Bot Framework Token Service → Azure AD Teams クライアントは、アプリ ユーザーの OAuth カードを受け取った後、SSO が有効になっている場合、アプリ ユーザーのトークン交換要求をボットに送信します。 ボットは Bot Framework Token Service を呼び出し、Azure AD から受信したトークンを交換しようとします。
5 Azure AD → Teams クライアント ボット サービスを初めて使用するアプリ ユーザーの場合、トークン交換は、アプリ ユーザーが同意した後にのみ行うことができます。 Teams クライアントは、同意を与えるメッセージをアプリ ユーザーに表示します。
同意が失敗した場合:
1. 認証はサインイン プロンプトにフォールバックし、ボット アプリを使用するにはアプリ ユーザーがサインインする必要があります。 サインイン ボタンが Teams クライアントに表示され、アプリ ユーザーが選択すると、Azure AD サインイン ページが表示されます。
2. アプリ ユーザーがサインインし、ボット サービスへのアクセスを許可します。
6 Bot Framework トークン サービス→ボット サービス アプリ ユーザーのトークンは、Bot Framework トークン ストアに格納されます。

ボットまたはメッセージ拡張機能アプリの場合、ボット アプリは OAuth カードを Teams クライアントに送信します。 このカードは、 を使用して Azure AD からアクセス トークンを取得するために使用 tokenExchangeResourceされます。 アプリ ユーザーの同意に従って、Teams クライアントは、 を使用して tokenExchangeAzure AD から受信したトークンをボット アプリに送信します。 ボット アプリはトークンを解析して、メール アドレスなどのアプリ ユーザーの情報を取得できます。

重要

ボットまたはメッセージ拡張機能アプリは、複数のアクティブなエンドポイントを持つことができます。 アプリ ユーザーがすべてのアクティブなエンドポイントに対する同意要求を初めて受け取る場合。

Teams アプリの SSO を有効にする

ボットとメッセージ拡張アプリは、Bot Framework を使用してアプリ ユーザーとの通信を処理します。

  • ボット アプリ: チャットボットまたは会話ボットとも呼ばれ、アプリ ユーザーに対して単純で反復的なタスクを実行するサービスです。 ボットは、大規模なアプリケーションの一部であるか、スタンドアロン サービスである場合があります。

  • メッセージ拡張機能アプリ: これは、Teams クライアント内から呼び出すことができるホストする Web サービスです。 ボットのメッセージング スキーマを利用して、セキュリティで保護された通信を確保します。 メッセージ拡張機能アプリの SSO を有効にするには、Web サービスをボットとして登録する必要があります。

このセクションでは、Teams ボットまたはメッセージ拡張機能アプリの SSO の実装に関連するタスクについて説明します。 Teams ボットまたはメッセージ拡張機能アプリの SSO を有効にするには:

  1. Azure AD でアプリを構成する: アプリ ID とアプリケーション ID URI を生成する Azure AD アプリを作成します。 アクセス トークンを生成するには、スコープを構成し、信頼されたクライアント アプリケーションを承認します。 ボットとメッセージ拡張機能アプリで SSO を有効にするために Azure AD で必要な構成は同じです。 ボット リソースを作成し、クライアント シークレット、メッセージング エンドポイント、OAuth 接続を構成して SSO を有効にします。

  2. コードの追加: アクセス トークンを処理するコードを追加して、このトークンを Authorization ヘッダー内のアプリのサーバー コードに送信し、アクセス トークンが受信されたときに検証します。 ボット アプリで SSO を有効にするために必要なコードは、メッセージ拡張機能アプリに必要なコードとは異なります。

    注:

    このセクションでは、SSO を有効にするためにコードを追加するアプリを選択できます。

  3. Teams アプリ マニフェストの更新: Teams クライアント アプリ マニフェストを、Azure AD で生成されたアプリ ID とアプリケーション ID URI で更新して、Teams がアプリに代わってアクセス トークンを要求できるようにします。 マニフェスト ファイルに必要な更新プログラムは、ボットとメッセージ拡張機能アプリの場合と同じです。

  4. Graph のスコープとアクセス許可を構成する: Microsoft Graph のアクセス許可とスコープを使用してアプリを拡張することで、アプリにさらにスコープを追加できます。

次の手順

関連項目

用語集