Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【第5回jduc】【勉強会】dynamics 365 web apiとの接し方

【第5回jduc】【勉強会】dynamics 365 web apiとの接し方

Kazuya Sugimoto

August 27, 2017
Tweet

More Decks by Kazuya Sugimoto

Other Decks in Technology

Transcript

  1. Dynamics 365 Web APIの種類 REST API SOAP API Web API

    Microsoft 呼称 組織データサービス REST エンドポイント 組織サービス SOAP エンドポイント Web API OData v4 REST プロトコル OData v2 SOAP OData v4 状況 既に廃止済み Dynamics CRM 2015まで Ver 9.Xで廃止予定 http://bit.ly/2vR33C1 ★メインストリーム Dynamics CRM 2015から リファレンス https://msdn.microsoft.com /library/gg334279(v=crm.7) .aspx https://msdn.microsoft.com /ja- jp/library/mt608074.aspx https://msdn.microsoft.com /ja- jp/library/mt593051.aspx
  2. Dynamics 365 Web APIの種類 REST API SOAP API Web API

    Microsoft 呼称 組織データサービス REST エンドポイント 組織サービス SOAP エンドポイント Web API OData v4 REST プロトコル OData v2 SOAP OData v4 状況 既に廃止済み Dynamics CRM 2015まで Ver 9.Xで廃止予定 http://bit.ly/2vR33C1 ★メインストリーム Dynamics CRM 2015から リファレンス https://msdn.microsoft.com /library/gg334279(v=crm.7) .aspx https://msdn.microsoft.com /ja- jp/library/mt608074.aspx https://msdn.microsoft.com /ja- jp/library/mt593051.aspx これを使え!
  3. Web APIの認証はどうなってるの? HTTP/S NTLM認証 認証不要 Dynamics 365 Online Dynamics 365

    On-Premiss Dynamics 365 Internal IFD構成 なし IFD構成 あり OAuth 2.0 認証 Implicit Grant Resource Owner Password Credential Grant Client Credential Grant 認証方式 プラット フォーム アプローチ Dynamics 365 OnlineであればOAuth 2.0による認証 Implicit GrantもしくはClient Credential Grantを利用しよう!
  4. Client Credential Grant データ連携におけるバッチ処理やインターフェースプログラム等 アクセスするユーザーのコンテキストに重要性が無い場合オススメ Client IdとClient Secretの発行およびアプリケーション登録で可能になる認証アプローチ (別名Server to

    Server 認証:S2S認証) POST https://login.microsoftonline.com/{tenantId}/oauth2/token Media/type application/x-www-form-urlencoded Grant_type=client_credentials&client_id={clientId}&client_secret={clientSecret}&resour ce={https://***.crm7.dynamics.com/} 参考:【Dynamics 365】【8.2新機能】サーバ間(S2S)認証を試してみた http://bit.ly/2wfyKDf
  5. Dynamics 365 Web APIの 認証を使用するための注意点 ・必ず一意のユーザーを指定 リソースに誰がアクセスしたのか? という情報が必ず必要 (だから最近までClient Credentialが使えなかったと思われる)

    ・連携プログラムの管理情報に注意 Password Credentialの場合はID・PWの管理が必要(Office365のパスワード変更の影響あり) Client Credential GrantはClient Id / Client Secretを管理(Client Secretは期限付き) ・オンプレミスの場合、認証アプローチはケースバイケース イントラネットワークの疎通可能なところにアプリケーションがいる場合は「NTLM認証」 イントラネットワーク外の場合は、ADFS/OAuth認証もしくは、VPN等で繋いでNTLM認証か
  6. Dynamics 365 Web APIでできること ・レコードの作成(Create) ・レコードの更新(Update) ・レコードの取得(Retrieve) ・レコードの削除(Delete) ・レコードの作成 or

    更新(Upsert) Basic Operation ・関数の実行(Function) ・アクションの実行(Action) Business Logic Operation ・バッチ操作(HTTP/Multipart) ・ユーザーの偽装 ・条件付き演算(Optimistic Concurrency) Utility ・メタデータの取得 ・エンティティの作成・更新・削除 ・フィールドの作成・更新・削除 Metadata Operation 1 2 3 4
  7. 参照も編集もREST Fulな形式でサポート レコードの取得 レコードの作成 レコードの更新 削除 GET https://***/api/data/v8.2/ accounts Authorization:

    Bearer *token* Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0) POST https://***/api/data/v8.2/ Accounts Authorization: Bearer *token* OData-Version: 4.0 OData-MaxVersion: 4.0 Content-Type: application/json { name:’Create Account', } PUTCH https://***/api/data/v8.2/ Accounts(guid) Authorization: Bearer *token* Odata-Version: 4.0 Odata-MaxVersion: 4.0 Content-Type: application/json { name:’Update Account', } DELETE https://***/api/data/v8.2/ Accounts(guid) Authorization: Bearer *token* OData-Version: 4.0 OData-MaxVersion: 4.0 REST Fulな形式でデータの操作をサポート わかりやすい
  8. まとめ でも、Web APIの種類はどれを使えばいいの? →最新のWeb API Odata v4を使おう! でも、Web APIの認証ってどうすればいいの? →OnlineでバッチとかならOAuth2.0認証を使おう!

    S2S認証(Client Credential)がオススメ! でも、Web APIでどんなことができるの? →Odataプロトコルに則って、データのCRUD操作が簡単にできるよ! ただし、ビジネスロジック(Action・Function)も抑えよう!