Я создал приложение в Active Directory через «Регистрация приложений (предварительный просмотр)» и использую библиотеку аутентификации Microsoft (MSAL.js) для входа в приложение.Приложение будет выполнять вызовы API с областью действия user_impersonation, поэтому я включил это в приложении.
Я также хотел бы, чтобы пользователи, которые не были добавлены к арендатору, могли войти в систему и использоватьприложение, поэтому я установил для signInAudence значение AzureADandPersonalMicrosoftAccount.Если я правильно понимаю, это должно позволить любой учетной записи, независимо от арендатора, членом которого он является, войти в систему.
Однако, когда я делаю запрос на вход в приложение с учетной записью, которая не является пользователемв клиенте приложений я получаю сообщение об ошибке: «Выбранная учетная запись пользователя не существует в клиенте« MyTenant »и не может получить доступ к приложению« MyApplicationID »в этом клиенте.Сначала необходимо добавить учетную запись в качестве внешнего пользователя в клиенте.Пожалуйста, используйте другую учетную запись. '
Я использую следующий javascript для совершения звонка:
var applicationConfig = {
clientID: "MYCLIENTID",
authority: "https://login.microsoftonline.com/MYTENANTID",
graphScopes: ["https://management.azure.com/user_impersonation"],
graphEndpoint: "https://graph.microsoft.com/v1.0/me"
};
var headers = new Headers();
var userAgentApplication = new Msal.UserAgentApplication(applicationConfig.clientID, applicationConfig.authority, tokenReceivedCallback);
function clicked(){
console.log('clicked');
userAgentApplication.loginPopup(applicationConfig.graphScopes).then(function (idToken) {
userAgentApplication.acquireTokenSilent(applicationConfig.graphScopes).then(function (accessToken) {
var bearer = "Bearer " + accessToken;
headers.append("Authorization", bearer);
var options = {
method: "GET",
headers: headers
};
var endpoint = "https://management.azure.com/subscriptions?api-version=2016-06-01";
fetch(endpoint, options).then(function (response) {
var body = response.body;
});
}, function (error) {
});
}, function (error) {
//login failure
});
}
Есть ли что-то, что мне не хватает, чтобы заставить это работать, или я неправильно понимаю'Параметр AzureADandPersonalMicrosoftAccount '?