Azure Проблема аутентификации AD с asp. net ядром - PullRequest
0 голосов
/ 17 марта 2020

Как получить идентификационный токен и токен доступа в Azure AD авторизации для ASP. NET Базового веб-приложения ? Я хотел бы передать этот токен клиентскому приложению для доступа к API. Это правильный сценарий?

Ответы [ 2 ]

0 голосов
/ 18 марта 2020

Вы можете использовать Неявный поток для спа-приложения, которое работает в контексте веб-браузера, который не может безопасно управлять секретами клиента. Здесь - это пример кода для React.

В MSAL вы можете получить токены доступа для API, которые ваше приложение должно вызывать, используя метод acquireTokenSilent, который делает запрос без вывода сообщений (без запроса пользователь с пользовательским интерфейсом) Azure AD для получения токена доступа. Служба Azure AD затем возвращает маркер доступа, содержащий согласованные с пользователем области действия, чтобы ваше приложение могло безопасно вызывать API. Вы можете ссылаться на коды из AuthProvider.js.

Еще один более безопасный способ - использовать Authorization Code Flow with PKCE. MSAL.js 2.0.0 поддерживает этот поток и в настоящее время выпускается альфа-версией, для получения более подробной информации см. документ здесь.

0 голосов
/ 18 марта 2020

Вы можете использовать библиотеку MSAL для входа пользователей и запроса токенов, которые используются для доступа к API, защищенному Azure AD.

В следующем фрагменте кода показано, как войти в систему для пользователей:

// Add scopes for the id token to be used at Microsoft identity platform endpoints.
const loginRequest = {
    scopes: ["api://your_api_applicationid/.default"],
};

myMSALObj.loginPopup(loginRequest)
    .then((loginResponse) => {
    //Login Success callback code here
}).catch(function (error) {
    console.log(error);
});

Получить токен пользователя без вывода сообщений

const tokenRequest = {
    scopes: ["api://your_api_applicationid/.default"]
};

    myMSALObj.acquireTokenSilent(tokenRequest)
        .then((tokenResponse) => {
            // Callback code here
            console.log(tokenResponse.accessToken);
        }).catch((error) => {
            console.log(error);
        });

Ссылка:

Быстрый старт: войдите в систему и получите токен доступа в JavaScript SPA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...