Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,275 views

Published on

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

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

  1. 1. 第5回 JDUC勉強会 Dynamics 365 Web APIとの接し方 @sugimomoto
  2. 2. 最近あったWeb APIに関する質問 認証ってOAuthでいいの? オンプレなんだけど? なんかRESTとSOAPとWeb API ってあるんだけど? Web APIって、なんでもデータが取 得できるんだよね?
  3. 3. しかも、最近のDynamics 365 は Web APIの変革期
  4. 4. 今日のゴール Dynamics 365 とデータ連携したいよー それならWeb APIあるじゃん!? でも、Web APIの種類はどれを使えばいいの? でも、Web APIの認証ってどうすればいいの? でも、Web APIでどんなことができるの?
  5. 5. Q1. Web APIの種類はどれを使えばいいの?
  6. 6. 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
  7. 7. 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 これを使え!
  8. 8. Q2. Web APIの認証ってどうすればいいの?
  9. 9. 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を利用しよう!
  10. 10. 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
  11. 11. 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認証か
  12. 12. Q3. Web APIでどんなことができるの?
  13. 13. 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
  14. 14. ちなみに Dynamics 365 のWeb APIは ポイントさえ抑えれば怖くない!
  15. 15. 参照も編集も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な形式でデータの操作をサポート わかりやすい
  16. 16. HTTP Request/Response デモ
  17. 17. まとめ でも、Web APIの種類はどれを使えばいいの? →最新のWeb API Odata v4を使おう! でも、Web APIの認証ってどうすればいいの? →OnlineでバッチとかならOAuth2.0認証を使おう! S2S認証(Client Credential)がオススメ! でも、Web APIでどんなことができるの? →Odataプロトコルに則って、データのCRUD操作が簡単にできるよ! ただし、ビジネスロジック(Action・Function)も抑えよう!

×