我已成功使用ADAL,并想升级到MSAL。 我在ADAL中使用了以下代码
var tenantId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
var clientId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
var clientSecret = @"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
var applicationId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
var authority = $"https://login.microsoftonline.com/{tenantId}";
var ac = new AuthenticationContext(authority);
var clientCred = new ClientCredential(clientId, clientSecret);
var authenticationResult = ac.AcquireTokenAsync(applicationId, clientCred).Result;
string authToken = authenticationResult.AccessToken;
通过此代码,我将获得有效的访问令牌来访问Web应用
使用MSAL,我不知道该怎么用。默认的图形作用域为我提供了有效的令牌,但无法访问我的应用程序。
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
.WithClientSecret(clientSecret)
.WithAuthority(new Uri(authority))
.Build();
var authenticationResult2 = await app.AcquireTokenForClient(new []{ "https://graph.microsoft.com/.default" }).ExecuteAsync();
string authToken2 = authenticationResult2.AccessToken;
答案 0 :(得分:0)
范围的格式为resource / .default。在这种情况下
var authenticationResult2 = await app.AcquireTokenForClient(new []{ applicationId + "/.default" }).ExecuteAsync();