Получить токен менеджера ресурсов от входа в MSAL - PullRequest
1 голос
/ 18 апреля 2019

Я создаю веб-приложение (javascript / HTML), которое позволяет мне управлять ресурсами Azure от имени пользователя. Я хочу использовать MSAL для входа в систему пользователя и получения токена доступа для диспетчера ресурсов Azure. Это возможно? Когда я пытаюсь использовать приведенный ниже код, всплывающее окно ограничивается рабочим / учебным входом (я хочу, чтобы оно было доступно для всех учетных записей) и происходит сбой при использовании рабочего электронного письма, в котором говорится, что приложение не поддерживается для вашей организации _____, поскольку оно находится в неуправляемом состояние.

Вот что я делаю:

Я создаю объект MSAL.

    var myMSALObj = new Msal.UserAgentApplication(applicationConfig.clientID, applicationConfig.authority, acquireTokenRedirectCallBack,
        {storeAuthStateInCookie: true, cacheLocation: "localStorage"});

Затем я вызываю loginPopup и передаю в качестве области действия файл management.azure.com.

myMSALObj.loginPopup("https://management.azure.com/.default")
.then(
function (idToken){
myMSALObj.acquireTokenSilent("https://management.azure.com/.default")
})

Примечание. Я также попытался установить область действия: https://management.azure.com/user_impersonation.

Я зарегистрировал приложение Azure, и в манифесте указан требуемый ResourceAccess для включения управления службами Azure, а для параметра signInAudience установлено значение «AzureADandPersonalMicrosoftAccount».

Как использовать вход в систему MSAL с областью, которая запрашивает доступ к ресурсам Azure?

1 Ответ

0 голосов
/ 19 апреля 2019

Я хочу использовать MSAL для входа в систему пользователя и получения токена доступа для Менеджер ресурсов Azure. Возможно ли это?

Да, это возможно.

Как использовать вход в систему MSAL с областью, которая запрашивает доступ к Azure ресурсы?

Область действия https://management.azure.com/.default правильная. Убедитесь, что права доступа https://login.microsoftonline.com/common. Я думаю, что вы могли что-то пропустить при регистрации приложения. Вы можете обратиться к этому документу , чтобы проверить еще раз.

Обновление

Вот подробные шаги для справки.

1.Нажмите «Регистрация приложений» («Просмотр») -> Новая регистрация enter image description here

2.Щелкните Аутентификация-> проверьте токены доступа и токены ID. enter image description here

3. Обновите ваш код с помощью этого идентификатора клиента.

var applicationConfig = {
    clientID: '2ac327fd-4803-4ed3-****31fc8dfbbf18', //This is your client ID
    authority: "https://login.microsoftonline.com/common", 
    Scopes: ["https://management.azure.com/.default"]
};
var myMSALObj = new Msal.UserAgentApplication(applicationConfig.clientID, applicationConfig.authority, acquireTokenRedirectCallBack,
    { storeAuthStateInCookie: true, cacheLocation: "localStorage" });

function signIn() {
    myMSALObj.loginPopup(applicationConfig.graphScopes).then(function (idToken) {
        //Login Success
        showWelcomeMessage();
        acquireTokenPopupAndCallMSGraph();
    }, function (error) {
        console.log(error);
    });
}

Теперь вы сможете войти с рабочими и школьными учетными записями из Azure AD и личной учетной записи.

...