Bot Framework 認証の基本Bot Framework authentication basics

適用対象: SDK v4APPLIES TO: SDK v4

多くの場合、bot は、ユーザーに代わって、電子メールアカウントなどの保護されたリソースにアクセスする必要があります。Often a bot must access protected resources, for example email account, on behalf of the user. そのためには、ユーザーの資格情報に基づいて bot を 承認 する必要があります。In order to do that the bot must be authorized based on the user's credentials. その前に、ユーザーを最初に 認証 する必要があります。Before that, the user must be authenticated first. さらに、bot 自体は既知のエンティティである必要があります。つまり、Azure Bot Service コンテキストで認証される必要があります。Moreover, the bot itself must be a known entity, that is it must be authenticated in the Azure Bot Service context. これは、bot がユーザーの代理で動作することを承認される前に発生します。This happens prior to the bot being authorized to operate on behalf of the user.

Bot Framework 認証コンテキストの概観ビューから開始して、このバンドルを untangle できるかどうかを見てみましょう。Let's see if we can untangle this bundle by starting with a bird's eye view of the Bot Framework authentication context.

bot 認証コンテキスト。

  • Bot チャネルの登録Bot Channel Registration. Bot チャネルの登録 などによって azure に bot を登録すると、azure によって ACTIVE DIRECTORY (AD) 登録アプリケーションが作成されます。When you register a bot in Azure, for example via the Bot Channels Registration, Azure creates an Active Directory (AD) registration application. このアプリケーションには、アプリ id ( MicrosoftAppID ) とクライアントシークレット () が含まれてい MicrosoftAppPassword ます。This application has an app id (MicrosoftAppID) and a client secret (MicrosoftAppPassword). 次に示すように、bot 構成ファイルでこれらの値を使用します。You use these values in the bot configuration files as described below. Web アプリボット を作成することで、同様の結果が得られることに注意してください。Notice that you can achieve similar results by creating a Web App Bot.

  • Azure AD idAzure AD Identity. Azure Active Directory (Azure AD) は、OAuth 2.0 などの業界標準プロトコルを使用して、ユーザーを安全にサインインさせるアプリケーションを構築できるクラウド ID サービスです。The Azure Active Directory (Azure AD) is a cloud identity service that allows you to build applications that securely sign in users using industry standard protocols like OAuth2.0. AD アプリケーションを作成し、その アプリ Idパスワード を使用して id プロバイダー を選択し、 認証 接続を生成します。You create an AD application and use its app Id and password to select an identity provider and generate an authentication connection. Bot チャネル登録設定にこの接続を追加します。You add this connection to the bot channel registration settings. また、次に示すように、bot 構成ファイルに接続名を追加します。You also add the connection name in the bot configuration files as described below.

  • ボットBot. Bot は、チャネル登録 (または web アプリ) の アプリ Idパスワード によって識別されます。A bot is identified by its channels registration (or web app) app Id and password. Bot の構成ファイル ( appsettings.json (.net)、 .env (JavaScript)、 config.py (Python))、または Azure Key Vault に関連する値を追加します。You add the related values in the bot's configuration files (appsettings.json (.NET), .env (JavaScript), config.py (Python)) or in Azure Key Vault. また、接続名をファイルに追加します。You also add the connection name to the files. Bot は、アプリ id とパスワードに基づく トークン を使用して、保護されたリソースにアクセスします。The bot uses the token based on the app id and password to access protected resources. また、bot は認証接続に基づく トークン を使用して、ユーザーの保護されたリソースにアクセスします。Also, the bot uses the token based on the authentication connection to access user's protected resources.

Bot の認証と承認Bot authentication and authorization

