【问题标题】:How do I validate a username and password in Azure AD?如何在 Azure AD 中验证用户名和密码?
【发布时间】:2021-07-29 13:10:37
【问题描述】:

我想要一个示例代码,允许用户在 Azure AD 中使用他们的用户名和密码登录。登录成功后,我想获取一个Access Token

目前我与 Azure AD 没有任何联系,我硬编码了一个用户。

        // POST api/values
        [HttpPost, Route("login")]
        public IActionResult Login([FromBody] LoginModel user)
        {
            if (user == null)
            {
                return BadRequest("Invalid client request");
            }
            if (user.UserName == "JO3434" && user.Password == "defDDMKJM")
            {
                var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("superSMKLJMKey@345"));
                var signinCredentials = new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256);

                var claims = new List<Claim>
                {
                    new Claim(ClaimTypes.Name, user.UserName)
                };
                
                var token = new JwtSecurityToken(
                    audience: "http://site.azurewebsites.net",
                    issuer: "http://site.azurewebsites.net",
                    claims: claims,
                    expires: DateTime.Now.AddMinutes(60),
                    signingCredentials: signinCredentials
                );

                var results = new
                {
                    token = new JwtSecurityTokenHandler().WriteToken(token),
                    expiration = token.ValidTo
                };
                return Ok(results);
            }
            else
            {
                return Unauthorized();
            }
        }
    }

【问题讨论】:

    标签: c# azure-active-directory jwt bearer-token


    【解决方案1】:

    没有与Azure AD连接,你无法验证用户,我认为没有必要这样做,如果你用AcquireTokenByUsernamePassword方法获取令牌,它本质上使用Azure AD ROPC flow,它将验证用户自动为你,如果用户失效,它会给出一个错误Error validating credentials due to invalid username or password

    【讨论】:

    • +1 票并被接受为解决方案。感谢 AcquireTokenByUsernamePassword 和一系列步骤,我现在可以登录并获得有效令牌......非常感谢您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多