Azure Active Directory Application Permission VS Delegate Permission

本文解析了Azure Active Directory (AAD) 中的两种权限模型:ApplicationPermission 和 DelegatePermission。前者为应用程序赋予统一权限,后者则针对每个用户分配个性化权限。文章举例说明这两种权限在实际应用中的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Use Reference:

https://msdn.microsoft.com/en-us/library/azure/ad/graph/howto/azure-ad-graph-api-permission-scopes



个人理解:

Application Permission是使用了应用程序的权限,所有的用户都使用应用程序的权限

Delegate Permission是使用了代理的权限,每个用户都有每个用户的权限


例如:

当一个用户是以User身份通过了身份验证,普通用户默认的权限只有更新个人信息的权限,代理权限被设置成对所有域中对象可写,但这个应用程序对于该用户也只能更新自己的个人信息


但如果在Application Permission中使用了该权限,则不会考虑当前角色,完全使用应用程序的权限,以上面为例,如果应用程序权限被设置成了对所有域中对象可写,此时这个应用程序对于该用户而言对所有域中对象可写


From Reference:https://msdn.microsoft.com/en-us/library/azure/ad/graph/howto/azure-ad-graph-api-permission-scopes

For example, if the permission scope grants delegated privileges to write all directory objects, but the signed-in user has privileges only to update their own user profile, the app will only be able to write the signed-in user's profile but no other objects.



PS:

暂时还未验证,这个Application到底是指的在AAD建立应用程序的时候所选择的本机应用程序,还是说在AAD里建完一个Web Application之后所选择的Application Permission

不过可以肯定的是,我使用本机应用程序,可以对AAD中所有的对象进行操作

<think>好的,我现在需要帮助用户理解如何开发一个AI软件安卓手机版。用户自称编程新手,所以我要尽量简化概念,分步骤解释,确保他能够跟上思路。 首先,用户提到了“根据上面的结论”,可能是指之前的系统级指令中的内容。但当前问题主要围绕开发安卓AI应用,我需要专注于这一点。用户的需求是开发一个AI软件,运行在安卓手机上,可能需要具备某些智能功能,比如图像识别、语音处理或者自然语言处理等。 接下来,我需要考虑用户的技术背景。用户对编程一窍不通,所以必须从最基础的开始,选择适合新手的工具和框架。可能需要推荐使用图形化编程工具,或者简化开发流程的平台,比如MIT App Inventor,或者使用Kotlin/Java配合现成的AI库。 然后,分解开发步骤。开发安卓应用通常涉及几个阶段:需求分析、选择开发工具、学习基础知识、集成AI功能、测试和发布。对于AI部分,可能需要使用预训练的模型,或者调用云端的API,如Google的ML Kit、TensorFlow Lite,或者第三方API如IBM Watson、Microsoft Azure Cognitive Services等。这样用户不需要从头训练模型,降低难度。 另外,需要考虑用户是否需要本地处理数据,还是可以依赖网络服务。如果使用云端API,需要处理网络请求和权限,但可能更简单。本地模型可能需要处理模型压缩和优化,适合离线场景。 然后,我应该逐步引导用户,从安装开发环境开始,比如Android Studio,创建新项目,设计UI界面,然后集成AI功能。例如,使用ML Kit的文本识别,演示如何添加依赖,调用API,处理结果。 同时,提醒用户可能遇到的挑战,比如API密钥的管理、网络权限、处理异步任务等。对于完全的新手,可能需要更详细的代码示例和步骤说明,甚至推荐一些教程或资源。 最后,测试和调试部分也很重要,建议用户在模拟器或真实设备上运行,检查功能是否正常,处理可能的错误。 总结下来,回答的结构应该是:概述开发流程,推荐工具和框架,分步实现一个简单示例(如图像识别),并提示后续步骤和学习资源。确保语言通俗易懂,避免技术 jargon,必要时解释基本概念。</think>我将以“开发一个具备图像识别功能的安卓版AI软件”为例,分步骤为您说明实现过程。即使没有编程基础,也可以按照这个路线逐步学习: 一、准备阶段 1. 安装开发工具:Android Studio(官方IDE) - 下载地址:developer.android.com - 安装时勾选Android SDK和虚拟设备 2. 选择AI框架:Google ML Kit(适合新手) $$ \text{优势} = \frac{\text{预训练模型} + \text{离线运行} + \text{免费使用}}{\text{开发复杂度}} $$ 二、基础开发步骤 1. 新建项目: - 选择"Empty Activity"模板 - 命名示例:AIImageRecognizer 2. 界面设计(XML代码): ```xml <ImageView android:id="@+id/imageView" android:layout_width="300dp" android:layout_height="300dp"/> <Button android:id="@+id/btn_recognize" android:text="识别图片" android:layout_width="wrap_content" android:layout_height="wrap_content"/> ``` 三、集成AI功能(以图像标注为例) 1. 添加依赖: ```gradle dependencies { implementation 'com.google.mlkit:image-labeling:17.0.7' } ``` 2. 核心识别代码: ```java // 初始化图像分析器 ImageLabeler labeler = ImageLabeling.getClient(ImageLabelerOptions.DEFAULT_OPTIONS); // 处理按钮点击事件 btnRecognize.setOnClickListener(v -> { // 获取图片(示例使用内置资源) InputImage image = InputImage.fromBitmap(bitmap, 0); // 执行AI识别 labeler.process(image) .addOnSuccessListener(labels -> { for (ImageLabel label : labels) { String text = label.getText(); // 识别结果 float confidence = label.getConfidence(); // 置信度 } }); }); ``` 四、进阶功能扩展 1. 增加摄像头支持: - 使用CameraX库实现实时取景 - 添加权限:<uses-permission android:name="android.permission.CAMERA"/> 2. 性能优化技巧: $$ \text{处理速度} \propto \frac{1}{\text{图像分辨率}} \times \text{模型复杂度} $$ - 将图片缩放至640x480分辨率 - 使用量化模型(.tflite格式) 五、发布准备 1. 生成签名APK: - Build > Generate Signed Bundle/APK - 选择V2签名方案 2. 上架应用市场: - 注册Google Play开发者账号($25费用) - 准备应用截图和描述文案 学习路线建议(按难度排序): 1. 先掌握Android基础(3-4周): - 《第一行代码》第3版 - Android Developers官方文档 2. 再学习ML Kit集成(1-2周): - 官方Codelab教程 - 从图像分类过渡到对象检测 3. 最后学习模型定制(可选): - 使用TensorFlow训练自定义模型 - 使用TFLite Converter转换模型格式 常见问题解决方案: 1. 内存溢出:在AndroidManifest.xml添加 ```xml <application android:largeHeap="true"> ``` 2. 识别速度慢:改用委托模式 ```java ImageLabelerOptions options = new ImageLabelerOptions.Builder() .setDelegate(DELEGATE_GPU) // 使用GPU加速 .build(); ``` 开发成本估算: - 时间成本:全职开发约2-3个月(从零开始) - 硬件成本:中端安卓测试机(约¥2000) - 云服务:基础版约¥300/月(含存储和计算资源) 这个方案平衡了技术难度和功能实现,建议先从图像识别入手,后续可逐步增加语音交互、自然语言处理等模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值