我正在创建一个Azure AD应用程序,并注意到有两种权限类型,即应用程序权限和委派权限。两者之间有什么区别,在什么情况下我应该使用它们?
答案 0 :(得分:44)
如果要以登录用户身份调用Web API,通常会使用委派权限。例如,Web API需要根据用户的身份过滤它返回的数据,或者以登录用户身份执行某些操作。甚至只是记录哪个用户正在发起呼叫。
当应用程序将API调用为自身时,将使用应用程序权限。例如,获取某个邮政编码的天气预报(登录哪个用户无关紧要)。当没有用户在场时,客户端甚至可以调用API(某些后台服务调用API来更新某些状态)。
答案 1 :(得分:22)
从此处的文档: https://msdn.microsoft.com/en-us/library/azure/dn132599.aspx https://azure.microsoft.com/en-us/documentation/articles/active-directory-integrating-applications/#updating-an-application(请参阅 Configure a client application to access web APIs:Accessing Web API in Other Application
部分)
- 应用程序权限:您的应用程序需要直接访问Web API(无用户上下文)。这种类型的许可 需要管理员同意,也不适用于本机 客户申请。
- 委派权限:您的应用程序需要以登录用户身份访问Web API,但访问权限受所选 允许。除非用户可以授予此类权限 权限配置为需要管理员同意。
如果您的应用程序需要用户模拟,则基于此,您需要使用委派权限。