使用ADAL库在后台对Azure进行身份验证,而无需重定向到Azure登录门户

时间:2014-11-25 00:03:30

标签: azure owin adal

目前,我使用以下代码提示重定向到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 个答案:

答案 0 :(得分:0)

不支持。用户应输入azure广告凭据的唯一位置是azure广告凭据收集页面。其他所有内容都是不允许的,包括在iframe中托管该页面。这是出于安全原因。 HTH 诉

答案 1 :(得分:0)

决定不使用Azure AD中的ClaimsPrincipal,而是执行以下操作,并在我的网站上手动管理当前用户的会话:

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;
}