Microsoft 身份平台 4-WebApp-your-API/4-1-MyOrg/

Posted

技术标签:

【中文标题】Microsoft 身份平台 4-WebApp-your-API/4-1-MyOrg/【英文标题】:Microsoft Identity Platform 4-WebApp-your-API/4-1-MyOrg/ 【发布时间】:2020-08-19 09:51:45 【问题描述】:

当使用Microsoft Sample Code “如何使用 Microsoft 身份平台(以前为开发人员的 Azure Active Directory)保护使用 ASP.NET Core 构建的 Web API”

按照 TodoList 服务的注册步骤(他们建议 1 个范围,但我添加了 1 个附加范围)时,我添加了 2 个范围。 在 TodoListService 中有一个任务 PrepareAuthenticatedClient() Link to code

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 配置中@

我似乎有“scp”:“access_as_editor access_as_user”,

我原以为我只会看到 access_as_user",因为那是在 _TodoListScope 中传递的范围。我应该只看到 1 还是两者都看到?

【问题讨论】:

【参考方案1】:

如果您在应用程序注册期间或通过其他方式同意这两个范围,那么您所看到的就是预期的,即您应该同时看到这两个范围。这是因为 permissions and consent 在 Azure AD 中的工作方式。当您为某个资源(例如您的 Web API)请求 Access Token 时,无论您是否是否当时实际请求了该范围。

【讨论】:

我认为可能是这种情况,但确认后让我感觉好多了。我认为您可能已经能够将范围用作谁可以做什么的级别(类似于 MS Graph 范围)感谢您的回答 @GreyMatter 哦,这仍然是正确的,我并不是说用户 B 将获得用户 A 之前同意的所有范围。只是用户 A 将始终获得她之前同意的所有范围。

以上是关于Microsoft 身份平台 4-WebApp-your-API/4-1-MyOrg/的主要内容,如果未能解决你的问题,请参考以下文章

Mac 使用Microsoft Remote Desktop无法连接至远程服务器,显示无法验证身份

Microsoft Graph PowerShell v2 发布公开预览版 - 新的身份验证方法,支持解除阻塞场景,脚本迁移工具

Microsoft Graph PowerShell v2 发布公开预览版 - 新的身份验证方法,支持解除阻塞场景,脚本迁移工具

Microsoft Graph PowerShell v2 发布公开预览版 - 新的身份验证方法,支持解除阻塞场景,脚本迁移工具

微软推出 Microsoft Q&A 替代 MSDN/TechNet 论坛

windows 10中Microsoft Edge Beta登录账户提示:以管理员身份运行 Microsoft Edge 时不支持登录。请以非管理员身份重新启动 Microsoft Edge,然后重新