繁体   English   中英

ASP.NET MVC5 Azure AD Web App模板中的数据库在哪里?

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

问题背景:

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

在VS2015中,我使用了MVC 5 Web应用程序的模板,并在“更改身份验证”菜单中选择了“工作和学校帐户”。

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

然而:-

我注意到没有本地数据库可以迁移到Azure(我认为这是存储租户/令牌信息所必需的)。 此外,Web.config没有定义默认的连接字符串(“个人帐户”模板中有一个)

问题

为什么此模板没有默认数据库? 我想念什么?

在新模板中,删除了使用Azure AD进行工作/学校帐户身份验证的数据库依赖性。 您已表示自己常看的经验是所记载的经验在这里的老项目模板。

较旧的模板使用来自Azure AD的WS-Federation和WS-Federation终结点对用户进行身份验证。 该数据库用于存储一点Azure AD租户信息和一个证书指纹,用于验证Azure AD发出的SAML令牌。 如果您有兴趣了解更多有关此的内容,我在这里博客了。

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

在此处输入图片说明

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

如果您想要一个数据库,您当然可以添加一个供您的应用程序使用。 但是,值得庆幸的是,认证用户不是必需的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM