尝试运行active-directory-dotnet-native-headless的项目,它在使用用户名密码获取令牌时有效。但是在使用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;
}
错误是:
运行该程序的PC已加入AD,用户运行该程序也是域用户。操作系统是Windows 10。发生意外错误。消息:发生一个或多个错误。 内部异常:password_required_for_managed_user:密码是 托管用户需要
是否需要在AAD上进行进一步的配置才能使其正常工作?
答案 0 :(得分:1)
在执行集成Windows身份验证(IWA)流时,您会为“托管”用户遇到此奇怪的异常。托管用户是在AAD中创建但没有AD支持的用户。 IWA基于旧的协议,该协议通过调用AD服务器上的一些API起作用。由于没有AD服务器,因此无法启用此流程。
我已经更新了ADAL和MSAL上的错误消息,并在文档中添加了详细信息。
答案 1 :(得分:0)
如果您使用AAD Connect(因此将本地AD用户同步到AAD)并在租户上启用Seamless SSO,则此方案可以工作。 https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso
答案 2 :(得分:0)
如果您替换此行
ctrl + v
与此一起
result = authContext.AcquireTokenAsync(todoListResourceId, clientId, uc).Result;
一切正常(在我的scenario中,这就是解决方案)。