統合の設定
この手順では、Microsoft Dynamics 365 CRM および Microsoft Azure を設定し、Microsoft Dynamics と Bright Pattern コンタクトセンター ソフトウェアとの統合を有効にする方法について説明します。この手順の一部として、Web API 経由で Dynamics 365 データを使用するために、Bright Pattern シナリオブロックを有効化(つまり、認証および承認)することが含まれます。
ステップ 1: Microsoft Dynamics 365 にサインインする
まだお持ちでない場合は、Microsoft Dynamics 365 アカウントを取得し、ユーザー ID を作成してください。 Microsoft Dynamics 365 の試用組織を取得するか、お使いのインスタンスにサインインしてください。
ステップ 2: Web API アクセス用に Microsoft Azure および Dynamics 365 CRM を設定する
- Azure ポータル > Azure Active Directory > アプリの登録 で、[新規追加] をクリックして新しい登録済みアプリを追加します。
- 登録済みアプリの各フィールドを、以下の値で編集してください:
- アプリケーションの種類 - Web アプリ / API
- アプリケーション ID - クライアント ID
- オブジェクト ID - この ID は、登録されたアプリに対して自動的に入力されます
- ホームページ - http://localhost [注: この値は Azure ポータルにもハードコードされるため、正確にこの値を使用してください]

アプリ登録フィールド
- アプリケーションの種類 - Web アプリ / API
- 新しく作成したアプリで、必須のアクセス許可 > API > 追加 の順に進み、API アクセス権を追加してください。

API アクセスを追加 - 「API アクセスの追加」 で、以下の選択を行ってください:
- 「API の選択」 で、Dynamics CRM Online API を選択してください。
- 委任されたアクセス許可 のチェックボックスを選択してください。
- 設定が完了したら、「アクセス許可の付与」 をクリックしてください。
- 「API の選択」 で、Dynamics CRM Online API を選択してください。
- 新しく作成されたアプリで、「キー」 に移動し、以下の操作を行ってください:
- 「App Registrations」>「Endpoints」 に移動し、「OAUTH 2.0 Authorization Endpoint」および「OAUTH 2.0 Token Endpoint」の値をコピーしてください。

OAUTH 2.0 エンドポイントの値 - Dynamics 365 CRM(Azure ではありません)アプリケーションを開き、「設定」>「セキュリティ」>「セキュリティ役割」に進んでください。
- 「設定」>「セキュリティ」>「ユーザー」 に移動してください。
- 新規ユーザーを追加します。
- 「アカウント情報」で、以下の項目を入力してください:
- ユーザー名
- アプリケーション ID - ステップ 2 で取得したアプリケーション ID(つまり、クライアント ID)
- ユーザー名
- 「ユーザー情報」で、以下の項目を入力してください:
- レコードを保存してください。この時点で、「アプリケーション ID URI」および「Azure AD オブジェクト ID」の各フィールドに値が入力されます。

