Dynamics CRM 2011 SDK 認証の選択肢


みなさん、こんにちは。

今回は先日公開された SDK 5.0.12 で提供された情報から
認証の選択肢についてピックアップします。

Choose your Development Style for Managed Code for Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online
http://msdn.microsoft.com/en-us/library/jj602917

認証の選択肢

Microsoft Dynamics CRM 2011 および Microsoft Dynamics CRM
オンラインに外部から接続する際、それぞれに適した認証方法が
あり、コードを記述する必要があります。

SDK ではこの認証関連のコーディングを容易にするために、以下
の選択肢を提供しています。

ヘルパーコード

多くのサンプルで利用されている方法です。ヘルパーコード内で
認証を処理できるため、開発者が直接コーディングする必要がない
一方で、サーバー情報やユーザー情報を別途渡す必要があります。

実際の用法は Sample : Quick Start を参考にしてください。

Developer Extensions

こちらのブログでも以前紹介した CrmConnection クラスを利用する
方法です。Developer Extensions では接続の簡易化以外にも、開発
で利用できる多くのクラスが提供されています。詳細は以下の記事を
ご覧ください。

Microsoft Dynamics CRM への簡略化された接続

CrmConnection クラスで簡単に組織 Web サービスを生成

Xrm クライアント

より詳細な設定を独自に行いたい場合は、Microsoft.Xrm.Sdk.Client
名前空間のクラス類を利用することができます。たとえば以下のサンプル
ではヘルパーコードを利用せず認証をおこなっています。

Sample: Authenticate Users with Microsoft Dynamics CRM Web Services

また以下の情報では認証に関するベストプラクティスを紹介しています。

Improve Service Channel Allocation Performance

まとめ

各種 Web サービスに対する認証については、おもに上記 3 種類の
方法が提供されています。開発途中にさまざまな手法が混在してしまう
ことはよくありますが、どの手法が一番プロジェクトに適しているか、
今一度ご確認ください。

‐ Dynamics CRM サポート 中村 憲一郎

Comments (8)

  1. Jun より:

    この記事の趣旨とはそれてしまうかもしれませんが、認証に使用する「Username or User ID」「Password」について、ライセンス不要(外部アクセス専用)なアカウントは用意されていたりしないのでしょうか?

  2. kenakamu より:

    コメントありがとうございます。

    ライセンスについては設置型とオンラインで内容が異なります。

    まず以下にライセンスに関する情報をご案内します。

    Microsoft Dynamics CRM Online ライセンスガイド

    http://www.microsoft.com/…/crm-purchase-online.aspx

    上記資料の「内部および外部ユーザー 」をご覧ください。設置型の場合は

    Microsoft Dynamics CRM 社内設置型ライセンスガイド

    http://www.microsoft.com/…/crm-purchase-onpremise.aspx

    上記資料の「外部ユーザーによるアクセス」の項目をご覧ください。

    よろしくお願いいたします。

    – 中村 憲一郎

  3. Jun より:

    早速のご回答ありがとうございます。

    今回の対象はオンラインで、かつ

    GUIを使用しない(DCRMのWebサービスを使用したプログラミング処理)

    為、USL取得の必要はないと認識しました。

    続いて、MSDNライブラリを調べたところ、

    以下の記事を発見しました。

    ▼Microsoft Dynamics CRM Online の同期ユーザーと Office 365

    msdn.microsoft.com/…/hh670617.aspx

    この中の、「非対話型のユーザー」でのアクセスを試したところ、

    まず、使用できるwebサービスが限られているようです。

    また、参照できる情報も、レコードではなく

    メタデータのみでした。

    今回、行いたいのはUSLを使用しない、外部からDCRMのwebサービスを使用しての

    レコードの参照と登録、更新です。

    この場で回答頂ける類の質問でないかもしれませんが、

    それを満たす情報を頂けると助かります。

  4. kenakamu より:

    コメントありがとうございます。

    オンライン環境の場合は追加でのライセンスは不要です。

    今回メタデータのみが参照できたということですが、具体的にはどのような検証を行っていただいていますでしょうか。

    中村 憲一郎

  5. Jun より:

    ご返信ありがとうございます。

    それから、大変申し訳ありません。

    メタデータのみが参照できたのはセキュリティロールが原因でした。

    正しいロール設定を行ったところデータの取得が行えました。

    ただ、無償の「非対話型ユーザー」がライセンス付与の状態でしか作成できず困っております。

    もし、そのあたり情報御座いましたら教えて頂けないでしょうか。

  6. kenakamu より:

    コメントありがとうございます。

    回答が遅くなり申し訳ございませんでした。

    現在の Microsoft Dynamics CRM Online の場合は特定のユーザーを利用して

    偽装する形で接続いただいているはずですが、念のため弊社サポートサービス

    までご連絡いただいてもよろしいでしょうか。

    情報がなく大変申し訳ございません。

    中村 憲一郎

  7. Jun より:

    ご返信ありがとう御座います。

    やはりライセンス付与された1ユーザーを外部ユーザが

    利用する形で接続する方法が正式な手段ということなのでしょうか。

    その場合、セキュリティの設定など行うため

    結局、外部ユーザ用にライセンスが1つ必要になってくると思うのですが。

    はい、御社サービスリクエストにて確認させて頂きます。

    こちらこそいきなりの質問で大変申し訳御座いませんでした。

    また、丁寧にご回答頂きありがとう御座いました。

  8. kenakamu より:

    返信ありがとうございます。

    明確な回答をお渡しできず申し訳ございません。

    私もご指摘の方法だと 1 ライセンス消費することになる点、同じ思いです。

    情報があればこのブログでも公開してまいります。

    今後ともよろしくおねがいいたします。

    中村 憲一郎