在使用Microsoft示例代码时“如何使用Microsoft平台(以前的ASP.NET Active Directory,用于开发人员)来保护使用ASP.NET核心构建的Web”
在遵循注册步骤时,我为TodoList服务添加了2个scope (它们建议了1个范围,但我添加了1个额外的)。在TodoListService中有一个任务PrepareAuthenticatedClient() 链接到代码
private async Task PrepareAuthenticatedClient()
{
var accessToken = await _tokenAcquisition.GetAccessTokenForUserAsync(new[] { _TodoListScope });
Debug.WriteLine($"access token-{accessToken}");
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
_httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}我只将默认范围添加到appsettings.json配置中,当您遵循MS指令时,当代码运行时,您将被要求在应用程序的配置部分注册,并且我获得访问代码并使用jwt.ms对其进行解码。
我似乎有"scp":"access_as_editor access_as_user",
我想我只会看到access_as_user“,因为这是在_TodoListScope中传递的范围,我应该只看到1还是两者都看到呢?
发布于 2020-08-19 18:35:44
如果你在申请登记期间或以其他方式同意了这两个范围,那么你所看到的是预期的,即你应该同时看到这两种情况。造成这种情况的原因在于许可和同意在Azure AD中的工作方式。当为资源(如web )请求访问令牌时,将返回以前为该资源所同意的所有作用域,无论当时是否实际请求该范围。
https://stackoverflow.com/questions/63484370
复制相似问题