Bot を認証し、ユーザーの保護されたリソースにアクセスする権限を承認する主な手順を次に示します。The following are the main steps to authenticate a bot and authorize it to access user's protected resources:

  1. ボットチャネル登録アプリケーションを作成します。Create a bot channel registration application.
  2. Bot 構成ファイルに登録アプリ id とパスワードを追加します。Add the registration app id and password to the bot configuration file. これにより、保護されたリソースにアクセスするために bot を認証できます。This allows the bot to be authenticated to access protected resources.
  3. Azure AD アプリケーションを作成して、ユーザーを認証する id プロバイダーを選択します。Create an Azure AD application to select an identity provider to authenticate the user.
  4. 認証接続を作成し、チャネル登録設定に追加します。Create an authentication connection and add it to the channel registration settings.
  5. Bot の構成ファイルに接続名を追加します。Add the connection name to the bot's configuration files. これにより、ユーザーの保護されたリソースにアクセスする権限を bot に許可することができます。This allows the bot to be authorized to access user's protected resources.

完全な例については、「 bot に認証を追加する」を参照してください。For a complete example, see Add authentication to a bot.

ベスト プラクティスBest practices

  • AAD アプリの登録は、service to service アプリケーションの本来の目的に限定してください。Keep the AAD app registration restricted to its original purpose of service to service application.
  • 認証接続の無効化、シークレットのロールオーバー、または他のアプリケーションでの AAD アプリの再利用をより細かく制御するために、すべてのユーザーにサービス認証を行うための追加の AAD アプリを作成します。Create an additional AAD app for any user to service authentication, for more finite control over disabling authentication connections, rolling secrets, or reusing the AAD app with other applications.

AAD 登録アプリを認証にも使用する場合に発生する問題の一部を次に示します。Some of the problems you encounter if you also use the AAD registration app for authentication are:

  • AAD アプリの登録に関連付けられている証明書を更新する必要がある場合は、証明書を使用して他の AAD サービスで認証されたユーザーに影響します。If the certificate attached to the AAD app registration needs to be renewed it would impact users that have authenticated with other AAD services using the certificate.
  • 一般に、単一障害点を作成し、bot との認証に関連するすべてのアクティビティを制御します。In general, it creates a single point of failure and control for all authentication related activities with the bot.

次の記事では、Bot Framework 認証に関する詳細情報と例を提供しています。The following articles provide in depth information and examples about the Bot Framework authentication. まず、 認証の種類id プロバイダーを確認します。Start by looking at the Authentication types and then Identity providers.

[アーティクル]Article 説明Description
認証の種類 Authentication types 2つの Bot Framework 認証の種類と、それらが使用するトークンについて説明します。Describes the two Bot Framework authentication types and the tokens they use.
ID プロバイダーIdentity providers Id プロバイダーの使用方法について説明します。Describes the use of identity providers. OAuth 2.0 などの業界標準のプロトコルを使用してユーザーが安全にサインインできるアプリケーションを構築できます。They allow you to build applications that securely sign in users using industry standard protocols like OAuth2.0.
ユーザー認証User authentication ユーザーの認証と、ユーザーの代わりにタスクを実行することをボットに許可する関連トークンについて説明します。Describes user's authentication and the related token to authorize a bot to perform tasks on the user's behalf.
シングル サインオンSingle sign on 複数の保護されたリソースへのアクセスに対するシングルユーザー認証について説明します。Describes single user authentication for multiple protected resources access.
ボット チャンネル登録Bot channels registration Bot を Azure Bot Service に登録する方法について説明します。Shows how to register a bot with the Azure Bot Service.
Bot Framework のセキュリティ ガイドラインBot Framework security guidelines Bot Framework に適用される、一般的なセキュリティについて説明します。Describes security in general and as it applies to the Bot Framework.
ボットに認証を追加するAdd authentication to a bot Bot チャネルの登録と認証接続を作成し、コードを準備する方法を示します。Shows how to create bot channel registration, authentication connection and preparing the code.
ボットにシングル サインオンを追加するAdd single sign on to a bot Bot にシングルサインオン認証を追加する方法について説明します。Shows how to add single sign on authentication to a bot.