带有 MVC 的 Azure Active Directory,客户端和资源标识相同的应用程序
Azure Active Directory with MVC, the client and resource identify the same application
跟进这个问题:
How to do both Azure Active Directory Single Sign On and Forms Authentications on ASP.NET MVC
我尝试编写有关默认 MVC 4 登录操作的简单代码,它同时使用默认表单身份验证和 Azure Active Directory SSO:
public async Task<ActionResult> Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
{
return RedirectToLocal(returnUrl);
}
authContext = new AuthenticationContext(authority, new TokenCache());
var result = await authContext.AcquireTokenAsync(resourceId, clientId, new UserCredential(model.UserName, model.Password));
// more code
}
因此,如果正常登录 WebSecurity.Login
不成功,我会尝试使用 ADAL.NET 和凭证 (username/password) 从 AAD 获取令牌,然后 post: http://www.cloudidentity.com/blog/2014/07/08/using-adal-net-to-authenticate-users-via-usernamepassword/
当 运行 应用程序时,我从 Azure 收到错误:
AADSTS90027: The client '[ClientId]' and resource '[ResouceId]' identify the same application.
我不确定直接在 MVC 登录操作上使用带有凭据的 ADAL 是否真的有意义。请有人给我一些提示。
ADAL 并非用于在 Web 应用程序中实现 Web 登录。 ADAL 帮助应用程序获取访问另一个资源的令牌:换句话说,它帮助您的应用程序成为 CLIENT。此外,username/password 在 Web 应用程序中不可用,因为它只能在本机应用程序中使用。
为了同时使用 FormsAuth 和 Azure AD,请考虑同时添加 ASP.NET 身份中间件和 OpenId Connect 中间件。 OpenId Connect 中间件是用于通过 Azure AD 实现 Web SSO 的库。
跟进这个问题:
How to do both Azure Active Directory Single Sign On and Forms Authentications on ASP.NET MVC
我尝试编写有关默认 MVC 4 登录操作的简单代码,它同时使用默认表单身份验证和 Azure Active Directory SSO:
public async Task<ActionResult> Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
{
return RedirectToLocal(returnUrl);
}
authContext = new AuthenticationContext(authority, new TokenCache());
var result = await authContext.AcquireTokenAsync(resourceId, clientId, new UserCredential(model.UserName, model.Password));
// more code
}
因此,如果正常登录 WebSecurity.Login
不成功,我会尝试使用 ADAL.NET 和凭证 (username/password) 从 AAD 获取令牌,然后 post: http://www.cloudidentity.com/blog/2014/07/08/using-adal-net-to-authenticate-users-via-usernamepassword/
当 运行 应用程序时,我从 Azure 收到错误:
AADSTS90027: The client '[ClientId]' and resource '[ResouceId]' identify the same application.
我不确定直接在 MVC 登录操作上使用带有凭据的 ADAL 是否真的有意义。请有人给我一些提示。
ADAL 并非用于在 Web 应用程序中实现 Web 登录。 ADAL 帮助应用程序获取访问另一个资源的令牌:换句话说,它帮助您的应用程序成为 CLIENT。此外,username/password 在 Web 应用程序中不可用,因为它只能在本机应用程序中使用。 为了同时使用 FormsAuth 和 Azure AD,请考虑同时添加 ASP.NET 身份中间件和 OpenId Connect 中间件。 OpenId Connect 中间件是用于通过 Azure AD 实现 Web SSO 的库。