Использование библиотеки ADAL для аутентификации в Azure в фоновом режиме без перенаправления на портал входа Azure

В настоящее время я использую следующий код для запроса перенаправления на портал входа в Azure, чтобы ввести действительные имя пользователя и пароль на экране входа в Azure:

public void SignIn()
{
    // Redirect to the Azure sign in page.

    if (!Request.IsAuthenticated)
    {
        HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = RedirectUrl }, OpenIdConnectAuthenticationDefaults.AuthenticationType);
    } 
}

Как я могу изменить приведенный выше код, чтобы вместо перенаправления сначала в Azure и ввода там имени пользователя и пароля, я мог ввести имя пользователя и пароль прямо со своего веб-сайта и передать учетные данные в фоновом режиме в Azure, получить маркер аутентификации назад и, наконец, перенаправить на указанный URL-адрес возврата?

2 ответа

Решил не использовать ClaimsPrincipal из Azure AD, а вместо этого сделать следующее и вручную управлять сеансом для текущего пользователя на моем веб-сайте:

private static string GetUserID(string userName, string password)
{
    // Acquire the token for this user attempting to access the API.

    var authenticationContext = new AuthenticationContext(Authority, TokenCache.DefaultShared);
    var result = authenticationContext.AcquireToken(ApiResource, ClientId, new UserCredential(userName, password));

    return result.UserInfo.UniqueId;
}

Это не поддерживается. Единственное место, где пользователь должен ввести учетные данные Azure, - это страница сбора учетных данных Azure. Все остальное запрещено, включая размещение этой страницы в iframe. Это из соображений безопасности. HTH V.

Другие вопросы по тегам