我正在尝试为 ASP.NET Core 6 Web API 进行应用程序注册授权。我使用应用程序注册凭据获取令牌并通过 API 进行身份验证。令牌验证似乎有效,但我收到 401-未经授权的错误,没有任何信息。在 Postman 中显示为无效令牌。
这是我获取令牌的客户端设置
var keyValues = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("tenant_id", tenant_id),
new KeyValuePair<string, string>("client_id", client_id),
new KeyValuePair<string, string>("client_secret", client_secret),
new KeyValuePair<string, string>("scope", scope),
new KeyValuePair<string, string>("grant_type", "client_credentials")
};
var c = new FormUrlEncodedContent(keyValues);
tokenUrl = "https://login.microsoftonline.com/"+tenant_id+"/oauth2/v2.0";
var call = await client.PostAsync(tokenUrl + "/token", c);}
Run Code Online (Sandbox Code Playgroud)
Web APIappsettings.json设置与令牌参数匹配
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com",
"Domain": "<domain>",
"TenantId": "<tenant>",
"ClientId": "<clientId>",
"ClientSecret": "<clientSecret>",
"Roles": "api://<role>"
},
}
Run Code Online (Sandbox Code Playgroud)
API 正在使用新的调用从 …