azure - 应用注册创建的服务主体 - 强制?
问题描述
当我注册应用程序时,会创建一个服务主体。我的理解是,当应用程序在 Azure AD 中注册时,应用程序对象包含有关如何发布令牌、可以访问的资源以及应用程序可以执行的操作的配置。
自动生成的服务主体继承自此应用程序对象。
我注册了一个应用程序,该应用程序有权调用 Azure 存储 API,权限定义为“user_permissisons”,即权限将由相关用户拥有的 AAD 组成员身份确定。
但是,我注意到,当用户使用应用程序并对其进行身份验证/授权应用程序代表他们访问 Azure 存储资源时,它们现在出现在服务主体下(记录在 Azure 门户的企业应用程序部分)“用户和组” ' 部分。他们被详细描述为具有“默认访问权限”的用户。
这是什么机制?服务主体扮演什么角色?用户的授权是否意味着他们被添加到服务主体,从而允许他们通过应用程序访问 Azure 存储?这是用户同意的吗?将自己添加到服务主体?谢谢!
解决方案
我发现为什么我的行为与你的不同。
我提前在应用注册中点击“授予{我的租户}的管理员同意”。因此,不会为我弹出用户同意提示。
如果我撤销管理员同意,当我为用户执行用户同意时,它确实会出现在企业应用程序中。
我认为你不需要注意这种行为。但我可以说它应该对用户是否被授权登录应用程序没有影响。
真正有效的是:
只要用户出现在同意用户列表中,就有权登录应用程序。
您可以从用户和组中删除用户,它不会有任何影响。
请注意,如果您配置用户分配需要?切换到Yes,将用户添加到用户和组是必要的。
更新:
在应用注册的哪个阶段会为您显示“为 {我的租户} 授予管理员许可”?
添加任何权限后,您可以在此处单击“授予{我的租户}的管理员同意”(它要求您至少是应用程序管理员):
推荐阅读
- python - 创建一个什么都不做的类
- python - 为什么标签没有完全显示在滚动视图中?
- amazon-web-services - npm install 在 Elastic Beanstalk 上省略文件夹
- python - 具有大型数据集的 Python Redis hmset 不会插入所有对象
- service-worker - Workbox : 查找请求是 XHR 还是 fetch
- sql - 当数据为数字时如何转换为十进制但当数据为文本时如何转换?
- laravel - 带有 gte:1 的 Laravel 验证数字引发异常
- opengl - OpenGL Vulkan 互操作性
- angular - 无法读取未定义的属性“0”-Angular 6
- reactjs - 与语义-ui-react、JEST 和酶反应