我正在为我拥有的简单的 Azure API 管理 GET API 实现 Oauth2。我在这里关注了这个视频。我的设置有效,但我不了解应用程序角色和 API 权限。
因此老师创建了 2 个应用程序注册:
User.Read.All
和 User.ReadWrite.all
(4:09)现在一切正常,但我不理解这些权限,因此我删除了角色和所有权限(甚至是默认值:
User.Read
)。我仍然可以获得有效的不记名令牌,并且仍然可以将其用于我的 GET 调用,因此一切仍然正常。
我需要应用程序角色和这些权限吗?如果是,是哪一个,它们的含义是什么?我怎样才能尽可能地限制它?
也许需要注意的是,我的客户端是另一个应用程序,而不是真正的登录用户。
应用程序角色是自定义元数据,将包含在令牌中,应用程序可以将其用于自定义授权策略。例如,应用程序中某些功能的应用程序角色,例如
Admin
。
其他权限用于 Microsoft Graph 访问(
User.Read
等)。如果您的应用程序想要调用 Microsoft Graph API(例如,获取有关登录用户或目录中其他用户的信息),则需要这些。
要登录,您只需要默认存在的
openid
范围即可。