Azure AD应用注册权限归属及WebAPI权限用途技术咨询
关于Azure AD权限归属与作用的清晰解释
嘿,我来帮你把这个权限问题掰明白~
首先得先理清Azure AD里两种核心权限类型,再对应你的场景拆解:
核心概念先搞懂
- 委托权限(Delegated Permissions):这类权限允许应用代表已登录的用户去访问其他服务的资源,你添加的
user_impersonation就属于这类。 - 应用权限(Application Permissions):允许应用以自身身份(不需要用户登录)访问其他服务的资源,一般用于后台任务类场景。
你的场景具体分析
你在WebAPI的Azure AD应用注册里添加了Azure AD Graph的user_impersonation权限,这个权限的归属和作用是这样的:
- 归属:完全属于你创建的WebAPI应用注册,是Azure AD授予你的WebAPI的访问权限,和外部客户端无关。
- 作用:
- 不是给未注册的ASP.NET MVC应用访问你的WebAPI用的——任何要调用你WebAPI的客户端(包括MVC),都必须先在Azure AD完成注册,然后在自己的应用配置里添加你的WebAPI的权限(比如你给WebAPI定义的自定义scope或者默认的
user_impersonation),才能合法访问你的API。 - 而是你的WebAPI获得了代表登录用户访问Azure AD Graph的权限:当用户通过客户端登录并调用你的WebAPI时,你的WebAPI可以拿着用户的身份凭证,去调用Azure AD Graph的接口(比如查询用户的详细信息、读取目录数据等),相当于“借用”用户的身份去操作Azure AD Graph资源。
- 不是给未注册的ASP.NET MVC应用访问你的WebAPI用的——任何要调用你WebAPI的客户端(包括MVC),都必须先在Azure AD完成注册,然后在自己的应用配置里添加你的WebAPI的权限(比如你给WebAPI定义的自定义scope或者默认的
如果还有混淆的地方,记住一个简单的逻辑:给A应用添加B服务的权限,就是允许A去访问B的资源;客户端要访问你的API,是客户端要添加你的API的权限,反过来不成立。
内容的提问来源于stack exchange,提问作者wonderful world
相关产品推荐
相关产品推荐

