みなさん、こんにちは。
今回から Microsoft Dynamics CRM 2013 および、Microsoft Dynamics
CRM Online Fall '13 新機能より、モバイルおよびリッチ クライアント
の開発に関する情報をお届けします。
概要
以下に今回のトピックに関連する内容を紹介します。
新たにサポートされる内容
- JWT トークンのサポート
- Windows 8 ストアアプリケーションのサポート
- ブラウザ以外の外部アプリケーションからの SOAP/REST エンド
ポイントの認証をサポート
ブラウザ以外のがいるアプリケーションでサポートされる操作
- OData エンドポイントを使用するとき、作成、取得、更新、および
削除の操作がサポートされます。メッセージ実行またはメタデータ
検索はサポートされません。
- 最新のアプリケーションおよびモバイル アプリケーションの SOAP
エンドポイント (Organization.svc/web) を使用するとき、完全な Web
サービス機能セットへのアクセスが利用できます。
テクノロジの依存関係
- .NET 用 Windows Azure AD 認証ライブラリ
- Microsoft Visual Studio 2012
- Windows Server 2012 R2 および AD FS 2.2 (IFD のみ)
※設置型の場合クレーム構成と IFD が必須となります。
- Microsoft Dynamics CRM 2013 SDK 6.0.1 (サンプルが含まれます)
※2013 年 11 月 29日時点で英語版のみサンプルを提供
セキュリティ関連
- Azure AD 認証ライブラリのユーザー ログオンは、Web ブラウザー
のコンテキストによって処理されます。
- アプリケーションの登録は、 展開のための Azure Active Directory、
および設置型展開または IFD のための Active Directory フェデレーション
サービス (AD FS) によって管理されます。
サンプルを利用する
開発者の方は実際にサンプルを見た方が早いと思いますので、早速
サンプルを紹介します。詳細は次回以降の記事で紹介しますので
今回はサンプルを動かせるようにする手順をまず案内します。
事前準備
サンプルを利用するにあたり、以下の環境を準備してください。
設置型については今後の記事で紹介する予定です。
- Microsoft Dynamics CRM 2013 オンライントライアル
- Visual Studio 2012
- Microsoft Dynamics CRM 2013 SDK 6.0.1 英語版
サンプルソリューションの準備
サンプルは SOAP と REST の 2 つ提供されていますが、今回は REST
版のサンプルを利用します。また REST 版は設置型向けのサンプルと
して提供されていますので、オンライン向けに書き換えます。
1. Visual Studio 2012 でサンプルを開きます。
SDK\SampleCode\CS\ModernAndMobileApps\ModernOdataApp
2. 参照設定を展開して解決できていない参照があるか確認します。
![image image]()
3. Azure のライブラリは NuGet で取得できます。ソリューションを
右クリックして NuGet パッケージの復元の有効化をクリックします。
![image image]()
4. 確認の画面が出るので「はい」をクリックします。
5. プロジェクトを右クリックして NuGet パッケージの管理をクリック
します。自動的に以下のメッセージが表示されます。復元ボタンを
クリックします。
![image image]()
6. 以下の様にパッケージが表示されます。インストールボタンが表示
されている場合はボタンをクリック、アンインストールが表示されて
いる場合はパッケージはインストール済で参照が解決されるだけです
ので、閉じるをクリックします。
![image image]()
7. 一旦ソリューションをビルドして参照エラーが解決することを
確認します。
![image image]()
8. 次にプロジェクト直下にある CurrentEnvironment.cs を開いて、
クラスメンバーを展開します。
9. CrmServiceUrl を申し込んだトライアルのアドレスに書き換えます。
public const string CrmServiceUrl = “https://crm2013training3.crm5.dynamics.com”;
10. _oauthUrl を以下の様に書き換えます。
private const string _oauthUrl = “https://login.windows.net/common/wsfed”;
11. 58、68 行目の CrmServiceUrl 変数を “Microsoft.CRM” に書き換えます。
元) await _authenticationContext.AcquireTokenAsync(CrmServiceUrl, _clientID);
後) await _authenticationContext.AcquireTokenAsync(”Microsoft.CRM”, _clientID);
アプリケーションの登録
新しい認証方式を利用するには、アプリケーションを事前に
登録しておく必要があります。
1. 登録に際してアプリケーション固有の戻り値を取得します。
CurrentEnvironment.cs 57 行目にブレークポイントを設定して、
プロジェクトをデバッグ実行します。
2. redirectUrl の値をコピーしておきます。
![image image]()
3. http://graphexplorer.cloudapp.net/にアクセスします。画面
右上の Sign In をクリックして CRM 組織の管理者 ID でログイン
します。
![image image]()
4. Resource で自分の組織のアドレスが含まれていることを確認
して、画面上部の Add Application Permission をクリックします。
5. Company に組織名が表示されていること確認して、Client App
Display Name にアプリケーション名 (任意) を、Client App URL に
先ほど取得した redirectUrl の値を入力します。
![image image]()
6. 画面中央のサービス一覧より Microsoft.CRM を選択します。
![image image]()
7. Create Permission ボタンをクリックします。
8. 次の画面に表示される Cient Application 欄にある
Client ID をコピーします。
9. サンプルアプリケーションに戻り、CurrentEnvironment.cs に
ある _clientID 変数に取得した Client ID を貼り付けます。
private const string _clientID = "取得した Client ID";
サンプルの実行
いよいよサンプルを実行しましょう。
1. F5 キーを押下してサンプルを実行します。
2. アプリケーションの画面が表示された後、以下の様にユーザー
情報を求められますので、Microsoft Dynamics CRM オンライン
に接続できるユーザーを入力します。
![image image]()
3. サインインをクリックします。
4. アプリケーションの画面に戻るので、Accounts または Tasks
をクリックします。他のタイルはダミーですので動作しません。
![image image]()
5. 取引先企業の一覧を取得できることを確認します。データの
取得は非同期のため表示までに時間がかかる可能性があります。
![image image]()
次回からは今回行った手順やサンプルの詳細を紹介します。
お楽しみに!
- 中村 憲一郎