Azure 应用服务 Active Directory 身份验证访问被拒绝

2024-04-25

我们有一个 Web 应用程序,正在从 Azure 经典云服务过渡到应用服务 Web 应用程序。经典云服务位于包含我们的域控制器(常规 AD,而不是 Azure AD)的 vnet 上。应用程序服务使用 VNET 集成,因此它连接到我们的 vnet,从而连接到 DC(本质上通过客户端 VPN)。

当我们运行在网络应用程序中创建新 AD 的代码时,用户已成功创建,但是一旦我们尝试更改任何内容 - 设置密码、添加到组等,我们就会得到

“访问被拒绝。(HRESULT 异常:0x80070005 (E_ACCESSDENIED))”

我们用来创建和编辑帐户的用户可以在云服务中正常工作,因此这不是 AD 权限问题。

为了尝试简化调试,我编写了一些 Powershell,可以在 Kudu 控制台中运行它,看看是否可以捕获错误:

$DomainControllerIpAddress = "< domain controller IP>"
$domain   = "<domain name>"


$BaseDN=  "LDAP://$($DomainControllerIpAddress)"
$domAdmin = "domain\adminaccount"
$domPass  = "<password>"

$userdn = "CN=TestUser,OU=TestOU,OU=ParentOU,DC=domain,DC=local"

$pass = "<newuserpassword>"

$userobj = New-Object System.DirectoryServices.DirectoryEntry($basedn + "/" + $userdn), $domAdmin, $domPass

$userobj.AuthenticationType = @("Secure","Sealing") # adding this to try to force kerberos makes no difference

$userobj.Invoke("SetPassword",$pass) # this fails in the App service but works fine everywhere else

此代码从连接到与应用服务相同的 DC 的本地计算机运行良好,并且从云服务角色实例之一上的 powershell 控制台运行良好,但从应用服务出现错误。

我们可以成功创建用户这一事实证明 ldap 连接有效,但我无法理解为什么设置密码会出现访问被拒绝错误。


我就这个主题与 Microsoft 进行了一次工程级别的通话。简而言之,“出于安全原因”,某些类型的调用在应用服务中受到限制。对 SetPassword 的调用就是其中之一。 这不是错误,而是应用服务产品经理故意设计的决定。

