Во-первых, предупреждение: вы действительно не должны использовать имя пользователя / пароль в вашем приложении.В целом, это менее безопасно и увеличивает риск, которому вы подвергаете связанную среду.Это также хрупкий подход, поскольку вы, скорее всего, обнаружите, что Azure AD потребует интерактивного входа в будущем в какое-то время - возможно, в очень неудобное для вас время.
Во-вторых, уточнение: AcquireTokenByUsernamePassword
не всегда будет использовать OAuth 2.0 потока учетных данных владельца ресурса (ROPC).Когда MSAL обнаруживает, что пользователь является частью имени федеративного домена, библиотека попытается выполнить неинтерактивную аутентификацию имени пользователя / пароля , если поставщик федеративных удостоверений публикует документ обмена метаданными, который включает конечную точку, поддерживающую этот метод.Если этот запрос будет выполнен успешно, MSAL попытается обменять ответ (выданный федеративным поставщиком удостоверений) на обычный набор токенов из Azure AD (выданный Azure AD).
Итак, чтобы ответить на ваш вопрос:зависит. возможно использовать AcquireTokenByUsernamePassword
с федеративным пользователем.Однако для этого требуется, чтобы служба федеративной идентификации поддерживала это.AD FS, которая является наиболее распространенным IdP для федерации с Azure AD, поддерживает эту конечную точку с «смешанным именем пользователя».