从下面,我推断的是,当应用程序配置了委托权限时,它代表已登录用户发出所有请求。
因此,在Delegated Permissions下,我们再次列出了“以登录用户身份访问目录”选项。这实际上是做什么的?
应用程序权限:您的客户端应用程序需要访问 Web API直接作为自身(没有用户上下文)。这种类型的许可 需要管理员同意,也不适用于Native 客户应用程序。
委托权限:您的客户端应用程序需要访问Web API作为已登录用户,但访问受限于所选 允许。除非用户可以授予此类权限 权限配置为需要管理员同意。
答案 0 :(得分:3)
因此,在Delegated Permissions下,我们有“以...访问目录” 登录用户“选项列出。这实际上做了什么?
简单来说,在委派权限的情况下,应用程序基本上冒充您(或登录用户)。
为了举例说明,假设您在Azure AD中创建了一个Web应用程序,该应用程序具有访问Azure Service Management API的委派权限。现在,当您登录此应用程序并尝试访问Azure资源(存储帐户,VM等)时,应用程序将只能执行您在Azure订阅中被授予的权限。例如,如果您在Azure订阅中担任Reader
角色(即无法创建/更新/删除资源)。如果您尝试通过您的应用程序创建资源,您将收到错误,因为该应用程序冒充您。
答案 1 :(得分:1)
委派权限要求用户登录Azure AD并将生成的身份验证令牌呈现给您的应用程序。您的应用程序可以通过传递您的客户端ID,秘密(如果适用)和用户的身份验证令牌来拨打电话。您的应用程序的有效权限将是用户和应用程序的最低组合。例如,如果您的应用程序已被授予对资源的读/写权限但用户只读过,则会读取您的有效权限。如果用户具有读/写但应用程序仅读取,则情况也是如此。
应用程序权限不需要用户登录。只是你的客户ID和秘密就足够了。如果您没有应用程序权限并尝试访问api而未提供经过身份验证的用户令牌,则会收到401错误。