如果从虚拟机执行这些命令,则可以运行它们。这就是我们最终所做的。我们使用内部负载均衡器在可用性集中启动虚拟机。我们部署了一个非常小的.Net Core API,其安全性除了为我们进行LDAP 调用之外什么也不做。 这不是一个非常优雅的解决方案,但它确实有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure 应用服务 Active Directory 身份验证访问被拒绝 的相关文章

  • 禁用触发的 Azure WebJob

    我有一个 webhook 触发的 Azure WebJob 由于 原因 我无法控制发送网络钩子的系统 每天发送一个 Webhook 它是唯一由 WebApp 托管的 WebJob 在测试过程中 我想禁用此 WebJob 因此我停止了 Web
  • ADFS/SAML2.0 - 如何通过联合元数据设置声明规则?

    我正在尝试针对 Web 应用程序的 Windows ADFS 实施 SAML 2 0 身份验证 到目前为止 我通过手动配置依赖方信任和分配的声明规则 成功地从 ADFS 进行了身份验证并获取了我需要的内容 现在 我想为我的应用程序提供联合元
  • WhenCreated 上的 Get-ADUser 筛选器适用于 -lt 但不适用于 -gt

    我试图搜索在指定日期之后创建的用户 但它总是不返回任何结果 如果我改变 gt ge 到 lt le它正确地提取结果 所以这应该是可行的 我知道我可以过滤所有内容 然后执行Where Object 来过滤gt ge 但我确实需要过滤器发生在服
  • 是否可以通过在 ASP.NET 中模拟 Windows 身份验证用户来从 Active Directory 检索数据?

    我一整天都在试图解决这个问题 并且我在标准谷歌留言板答案中读到了一些相互矛盾的信息 我想做的是从活动目录中检索域用户 即当前登录用户 的电子邮件地址 我的 ASP NET 4 网站设置为 Windows 身份验证 在 Active Dire
  • 如何从用户列表中查找PC

    我需要一些帮助 我不太确定这是否可能 我有清单samAccountName in csv文件 我需要从中获取他们的 PC 名称和 IP 我不太确定如何构建这样的脚本 一种方法是循环访问环境中的所有计算机并测试每台计算机 这当然会是SLOW
  • 0x80005000 UserPrincipal.GetGroups 上的未知错误,OU 中包含特殊字符

    我正在尝试使用 UserPrincipal 的 GetGroups 方法 如果用户帐户位于包含正斜杠的 OU 中 则对 GetGroups 的调用将失败并出现 COM 未知错误 0x80005000 刚刚找到用户帐户 我可以访问其他属性 如
  • 将 Azure Blob 与 Azure 网站连接

    我正在尝试将 Azure 网站连接到 Azure blob 我打算在容器中托管一些文件 然后从我的网站获取它们 我从本教程开始 http azure microsoft com en us documentation articles we
  • Azure Active Directory 组/角色

    我试图弄清楚如何从 Web 门户创建 Windows Azure Active Directory 组和 或角色 我在这里遗漏了一些明显的东西吗 我可以创建用户 并将他们分配给 2 个内置角色 但如何创建新角色 或团体 诚然 我还没有尝试过
  • 动态获取当前LDAP路径

    我正在使用 C 和 NET Framework 4 0 开发一个库 我想检索所有活动目录用户 它效果很好 但我的问题是 如果我在另一个域上运行我的程序 我必须更改此设置 private static string ldapPath LDAP
  • 从 ARM 模板创建 Azure Web 应用程序槽,无需复制原始 Web 应用程序配置

    我正在尝试通过 ARM 模板创建 Web 应用程序插槽 我能够创建它们 但看起来默认行为是将它们创建为当前 Web 应用程序状态的副本 这导致我的插槽继承应用程序设置 连接字符串 虚拟目录 这是演示行为的复制示例https github c
  • 将 ASP.NET Core 6 应用程序部署到现有的 Azure 应用服务?

    根据今天的公告ASP NET 核心 6 https devblogs microsoft com dotnet announcing asp net core in net 6 释放 据我了解 NET 6 将立即可用 https azure
  • PrimaryContext如何登录域服务器

    我有以下 C 代码 用于连接到我的域服务器并对其执行一些操作 我的计算机上一切正常 我可以正常运行所有命令 我的问题是 连接服务器使用什么凭据 我假设它使用当前用户的凭据 所以我真正的问题是这对普通用户有效吗 我是管理员 它在我的机器上运行
  • 使用图形 API 从多租户 AD 应用程序获取所有用户

    我正在尝试使用图形 API 获取多租户应用程序的所有用户 为此 我使用请求生成了访问令牌 POST https login microsoftonline com common oauth2 v2 0 token HTTP 1 1 Host
  • 我可以从 LDAP 更改自己的 Active Directory 密码(无需管理帐户)

    我没有 也不会 拥有管理员帐户 我想从 java 更改 Active Directory 中自己 用户 的密码 我怎样才能做到这一点 使用来自网络的代码 private void changePass throws Exception St
  • Active Directory:获取用户所属的组

    我想找到用户所属的组列表 我尝试了几种解决方案http www codeproject com KB system everythingInAD aspx http www codeproject com KB system everyth
  • 在azure应用程序服务中使用docker-compose

    我的平均堆栈代码在 docker compose 配置中工作 如果我跑docker compose up在我的电脑上 然后我可以成功登录我的应用程序localhost如果转到应用程序服务并单击 docker compose 预览选项并上传我
  • 使用 MSAL 与 Angular 进行重定向_uri_mismatch Azure AD B2C

    使用时loginRedirect or acquireTokenRedirect 我收到以下错误 redirect uri mismatch AADB2C90006 3a 请求中提供的重定向 URI http 3a 2f 2flocalho
  • Asp net Core 获取用户Windows用户名

    在ASP net CORE mvc中构建内联网 我需要获取当前用户的Windows用户名进行登录 我不需要使用Windows身份验证自动登录用户 我已经有一个自定义登录控制器来做到这一点 我只需要他的用户名 它在本地工作正常 但在 IIS
  • 如何从 Azure webjob 到 Azure webapp 进行通信?

    我正在运行 Azure Web 作业和 Azure Web 应用程序 该作业定期运行 并且 Web 应用程序需要作业的结果 我如何在那里得到结果 我尝试过使用 WCFnetNamedPipeBinding但由于 Azure webapps
  • Windows Azure 网站 - 获取实例标识符

    在具有多个实例的 Azure 网站上确定哪个实例正在响应 某些 ID 或其他唯一信息 的可能方法是什么 以下环境设置将包含当前请求正在其上运行的实例 ID WEBSITE INSTANCE ID 您还将在响应中收到此 id 作为 cooki

