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

LP1*_*P13 2 azure owin asp.net-identity azure-active-directory

我们拥有ASP.NET应用程序,该应用程序已经投入生产了4-5年。现在,我正在尝试使用Azure AD,ASP.NET Identity和OWIN框架实施新的身份验证。我们的应用程序用户还需要访问已经使用Azure支持SSO的云应用程序“ BOX”。因此,想法是将我们的应用程序添加到Azure AD并配置SSO。

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

和往常一样,在阅读了有关MSDN的大量文档后,我感到困惑,我应该使用哪种身份验证机制。

第一种方法-根据 此处的Microsoft文章
我已使用Nuget配置了以下软件包

    PM> Install-Package Microsoft.Owin.Security.OpenIdConnect  
    PM> Install-Package Microsoft.Owin.Security.Cookies  
    PM> Install-Package Microsoft.Owin.Host.SystemWeb  
Run Code Online (Sandbox Code Playgroud)

然后,我在Azure AD中配置了应用程序,然后在ASP.Net应用程序中,在应用程序设置中配置了“ ida:ClientId”“ ida:Tenant”“ 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,
        });
}
Run Code Online (Sandbox Code Playgroud)

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

问题
1>我不确定应该使用哪种方法,有什么区别。
2>根据此处的 Microsoft视频如果您使用第二种方法创建应用程序,则Visual Studio将在Azure AD中为该租户创建应用程序。但是它不再创建了,这最近改变了吗?我们是否总是需要在Azure AD中手动创建应用程序?

EDIT1
当我在VS 2013中创建新的MVC或Web Form应用程序并配置身份验证时,有4个选项。其中2个是“个人帐户”和“组织帐户”。上述方法1适用于“个人帐户”,方法2适用于组织帐户。但是我仍然不知道我什么时候应该使用一个?为什么一个使用客户端ID而另一个使用静态API(联盟元数据)?如果我希望同一用户可以访问多个云应用程序,我应该使用哪种方法?

小智 5

对困惑感到抱歉。您所经历的是随着技术的发展而对多个版本进行分层。让我澄清几点。

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