ASP.NET MVC5 Azure AD Web 应用程序模板中的数据库在哪里?

Where is my database in ASP.NET MVC5 Azure AD Web App template?

问题背景:-

我正在学习如何使用 Azure AD 作为 ASP.NET MVC 5 Web 应用程序的身份验证方法(与使用 Identity 的标准本地身份验证相反)。

对于 VS2015,我使用了 MVC 5 网络应用程序的模板,并在“更改身份验证”菜单中选择了 "Work and School Accounts"...

我在我的 Azure 帐户中创建了一个 domain/users,并且当我 运行 默认应用程序时成功地进行了身份验证。

但是:-

我注意到没有本地数据库可以迁移到 Azure(我认为需要它来存储 tenant/token 信息)。此外,Web.config 没有定义默认连接字符串("Individual Accounts" 模板中有一个)

问题

为什么这个模板没有默认数据库?我错过了什么?

Work/School Azure AD 帐户身份验证的数据库依赖项已在新模板中删除。您表示您曾经看到的体验是在旧项目模板中记录的体验 here

旧模板使用 WS-Federation 和来自 Azure AD 的 WS-Federation 端点对用户进行身份验证。该数据库用于存储一些 Azure AD 租户信息和用于验证 Azure AD 颁发的 SAML 令牌的证书指纹。如果你有兴趣了解更多关于这方面的信息,我写了关于它的博客 here

新模板使用 OWIN 中间件和 OpenID Connect 对用户进行身份验证。 OpenID Connect 基于 OAuth 2.0 构建,因此使用来自 Azure AD 的 OAuth 端点。正如您观察到的那样,您仍然会获得 Work/School 帐户身份验证。它只是使用与您过去所见不同的协议、库和令牌格式(JWT 而不是 SAML)来完成的。如果您查看 Startup.Auth.cs,您会看到它的连接位置。

这些较新的模板中缺少数据库依赖性只是为了支持 work/school 帐户身份验证是一件好事。在此模型中,用于验证令牌的证书指纹是在用户(通过 WS-Federation 元数据端点)进行身份验证时检索的,而不是从数据库加载到您的应用程序中。

如果你想要一个数据库,你当然可以添加一个供你的应用程序使用。但是,值得庆幸的是,它不需要对用户进行身份验证。