随机推荐

  • 为什么 copyTo(... PASTE_VALUES) 在宏中间不起作用?

    我长期使用的电子表格技术之一是就地复制 粘贴特殊值 C PSV 使用公式生成我感兴趣的值后 I C PSV 然后可以删除源数据 所以我写了一个使用这种技术的宏 但单元格最终是空的 但如果我将宏分成两个 在 C PSV 之前结束第一个宏 那么
  • 不同种类的ReaderT?

    冒着成为一个XY问题 https en wikipedia org wiki XY problem 是否有可能有一个ReaderT与不同的环境 我正在尝试类似 type AppM perms ReaderT perms IO 但是编译器抱怨
  • 如何以动态方式创建 Spring Bean。使用 Quartz SchedulerFactoryBean

    我有一个QuartzJobConfig我注册的班级Spring Quartz Beans 我按照指示SchedulerFactoryBean JobDetailFactoryBean and CronTriggerFactoryBean 我
  • 绘制动画

    我正在创建一个简单的应用程序 当用户按下按钮时 屏幕上将绘制一系列线条 并且用户将能够实时看到这些线条 几乎像动画一样 我的代码看起来像这样 已简化 UIGraphicsBeginImageContext CGSizeMake 300 30
  • 如何在Java中对多通道声音输入进行采样

    我意识到这可能是相对小众的 但这也许就是为什么无论如何都要问这个问题 我正在寻找一个硬件多输入录音控制台 例如 Alesis IO 26 来接收 Adat 光管 8 通道输入来进行信号处理 由于我还没有获得该设备 并且需要弄清楚这是否可行
  • ListView 与 getView() 由于不断的 GC 而变得缓慢?

    我的应用程序中有一个 ListView 并且我已经重写了 getView 方法 因此我可以根据行的文本更改行的 ImageView src 问题是 我注意到 ListView 滚动滞后 当我检查 DDMS 时 似乎每次滚动 ListView
  • 如何编辑 Chrome MediaRecorder 捕获的 .webm Blob

    在 Chrome 中 我在用着媒体记录器 https developer mozilla org en US docs Web API MediaStream Recording API and canvas captureStream h
  • 使用 insertUI 闪亮创建时,dragUI 不可拖动

    我用insertUI 函数来创建新的dragUI 动态地 不幸的是 新创建的dragUI行为不符合预期 我无法将它们拖动为dragUI是从创建的ui初始函数 library shiny library shinyDND ui lt flui
  • 在新窗口中打开谷歌地图。

    我创建了一个 Google Map API 我想在新选项卡 窗口 中打开它 我可以知道我的代码有什么问题吗 我可以打开新选项卡 但无法显示 Google 地图 下面是我的代码 谢谢 function newWindow var myLatl
  • 你的项目路径包含非ASCII字符android studio

    我正在安装android studio 但是当程序启动时出现这个问题 错误 1 0 您的项目路径包含非 ASCII 字符 这 很可能会导致 Windows 上的构建失败 请移动您的 项目到不同的目录 看http b android com
  • 带有简单光标适配器项目的列表视图已选中,但在滚动期间未选中

    我有一个问题 我无法在 SO 上找到答案 所有问题都在 SO 上解决 其中有太多不同的问题并且不起作用 问题是 1 ListView中被点击的行 点击后标记为蓝色背景和复选框 在滚动后失去了被点击的标记 选中的复选框和颜色 2 甚至更多 在
  • 初始化字符串的格式不符合从索引 0 开始的规范

    我有一个 ASP Net MVC 应用程序 它在我的本地开发计算机上运行良好 但是部署到IIS7后尝试登录时出现以下错误 初始化字符串格式不符合规范 从索引 0 开始 大多数发布此错误的人通过以某种方式更改连接字符串来解决它 但是 我在本地
  • 如何确定完整的 CUDA 版本 + 颠覆版本?

    Linux 上的 CUDA 发行版曾经有一个名为version txt例如 CUDA Version 10 2 89 这非常有用 但是 从 CUDA 11 1 开始 该文件不再存在 我如何在 Linux 上通过命令行确定并检查 path t
  • django OneToOne反向访问

    我有这些简单的课程 Class A models Model Class Meta models Model a models OnetoOneField A primary key True width models IntegerFie
  • python的xml.etree.ElementTree支持DTD吗?

    xml etree ElementTree 支持 DTD 吗 如果它支持 我可以强制 ElementTree 根据 dtd 文件检查 XML 文件 即使 XML 文件已经有一个 内部或外部 我不确定xml etree but lxml支持D
  • Java-使用Byteoutputstream写入大文件

    我正在尝试使用以下命令写入大小在 1kb 到 10GB 之间的文件ByteArrayOutputStream但抛出以下异常 我正在使用jdk 6 请建议任何更好的高性能Api 我使用同一个网络盒来读取和写入 Exception in thr
  • 更改本机确认/警报[重复]

    这个问题在这里已经有答案了 我想删除弹出 JavaScript 的标题 但我不知道如何才能以及在哪里编写代码 这是我的代码 a href 感谢您的帮助 你无法控制外观confirm or alert Javascript 弹出窗口 因为它们
  • 如何检查设备上是否启用了蓝牙

    我想检查设备上是否启用了蓝牙 以便应用程序可以在没有用户交互的情况下使用它 有什么办法可以做到这一点吗 我还可以分别检查蓝牙和蓝牙低功耗吗 我使用以下方法完成了此操作Radio class 检查蓝牙是否已启用 public static a
  • 在 DataRowState.Modified 中合并两个相同的 DataTables 结果

    我假设如果两个相同的话是错误的吗DataTables are merged每行的状态将被保留 看一下这个简单的例子 它创建两个相同的表并合并updated表与original桌子 但返回的表在original GetChanges is n
  • Azure 应用服务 Active Directory 身份验证访问被拒绝

    我们有一个 Web 应用程序 正在从 Azure 经典云服务过渡到应用服务 Web 应用程序 经典云服务位于包含我们的域控制器 常规 AD 而不是 Azure AD 的 vnet 上 应用程序服务使用 VNET 集成 因此它连接到我们的 v