在Microsoft环境中,可以设置一个Web应用程序,该应用程序将凭据直接传递给SQL Server,以便设置最接近数据的权限。如何在使用 SAML 和 OpenID 的现代应用程序中实现这一点?
您需要拆分身份验证和授权。
身份验证由 IDP 完成。您必须在 IDP 存储库中具有有效的凭据。
IDP 可以使用存储库中的组等方式进行授权。IDP 具有规则,例如,只有存储库中组 x 的成员才能访问应用程序 y。
例如,对于ADFS,存储库是AD。
它也可以由应用程序使用数据库完成。相同的原理 - 只有数据库中组 x 的成员才能访问应用程序 y。
或者,IDP 可以传递一个令牌,其中包含从存储库中的属性派生的声明。应用程序可以使用这些声明来做出决策,或者客户端中间件可以执行此操作,例如 OWIN 带有如下装饰:
[授权(角色="管理员"(]
所有这些情况都是有效的。