Аутентификация в SharePoint online с помощью Microsoft.SharePoint.Клиент.ClientContext работает в VS, сбой в функции Azure

#.net #azure #authentication #sharepoint

#.net #azure #аутентификация #sharepoint

Вопрос:

У меня есть некоторый код для создания современной страницы SharePoint Online, которая отлично работает с VS, протестирована с тремя разными учетными записями SharePoint. Тот же код, выполняемый в функции Azure, работает только с одной из трех учетных записей. Для учетных записей, которые не работают, я получаю сообщение: имя или пароль для входа не совпадают с именем или паролем в системе учетных записей Microsoft. Все три учетные записи имеют одинаковые разрешения в SharePoint, и, как я уже сказал, все они отлично работают с VS. Есть мысли о том, почему это работает с VS, а не с Azure? Я использую .Net Framework, поскольку уже обнаружил, что аутентификация, похоже, работает некорректно в .Net Core.

         private static ClientContext GetClientContext(string siteUrl, string userAccount, string userPassword)
    {

        ClientContext ccNew = new ClientContext(siteUrl); //"https://nelsoncity.sharepoint.com/sites/IwiEngagement/");
        SecureString sec_pass = new SecureString();
        Array.ForEach(userPassword.ToArray(), sec_pass.AppendChar);
        ccNew.Credentials = new SharePointOnlineCredentials(userAccount, sec_pass);

        return ccNew;

    }
  

Ответ №1:

@PDTech

 The sign-in name or password does not match one in the Microsoft account system.
  

Эта ошибка возникает из-за возможности включения MFA (многофакторной аутентификации) для этих учетных записей за пределами сети организации / сети домена.

Быстрый тест для этого будет :

Возьмите машину за пределами доменной сети, попробуйте войти в систему, используя те же учетные данные, и посмотрите, сталкиваетесь ли вы с какими-либо дополнительными шагами для входа в систему (например, телефонный звонок, текст, аутентификатор и т. Д.)

Причина, по которой я подозреваю, что MFA включен на сетевом уровне — потому что то же самое работает с локальной средой.

Для получения подробной информации о конфигурации MFA

https://learn.microsoft.com/en-us/azure/active-directory/authentication/howto-mfa-mfasettings#mfa-service-settings

Если возможно, вы можете исключить эти учетные записи из MFA или добавить IP-адрес Azure Functions в качестве доверенного IP.

Комментарии:

1. @PDtech — помогло ли вышеупомянутое решение или у вас есть какие-либо дополнительные вопросы?