【问题标题】:Get error: "Password is required for managed user" when authenticating user with ADAL Library使用 ADAL 库对用户进行身份验证时出现错误:“托管用户需要密码”
【发布时间】:2018-11-27 20:49:37
【问题描述】:

尝试运行active-directory-dotnet-native-headless的项目,用用户名密码获取token时有效。但是使用 Windows Integrated auth(WIA) 获取令牌时失败并抛出异常,如下所示:

            //UserCredential uc = TextualPrompt();
            // if you want to use Windows integrated auth, comment the line above and uncomment the one below
            UserCredential uc = new UserCredential();
            try
            {
                result = authContext.AcquireTokenAsync(todoListResourceId, clientId, uc).Result;
            }
            catch (Exception ee)
            {
                ShowError(ee);
                return;
            }

错误是:

发生意外错误。消息:发生一个或多个错误。 内部异常:password_required_for_managed_user:密码是 托管用户需要

运行程序的PC加入了AD,运行程序的用户也是域用户。操作系统是 windows 10。

是否需要在 AAD 上进行任何进一步的配置才能使其正常工作?

【问题讨论】:

  • 不能混搭。 Windows 集成身份验证永远不会适用于云 (Azure AD)。您在加入了 AD 的计算机上这一事实并没有太大改变这种情况。 Azure AD 只讨论现代协议 - OpenID Connect、OAuth,而不是 m8dern - ws-federation 以及在某种程度上扩展的 SAML。它们都不与 kerberos/ntlm 兼容,无需额外工作。使用没有集成窗口的应用程序并找到合适的示例进行处理。

标签: .net azure-active-directory adal wia


【解决方案1】:

如果你替换这一行

result = authContext.AcquireTokenAsync(todoListResourceId, clientId, uc).Result;

这个

result = authContext.AcquireTokenAsync(todoListResourceId, clientId, new Uri("http://TodoListClient-Headless"), new PlatformParameters(PromptBehavior.Auto)).Result;

一切正常(在我的scenario 中,这是解决方案)。

【讨论】:

    【解决方案2】:

    如果您使用 AAD Connect(以便您的本地 AD 用户同步到 AAD)并在您的租户上启用无缝 SSO,则此方案可以工作。 https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso

    【讨论】:

      【解决方案3】:

      在执行集成 Windows 身份验证 (IWA) 流程时,“托管”用户会遇到这个奇怪的异常。托管用户是在没有 AD 支持的情况下在 AAD 中创建的用户。 IWA 基于旧协议,该协议通过调用 AD 服务器上的一些 API 来工作。由于没有 AD 服务器,我们无法启用此流程。

      我更新了有关 ADAL 和 MSAL 的错误消息,并在文档中添加了详细信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-09
        • 2020-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-01
        相关资源
        最近更新 更多