问题背景: -
我正在学习如何使用Azure AD作为ASP.NET MVC 5 Web应用程序的身份验证方法(与使用Identity的标准本地身份验证相反)。
使用VS2015,我已经将模板用于MVC 5网络应用程序并选择了#34;工作和学校帐户"在“更改身份验证”菜单中...
我在Azure帐户中创建了一个域/用户,并成功管理在运行默认应用程序时进行身份验证。
但是: -
我注意到没有本地数据库可以迁移到Azure(我认为这是存储租户/令牌信息所必需的)。此外,Web.config没有定义默认连接字符串("个人帐户"模板中有一个)
问题
为什么此模板没有默认数据库?我错过了什么?
答案 0 :(得分:0)
在新模板中删除了使用Azure AD进行Work / School帐户身份验证的数据库相关性。您表示过去经历的体验是旧项目模板中记录here的体验。
旧模板使用WS-Federation和Azure AD中的WS-Federation端点对用户进行身份验证。该数据库用于存储一些Azure AD租户信息和用于验证Azure AD发布的SAML令牌的证书指纹。如果您有兴趣了解更多相关信息,请发表我的博客here。
新模板使用OWIN中间件和OpenID Connect对用户进行身份验证。 OpenID Connect基于OAuth 2.0构建,因此使用Azure AD中的OAuth端点。您仍然可以按照您的观察获得工作/学校帐户身份验证。它刚刚使用不同的协议,库和令牌格式(JWT而不是SAML)完成,而不是您过去看到的。如果您查看Startup.Auth.cs,您将看到它连接的位置。
这些较新的模板中缺少数据库依赖性只是为了支持工作/学校帐户身份验证,这是 好事 。在此模型中,用于验证令牌的证书指纹是在用户通过身份验证时(通过WS-Federation元数据端点)检索的,而不是从数据库加载到应用程序中。
如果您需要数据库,您当然可以为您的应用程序添加一个数据库。但是,幸运的是,验证用户不需要它。