登录到Sharepoint Online失败

时间:2018-08-10 09:40:01

标签: onedrive sharepoint-online sharepoint-webservice

我们有一个使用以下代码登录到Sharepoint Online的代码: https://login.microsoftonline.com/extSTS.srfhttps://login.microsoftonline.com/RST2.srf,但最近我们开始通过身份验证失败,提示“错误的用户名或密码”,并在重试后返回:

0x80048823消息:AADSTS70002:验证凭据时出错。AADSTS50053:您尝试使用错误的用户ID或密码登录了太多次。

虽然使用相同的用户名和密码登录浏览器可以正常工作,并且密码或用户名均未更改,但代码也未更改。同样的代码对于其他Sharepoint租户也可以正常工作。似乎Microsoft登录服务器中发生了一些变化,开始不接受用户凭据,而Web浏览器登录正常。

请告知。

谢谢

2 个答案:

答案 0 :(得分:1)

Microsoft Rep帮助我做到了这一点。

他们让我们创建了一个“仅云”用户。此用户设置为“ @”,因此,如果您的名字是bill,而您的公司共享站点的名称是FakeCompany.sharepoint.com,则该人的名字将是“ bill@FakeCompany.onmicrosoft.com”

该用户只需输入用户名和密码即可登录https://login.microsoftonline.com/extSTS.srf

我们的高级AD用户仍然遇到问题,我提到了这一点,并得到了以下答复。

同步没有问题,因为您可以使用相同的帐户和密码登录门户。 您需要的解决方案已记录在https://docs.microsoft.com/en-gb/azure/active-directory/manage-apps/configure-authentication-for-federated-users-portal#enable-direct-authentication-for-legacy-applications

您需要在其中“ AllowCloudPasswordValidation”:true的情况下创建家庭领域发现(HRD)策略。

我们尚未实现最后一个解决方案,但是创建云帐户可能会帮助某些人。

答案 1 :(得分:0)

所以我想我理解他们要说的话。根据node-sp-auth示例,您可以使用2条路径进行身份验证。

“托管”和“联合”

“ Managed”是更简单的版本,它使您能够仅提供用户名和凭据以进行断言。

联合要复杂得多。您需要先执行发布至Microsoft的操作,以验证用户是否点击了adfs服务器。 https://adfs.XXXXXXX.com/adfs/services/trust/13/usernamemixed

然后,您从该响应中获取saml:Assertion,并使用node-sp-auth中的模板将其放入您对https://login.microsoftonline.com/extSTS.srf进行的调用的“令牌”部分中。

我有执行所有这些步骤的C#代码,但出现错误 AADSTS70002:验证凭据时出错。 AADSTS50008:SAML令牌无效。 AADSTS50006:无效的签名。签名验证失败。

即使签名是由Microsoft在其SAML中生成的。

node-sp-auth代码参考是OnlineUserCredential.ts文件。

如果有人可以弄清楚最后一英里,我可以发布全面的C#解决方案。