你正在构建一个由 Azure AD 保护的多租户 Web API。该 API 必须根据角色授权用户(用于用户委托访问),并且还允许后台服务使用仅限应用的权限调用它。令牌应携带你的 API 可以评估的角色声明。你应该实现什么?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 在 API 应用注册中定义应用角色,并将 allowedMemberTypes 设置为“User”以用于用户角色。将用户或组分配给这些角色,并验证用户令牌中的 roles 声明。, 在 API 应用注册中定义应用角色,并将 allowedMemberTypes 设置为“Application”以用于守护程序应用。将调用服务主体分配给这些角色,并验证仅限应用令牌中的 roles 声明。.
为什么这是答案
这两个选项都是正确的,因为它们分别解决了用户委托访问和后台服务访问的授权需求。在 Azure AD 中,应用角色是实现基于角色的访问控制 (RBAC) 的推荐方式。 第一个正确选项:通过在 API 应用注册中定义 allowedMemberTypes 为 "User" 的应用角色,您可以将这些角色分配给用户或组。当用户获取令牌时,令牌中会包含 roles 声明,API 可以据此进行授权。 第二个正确选项:对于后台服务(守护程序应用),您可以定义 allowedMemberTypes 为 "Application" 的应用角色。这些角色可以直接分配给调用服务的服务主体。当后台服务获取仅限应用的令牌时,令牌中也会包含 roles 声明,API 可以据此授权。 将角色表示为委托权限 (scopes) 主要用于控制客户端可以代表用户访问哪些资源,而不是用于 API 内部的授权逻辑。仅使用 Azure AD 组并不能直接满足“角色声明”的要求,尽管组可以映射到角色,但直接使用应用角色是更标准和灵活的解决方案。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