Использование библиотеки 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.