当我们不需要使用某个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异常的更多相关文章

  1. 【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 ...

  2. 简化 Web 应用程序与 Windows Azure Active Directory、ASP.NET 和 Visual Studio 的集成

    大家好! 今天的博文深入讨论我们今天推出的开发人员工具和框架中的一些新功能.我们通过与 ASP.NET 和 Visual Studio 团队合作开发了一些重大的增强功能,让开发人员能够轻松使用 Win ...

  3. [Windows Azure] What is Windows Azure Active Directory?

    What is Windows Azure Active Directory? Windows Azure Active Directory is a service that provides id ...

  4. Azure Active Directory Connect是如何协助管理员工作的?

    TechTarget中国原创] 应用基于云的Microsoft Azure Active Directory,管理员们可以将本地Active Directory整合到Windows Server中.通 ...

  5. 使用 Azure Active Directory 管理 Azure 中的 HPC Pack 群集

    Microsoft HPC Pack 2016 支持在 Azure 中部署 HPC Pack 群集的管理员将其与 Azure Active Directory (Azure AD) 集成. 请按照本文 ...

  6. 【Azure Developer】使用 adal4j(Azure Active Directory authentication library for Java)如何来获取Token呢

    问题描述 使用中国区的Azure,在获取Token时候,参考了 adal4j的代码,在官方文档中,发现了如下的片段代码: ExecutorService service = Executors.new ...

  7. Azure Active Directory Connect密码同步问题

    这几天一直在弄O365与本地域账号的密码同步问题.由于微软即将用Azure Active Directory Connect(以下简称AADC)这个同步工具替代之前的DirSync,所以我也研究了下这 ...

  8. Windows Azure Active Directory (3) China Azure AD增加新用户

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的China Azure. 本文是对笔者之前的文档:Windows Azure Active ...

  9. Windows Azure Active Directory (4) China Azure AD Self Password Reset

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China. 在开始本章内容之前,请读者熟悉笔者之前写的文档: Windows ...

随机推荐

  1. Web Share API

    Web Share API https://w3c.github.io/web-share/ Web Share API, W3C Editor's Draft 15 April 2020 https ...

  2. chrome device remote debug

    chrome device remote debug chrome://inspect/#devices chrome inspect devices Android chrome MIDI / MT ...

  3. VSCode & Node.js & debugger & inspector

    VSCode & Node.js & debugger & inspector F5 ws 元信息 (UUID) ws://127.0.0.1:46912/efa91bda-1 ...

  4. AtCoder Regular Contest 113

    比赛地址 A(暴力) 题目链接 题目: 给出\(K\),求出满足\(A\times B\times C\le K\)的\((A,B,C)\)对数 解析: 将C移动到等式右边,得到\(A\times B ...

  5. Spring的BeanFactoryPostProcessor接口

    接口简介 BeanFactoryPostProcessor 接口是 Spring 初始化 BeanFactory 时对外暴露的扩展点,Spring IoC 容器允许 BeanFactoryPostPr ...

  6. JavaScript:什么是回调?

    翻译练习 原博客地址:JavaScript: What the heck is a Callback? 在6分钟内通过简单的例子学习和理解回调的基本原理. 什么是回调? 简单地说:回调就是一个在另一个 ...

  7. 03.从0实现一个JVM语言系列之语法分析器-Parser-03月01日更新

    从0实现JVM语言之语法分析器-Parser 相较于之前有较大更新, 老朋友们可以复盘或者针对bug留言, 我会看到之后答复您! 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个 ...

  8. Mock 框架 Moq 的使用

    Mock 框架 Moq 的使用 Intro Moq 是 .NET 中一个很流行的 Mock 框架,使用 Mock 框架我们可以只针对我们关注的代码进行测试,对于依赖项使用 Mock 对象配置预期的依赖 ...

  9. JAVA -JSON-XML-MAP转换

      //定义一个MAP对象,将对象传给后端接口接收 Map a = ["api": '11', ZGUID: "1231",BESKZ: "1231& ...

  10. WebSocket与即时通讯

    HTTP 协议有一个缺陷:通信只能由客户端发起!HTTP 协议做不到服务器主动向客户端推送信息.这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦.我们只能使用"轮 ...