我有一个由Azure AD保护的Web应用程序。我希望能够允许一些人访问此应用程序。我在我的目录中为这些用户创建了一个帐户,我想在不重定向到Azure AD的情况下将其登录。
有没有办法获得Azure身份验证cookie并允许他们访问我的应用程序而无需将其重定向到登录?我知道用户名/密码,并希望能够在幕后进行登录。
答案 0 :(得分:0)
您应该能够使用资源所有者凭据流。假设您使用ADAL,则可以利用this sample app来检索令牌。
获得身份验证结果后,您可以使用它来构建身份并将其传递给cookie身份验证管理器(假设您使用的是OWIN cookie身份验证中间件)。
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.GivenName, result.UserInfo.GivenName));
var id = new ClaimsIdentity(claims,
DefaultAuthenticationTypes.ApplicationCookie);
var ctx = Request.GetOwinContext();
var authenticationManager = ctx.Authentication;
authenticationManager.SignIn(id);