Azure AD和ASP.NET Identity + OWIN,哪种方法可以使用?

时间:2016-02-10 22:55:51

标签: azure asp.net-identity owin azure-active-directory

我们有ASP.NET应用程序,已经生产了4到5年。现在我尝试使用Azure AD,ASP.NET Identity& amp; OWIN框架。我们的应用程序用户还需要访问已使用Azure支持SSO的云应用程序“BOX”。因此,我们的想法是将我们的应用程序添加到Azure AD中并配置SSO。

注意:我们内部没有Active Directory,我只想使用Azure AD进行Web应用程序身份验证。

像往常一样,经过MSDN上的大量文档后,我很困惑我应该使用哪种身份验证机制。

第一种方法 - 基于Microsoft文章 here
我使用Nuget

配置了以下包
    PM> Install-Package Microsoft.Owin.Security.OpenIdConnect  
    PM> Install-Package Microsoft.Owin.Security.Cookies  
    PM> Install-Package Microsoft.Owin.Host.SystemWeb  

然后我在Azure AD中配置了应用程序,然后在ASP.Net应用程序中配置' ida:ClientId' ' ida:Tenant&#39应用设置中的' ida:PostLogoutRedirectUri' 。然后在启动时调用以下代码(并根据文章做一些额外的步骤)

public void ConfigureAuth(IAppBuilder app)
{
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

    app.UseCookieAuthentication(new CookieAuthenticationOptions());

    app.UseOpenIdConnectAuthentication(
        new OpenIdConnectAuthenticationOptions
        {
            ClientId = clientId,
            Authority = authority,
            PostLogoutRedirectUri = postLogoutRedirectUri,
        });
}

第二种方法 - 基于VS 2013 Ultimate提供的模板
在此处使用VS 2013创建新应用程序并使用“组织帐户”选项配置身份验证时,它会添加以下应用程序 ' ida:FederationMetadataLocation ',' ida:Realm '和' ida:AudienceUri '然后添加代码以验证用户

问题
1 GT;我不确定我应该使用哪种方法,有什么不同。
2 - ;根据Microsoft视频here,如果使用第二种方法创建应用程序,Visual Studio将在Azure AD中为该租户创建应用程序。但它不再创造,最近有变化吗?我们是否始终必须在Azure AD中手动创建应用程序?

EDIT1
当我在VS 2013中创建新的MVC或Web窗体应用程序并配置身份验证时,有4个选项。其中2个是个人账户'和组织帐户'上面提到的方法1用于"个人账户"方法2适用于组织账户。但是我还不知道我应该何时使用其他?为什么使用客户端ID与另一个使用restful API(联合元数据)?如果我希望同一个用户可以访问多个云应用程序,我应该使用哪种方法?

2 个答案:

答案 0 :(得分:4)

抱歉这令人困惑。您所经历的是随着技术的发展,多个版本的分层。让我澄清几点。

  1. Visual Studio 2013在OWIN中间件之前发布用于Web登录 在可用。因此,ASP.NET项目模板 仍然基于旧技术(Windows Identity Foundation)和 旧协议(ws-federation)。
  2. 在VS2013发布之后,我们开发了新类(您在快速入门文章中遇到过),它通过更灵活的对象模型(OWIN中间件)和更现代的协议(openid connect)支持Web登录。您可以选择使用这些类"手动",如快速入门中所述,或使用Visual Studio 2015中的新模板 - 放弃旧技术(WIF)并自动化a)项目的生成使用OWIN中间件b)在您选择的Azure AD租户中为应用程序配置一个条目。
  3. 个人帐户的选择vs" work&学校"帐户允许您选择您的应用程序是逐个验证用户(对于前者)并拥有所有用户的详细信息,或者您是否希望您的应用程序将身份验证外包给您的用户来自的组织。如果要使用Azure AD,则需要执行后者:身份验证由Azure AD完成,您只需要将应用程序配置为在验证用户身份时重定向到Azure AD。

答案 1 :(得分:0)