解决删除Azure Active Directory的Enterprise Applications异常
当我们不需要使用某个Azure Active Directory(以下简称AAD)的时候,我们可以删除它,这个时候Azure会对当前的AAD包含的内容进行检查,
在所有的检查项目中有一个名叫“企业应用”,有很多人在删除AAD的时候都被这一项挡住了去路却不知道该怎么解决,下面我们来看一下该如何对症下药。
通常这一项的检查不通过有两种情况:
1.Azure DevOps:在点击解决连接后,你可能会看到一个名叫“Azure DevOps”的企业应用,这是在你注册Azure DevOps的时候自动注册的,而且默认情况下你无法直接通过门户删除。这个时候我们需要使用PowerShell的Azure AD组件来删除:
首先注册一个AAD管理员用户,注意不是当前操作删除的这个微软账户,你需要注册一个AAD用户,然后赋予这个用户管理员权限;
在本地打开PowerShell,注意这里需要Windows的PowerShell,不能是跨平台的PowerShell Core,使用管理员权限执行以下命令:
Install-Module -Name AzureAD
安装完成后,执行以下命令:
Remove-AzureADServicePrincipal -ObjectId [AzureDevOps ObjectId]
ObjectId可以从应用的属性里面获取,执行完毕后你应该能够看到Azure DevOps已经被删除了。
2.Managed Identity:如果在删除Azure DevOps后仍然无法删除AAD,而且你应该会注意到在企业应用这一项的检查是先变成通过后在“Azure AD Domain Service”这一项检查后又变为不通过,这个时候就是因为当前AAD中还有未删除的Managed Identity。
1.点击解决链接,切换过滤选项到“Managed Identity”,你会看到当前AAD下面未删除的系统管理的标识,理论上系统管理标识是会在资源删除的同时被删除,但是有时候系统并不会自动删除它们(多发生于订阅迁移到了另一个AAD内),这个时候你需要手动删除。
2.对于Azure WebApp类的标识,你需要在新的AAD内禁用原有标识后重新启用标识来删除原有的标识,直接删除资源并不会删除标识
3.对于SQL Server,当开启AAD验证后也会自动注册标识,而且在门户内禁用原有AAD管理员重新配置新的管理员并没有用,这个时候需要用到Azure CLI,最方便的当然是打开门户内的Cloud Shell,选择Bash后,执行以下命令:
az sql server update --assign_identity --resource-group [Your-RG-Name] --name [Your-SQLServer-Name]
这个命令会更新原有的系统分配标识,更新后原有的标识被删除。
现在你应该可以顺利通过检查删除当前AAD了,祝大家Azure旅途愉快。
解决删除Azure Active Directory的Enterprise Applications异常的更多相关文章
- 【Azure API 管理】解决API Management添加AAD Group时遇见的 Failed to query Azure Active Directory graph due to error 错误
问题描述 为APIM添加AAD Group时候,等待很长很长的时间,结果添加失败.错误消息为: Write Groups ValidationError :Failed to query Azure ...
- 简化 Web 应用程序与 Windows Azure Active Directory、ASP.NET 和 Visual Studio 的集成
大家好! 今天的博文深入讨论我们今天推出的开发人员工具和框架中的一些新功能.我们通过与 ASP.NET 和 Visual Studio 团队合作开发了一些重大的增强功能,让开发人员能够轻松使用 Win ...
- [Windows Azure] What is Windows Azure Active Directory?
What is Windows Azure Active Directory? Windows Azure Active Directory is a service that provides id ...
- Azure Active Directory Connect是如何协助管理员工作的?
TechTarget中国原创] 应用基于云的Microsoft Azure Active Directory,管理员们可以将本地Active Directory整合到Windows Server中.通 ...
- 使用 Azure Active Directory 管理 Azure 中的 HPC Pack 群集
Microsoft HPC Pack 2016 支持在 Azure 中部署 HPC Pack 群集的管理员将其与 Azure Active Directory (Azure AD) 集成. 请按照本文 ...
- 【Azure Developer】使用 adal4j(Azure Active Directory authentication library for Java)如何来获取Token呢
问题描述 使用中国区的Azure,在获取Token时候,参考了 adal4j的代码,在官方文档中,发现了如下的片段代码: ExecutorService service = Executors.new ...
- Azure Active Directory Connect密码同步问题
这几天一直在弄O365与本地域账号的密码同步问题.由于微软即将用Azure Active Directory Connect(以下简称AADC)这个同步工具替代之前的DirSync,所以我也研究了下这 ...
- Windows Azure Active Directory (3) China Azure AD增加新用户
<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的China Azure. 本文是对笔者之前的文档:Windows Azure Active ...
- Windows Azure Active Directory (4) China Azure AD Self Password Reset
<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China. 在开始本章内容之前,请读者熟悉笔者之前写的文档: Windows ...
随机推荐
- qrcode & console.log
qrcode & console.log image https://fs-api.lightyy.com/service/utils/qrcode?url=http://169.254.13 ...
- 二分图最小点覆盖构造方案+König定理证明
前言 博主很笨 ,如有纰漏,欢迎在评论区指出讨论. 二分图的最大匹配使用 \(Dinic\) 算法进行实现,时间复杂度为 \(O(n\sqrt{e})\),其中, \(n\)为二分图中左部点的数量, ...
- 安装mysql报错
原文链接:https://blog.csdn.net/bao19901210/article/details/51917641 二进制安装 1.添加mysql组和mysql用户,用于设置mysql安装 ...
- vue-axios插件、django-cors插件、及vue如何使用第三方前端样式库:element/jQuery/bootstrap
目录 一.vue的ajax插件:axios 1.安装axios 2.axios参数 二.CORS跨域问题(同源策略) 1.Django解决CORS跨域问题方法 三.前端请求携带参数及Django后台如 ...
- 面试题-python 如何读取一个大于 10G 的txt文件?
前言 用python 读取一个大于10G 的文件,自己电脑只有8G内存,一运行就报内存溢出:MemoryError python 如何用open函数读取大文件呢? 读取大文件 首先可以自己先制作一个大 ...
- PHP中一些常用的安全类函数
(1) htmlspecialchars() 表单验证(验证表单中的数据是否为空以及提交的数据是否合法) htmlspecialchars() //该函数将预定义的字符转化为html实体,预定义的 ...
- xss靶场大通关(持续更新ing)
xss秘籍第一式(常弹) (1)进入自己搭建的靶场,发现有get请求,参数为name,可进行输入,并会将输入的内容显示于网页页面 (2)使用xss的payload进行通关: http://127. ...
- LNMP配置——PHP安装
一.下载 #cd /usr/local/src //软件包都放在这里方便管理 #wget http://cn2.php.net/distributions/php-5.6.30.tar.gz 二.解压 ...
- mysql数据库的数据备份,以及开启日志
导出数据: location代表需要保存的数据文件的位置,默认保存在 C:\ProgramData\MySQL\MySQL Server 5.7\Data(Windows10系统位置,其他系统位置自行 ...
- 顺序表及基本操作(C语言)
#include <stdio.h> #include <stdlib.h> //基本操作函数用到的状态码 #define TRUE 1; #define FALSE 0; # ...