鉴于下面的场景,我不明白为什么需要在 Microsoft Entra ID 中的应用程序注册的“公开 API”部分下添加范围。
在这种情况下,我的后端不需要直接访问MS Graph。我只是希望通过验证不记名令牌来保护 API。
但是,我找到的所有说明都包括创建 API 范围并向特定角色授予应用程序权限。这不是只有当你的后端API需要直接请求MS Graph资源时才需要吗?
答案很简单,如果不需要,您不一定需要通过 Azure 应用程序注册公开 API。如果您的应用程序只需要用户登录并且没有需要定义的特殊/特定 API 范围(权限),则无需添加自定义 API 范围。只需验证登录后提供的访问令牌并执行必要的 API 操作即可。
但是,如果您想要/需要为 API 定义各种权限级别,例如“读取数据库”、“写入数据库”等,那么您可以通过 Azure Expose API 来添加您自己的自定义范围(权限)。然后,前端应用程序可以请求这些范围,以便将它们包含在访问令牌中,然后将其传递到您的 API,用于定义用户或应用程序拥有哪些权限。
很多很多文章对此都没有很好的解释,因为它似乎被假定为知识。如果您正在学习身份验证,应该更好地拼写出来。