日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用Fiddler模拟通过Dynamics 365的OAuth 2 Client Credentials认证后调用Web API

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用Fiddler模拟通过Dynamics 365的OAuth 2 Client Credentials认证后调用Web API 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

微軟動態CRM專家羅勇 ,回復337或者20190521可方便獲取本文,同時可以在第一間得到我發布的最新博文信息,follow me.

配置Dynamics 365 & PowerApps 支持OAuth 2 Client Credentials認證參考我前面的博文:Dynamics 365 Online通過OAuth 2 Client Credential授權(Server-to-Server Authentication)后調用Web API?。編程方法可以參考這篇博文,為了方便不同的編程語言明白如何通過這個認證后調用調用Dynamics 365 & PowerApps的Web API,我這里用Fiddler來模擬。

首先是認證,請參考?Client Credentials ,值得注意的是,請求body中需要增加傳遞參數resource,否則后續調用Web API會返回401(未認證) .我這里直接上Fiddler請求截圖如下:

?

?

簡單解釋下上面請求。是發起POST請求,請求的URL是:?https://login.windows.net/{{tenantid}}/oauth2/token ,請求URL中的 {{tenantid}} 請替換為Azure Tenant的Id。

請求的Body是?grant_type=client_credentials&client_id={{clientid}}&client_secret={{clientsecret}}&resource={{resourceurl}} ,請將 {{clientid}} 替換為注冊App時候生成的Application (client) ID,{{clientsecret}}替換為注冊App時候生成的Client Secret,{{resourceurl}}請換成你要訪問的Dynamics 365 或者PowerApps的URL,比如?https://CRM244271.crm.dynamics.com/ ,注意用要urlencode一下,若用javascript的話,就用?encodeURIComponent 函數對這個URL進行處理,如下圖所示。

?

可以看到截圖,請求成功,請求返回內容如下:

?

我格式化一下返回內容如下:

{
????"token_type":"Bearer",
????"expires_in":"3600",
????"ext_expires_in":"3600",
????"expires_on":"1558408667",
????"not_before":"1558404767",
????"resource":"https://CRM244271.crm.dynamics.com/",
????"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL0NSTTI0NDI3MS5jcm0uZHluYW1pY3MuY29tLyIsImlzcyI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0L2IxOGQzYzZmLTM4YzYtNDkyZC1hMDcwLThiNzUyZjA5ZjBkZS8iLCJpYXQiOjE1NTg0MDQ3NjcsIm5iZiI6MTU1ODQwNDc2NywiZXhwIjoxNTU4NDA4NjY3LCJhaW8iOiI0MlpnWURDVHVDLzRKK1RvamJoOW04NVZILzd3R0FBPSIsImFwcGlkIjoiZjUwMTM0NmMtNGQzMi00MWI5LWIyOTAtMzNmN2JlYTRlYzZhIiwiYXBwaWRhY3IiOiIxIiwiaWRwIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvYjE4ZDNjNmYtMzhjNi00OTJkLWEwNzAtOGI3NTJmMDlmMGRlLyIsIm9pZCI6IjU0YWNmNzczLWNhNDAtNGY0Zi04ZTBlLTc1ZjM3M2M5OTU3NiIsInN1YiI6IjU0YWNmNzczLWNhNDAtNGY0Zi04ZTBlLTc1ZjM3M2M5OTU3NiIsInRpZCI6ImIxOGQzYzZmLTM4YzYtNDkyZC1hMDcwLThiNzUyZjA5ZjBkZSIsInV0aSI6ImNaY25nRUJKbEUyYWV2X1pUUTBJQUEiLCJ2ZXIiOiIxLjAifQ.EGK7DMpm_L9TnTREdw5EVhB6WAPNxGmhhodHm7mJsVtmabrL4UXrupQV8Dy6bq6reCGU3v2uA3mtbJ6HXkSbdL7hbEXnDQ_Iw0TD5a-pnmqz7I27_5D40Ia0ctQJPioo7o5bDhtkn3ppC6a6fXssWglUOwtiu-rZH9Ui_CMkz5azq_SIb4o5rbMrApAbxSsv0F60MIKO3s5zUJS7HSYAk4p6LYtrVLDcAQXEHHGHr-7FjvOn-H42Olg1Ro_EudWgo1zLBLrBJ7lMxK2D48SYvQmPYeueJDmVOCpUWdBubF52oSL6y6rVaFzkegNOJSXPE6m2VGDCe3_gNrMke8_jSg"
}

重要的內容是access_token的值,還有就是expires_in,可以知道這個access token獲取后3600秒也就是一個小時后過期。

拿到access token后就可以請求了,我發起一個GET請求如下:

請求的URL根據你的操作而定,一般是類似 https://CRM244271.crm.dynamics.com/api/data/v9.1/ 開頭

值得注意的是要在請求頭中添加認證信息,這里是類似:Authorization: Bearer {{access token}} 。

?

?可以看到調用成功,返回了數據:

?

轉載于:https://www.cnblogs.com/luoyong0201/p/Dynamics_365_OAuth2_Client_Credentials_Fiddler_Simulate.html

總結

以上是生活随笔為你收集整理的利用Fiddler模拟通过Dynamics 365的OAuth 2 Client Credentials认证后调用Web API的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。