问题背景:-
我正在学习使用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终结点。正如您所观察到的,您仍将获得Work / School帐户身份验证。只是使用与过去不同的协议,库和令牌格式(JWT而不是SAML)来完成。如果查看Startup.Auth.cs,您将看到连接位置。
在这些较新的模板中缺少数据库依赖关系只是为了支持工作/学校帐户身份验证是一件好事。在此模型中,用于验证令牌的证书指纹是在对用户进行身份验证时(通过WS-Federation Metadata Endpoint)检索的,而不是从数据库加载到您的应用程序中的。
如果您想要一个数据库,则可以肯定地添加一个供您的应用程序使用。但是,值得庆幸的是,认证用户不是必需的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句