参考文章:微软身份平台和 OAuth 2.0 授权代码流 – Microsoft identity platform | Microsoft Learn
简单来说就是创建应用通过类似于如下的链接:
https://login.microsoftonline.com/租户ID/oauth2/v2.0/authorize?client_id=应用ID&state=&redirect_uri=http://localhost/myapp/permissions&scope=https://analysis.windows.net/powerbi/api/.default&response_type=code
的方式来获取code,然后再通过如下的方式来获取token:
var options = new RestClientOptions("https://login.microsoftonline.com")
{
MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("/租户ID/oauth2/v2.0/token", Method.Post);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("client_id", "005ad203-e26e-4c99………………");
request.AddParameter("code", "1.AUoAkBr_xb_6bU-LQBu5zhvcagPSWgBu4plMtx-e8Sa7z-QuAZlKAA.AgABBAIAAABVrSpeuWamRam2jAF1XRQEAwDs_wUA9P-DIS9W_Li3OjLR4ZwAvRchq0CHA8To2E4Ejb8a_0lr7x9OQghtOMiBoraIFAUuDtR540mMuK69o7nZwMAOLhrzSEeiG0Yno3pUgUQ3BA6CP_J62DOimmGP95wjLwfFzlSS0cUoIKx4Kx2tQsXB0--FKJioDWjQxhAkvaYyc0Sx1oiI29sAF_FzXO9K2W8FTe21W0WHjf53yx5UtpDklr5XQphv1tM8UfUSQ8pFszkYnXfkIsLiEGAQ2xQskBPD9tzMTxCcvQJVmYHO1WMTYlr2E-4w86P8HuxhbYqcjsEVU-W64dg7RiWs6rfhFQmfLa7ePSrCD9A5VpPVOLi5U_RecIZcgBpCRRFJv1mCoUpFiVlokRMIRuTdZeQGeLZjWbyogzKAyb3tFPardCzeShvMjvPIw6gQ421XOmdf5K-pt-PwaYNRI9dT8N70yeQ68r5-EJDx3R4ZebjyBoK2ZcjUW2bJIsQ2GrCUuG20wVoSknrRLgOFl235FcFXOxN3Tsh4So8zL7M4-dGGVq07WoULBzQnxzPZvi9eTeeiskyriXspU3hY1aKjDkdJns7_eKAAaK4RbxhaysaIiXgpKOZVeHDdvz3NnCsPwhUj6PhH_jnlIk0saHiy346i5WGUR-bNY5F-JAIGA74FuxnhaERo0hB4SCYk5sCKL8VKK-9exYNuGZ80KeM7KpewUCidTTveYUkOhD_Q");
request.AddParameter("redirect_uri", "http://localhost/myapp/permissions");
request.AddParameter("grant_type", "authorization_code");
request.AddParameter("client_secret", "EMR8Q~RKLF3sSNFSRw6X……………………");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
最后就拿到了。其他的方式参考文档来研究就行。