ユーザーレコードを保存します - 「役割の管理」 をクリックします。
これで、Microsoft Dynamics 365 CRM および Azure の設定は完了です。
ステップ 3: CRM Web API へのアクセスに必要な設定値を取得する
CRM Web API を使用するには、Bright Pattern シナリオエンジンで以下の設定(設定 DB テーブル)が必要となります。これらの設定値は、Azure ポータルから取得してください。
CREATE TABLE 'ms_dynamics_365_data' (
'ID' varchar(255) NOT NULL,
'VERSION' bigint(20) DEFAULT NULL,
'DEFAULT_ACCOUNT' tinyint(1) NOT NULL DEFAULT '0',
'TENANT_ID' varchar(255) NOT NULL,
'NAME' varchar(255) NOT NULL,
'CLIENT_ID' varchar(255) NOT NULL,
'CLIENT_SECRET' varchar(255) DEFAULT NULL,
'REFRESH_TOKEN' longtext NOT NULL, (encrypted)
'AUTHORIZATION_URL' varchar(255) NOT NULL,
'TOKEN_URL' varchar(255) NOT NULL,
'API_URL' varchar(255) NOT NULL,
PRIMARY KEY ('ID')
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ステップ 4: 統合アカウントを追加して、Web API アクセス用のリフレッシュトークンを取得する
リフレッシュトークンは、CRM Web API にアクセスするための認証情報を指定した後にのみ取得できます。これらの認証情報は、Microsoft Dynamics 365 の 統合アカウントのプロパティに設定します。
- 「コンタクトセンター管理者」>「統合アカウント」で、タイプが Microsoft Dynamics 365 の統合アカウントを追加してください。
統合アカウントのタイプを選択します - プロパティの編集:
- タイプ - 作成する統合アカウントのタイプは「Microsoft Dynamics 365」であるため、既定では「Microsoft Dynamics 365」となります
- 名前 - アカウントの一意の名前(任意)
- 既定のアカウント - このタイプの統合アカウントを複数持つことが可能ですので、このアカウントを既定として有効にするには、このチェックボックスを選択してください
- 認証 URL - 認証コード(「認証 URL の取得方法」を参照してください)
- トークン URL - この手順のステップ 2.2 で入力した「ホームページ」の値(例:「http://localhost」)です
- API URL - インスタンスの名前を含む API の URL(例:「https://example.crm.dynamics.com/api/data/v9.0」)
- クライアント ID - 本手順のステップ 2.2 で取得したアプリケーション ID
- クライアントシークレット - この手順のステップ 2.2 で取得したキーです
- リクエストトークン - 指定した認証情報を使用して Microsoft の Web API にアクセスし、リフレッシュトークンをリクエストします。クリックすると、トークンが「リフレッシュトークン」フィールドに表示されます
- リフレッシュトークン - 認証 URL をリクエストして取得したリフレッシュトークンです(「認証 URL の取得方法」を参照してください)。
- 接続テスト - 認証情報をテストし、Bright Pattern と Microsoft 間の接続が有効かどうかを検証します。
- タイプ - 作成する統合アカウントのタイプは「Microsoft Dynamics 365」であるため、既定では「Microsoft Dynamics 365」となります
認証 URL の取得方法
AUTHORIZATION をベース URL とし、クライアント ID(アプリケーション ID)、クライアントシークレット(キー)、リダイレクト URL(例:「http://localhost」)、および API_URL(例:「https://brightpatterndev.crm.dynamics.com/api/data/v9.0」)を使用して、1 回限りの認証コードを取得します。
以下のように指定します:
<base_url>?grant_type=client_credentials&client_id=<CLIENT_ID>&client_secret=<CLIENT_SECRET>&response_type=code&redirect_url=http://localhost& scope=offline_access&resource=<API_URL>
例:
https://login.microsoftonline.com/7f3b7d01-a049-4dfd-9dbd-d394e711c3a0/oauth2/authorize? grant_type=client_credentials&client_id=dc40e7c1-86fa-484e-a38b-bec0d31c945a&client_secret=uxjgDon7fWbis1ijuCDwPifHooG4BV2lVTUFRGVttt4%3D&response_type=code&redirect_url=http://localhost&scope=offline_access&resource=https://brightpatterndev.crm.dynamics.com
これにより、リダイレクト URL に 1 回限り使用できるコードが返されます。このコードはデータベースに保存しないでください。リフレッシュトークンを取得するために 1 回だけ使用されます:
http://localhost/?code=&session_state=XXX
次に、このコードを使用して、以下の本文を含む HTTP POST リクエストをトークン URL(すなわち「http://localhost」)に送信し、アクセストークンとリフレッシュトークンを取得します:
redirect_uri=http://localhost&client_id=<CLIENT_ID>&client_secret=<CLIENT_SECRET>&grant_type=authorization_code&code=
これに対し、トークンサービスは以下の JSON 形式のデータを返します:
{
"token_type":"Bearer",
"scope":"user_impersonation",
"expires_in":"3599",
"ext_expires_in":"3599",
"expires_on":"1548192804",
"not_before":"1548188904",
"resource":"https://<your.instance.name>.crm.dynamics.com",
"access_token":"XXX",
"refresh_token":"YYY",
"id_token":"ZZZ"
}
必要なのは refresh_token のみです。これを、設定 DB テーブルの REFRESH_TOKEN フィールドに保存してください。
ステップ 5: シナリオエンジンおよびワークフローエンジンが CRM Web API を使用できるようにするためのアクセストークンの取得
サーバーコンポーネントは、まず設定内のリフレッシュトークンを使用してアクセストークンを取得します。アクセストークンの有効期限は、既定では通常 1 時間以内です。
以下の本文を含む HTTP POST リクエストを <TOKEN_URL> に送信してください:
client_id=<CLIENT_ID>&client_secret=<CLIENT_SECRET>&grant_type=refresh_token&refresh_token=<REFRESH_TOKEN>
これに対し、トークンサービスは以下の JSON エンコードされたデータを返します:
{
"token_type":"Bearer",
"scope":"user_impersonation",
"expires_in":"3599",
"ext_expires_in":"3599",
"expires_on":"1548192804",
"not_before":"1548188904",
"resource":"https://example.crm.dynamics.com",
"access_token":"XXX",
"refresh_token":"YYY"
}
前のステップで取得したアクセストークンを使用して API_URL を利用する際は、以下の値を含む Authorization HTTP ヘッダーを追加してください:
Authorization: Bearer <access_token>
アクセストークンの有効期限が切れたら、ステップ 1 を繰り返して新しいアクセストークンを取得してください。
< 前へ





