(之前已经提出了类似问题的问题,但问题和接受的答案都没有提供我正在寻找的细节)
为了在专用域帐户下运行asmx Web服务,使用具有域帐户身份和模拟身份的应用程序池的使用方案和/或优缺点是什么?
我们有3个小型内部Web服务,它们在相对较低的负载下运行,我们希望将它们切换到在自己的域帐户下运行(为了与SQL Server等集成安全性).我似乎可以选择为每个应用程序创建专用的应用程序池,或者为所有应用程序创建一个应用程序池,并在每个应用程序中使用模拟.
我理解应用程序池提供工作进程隔离,并且在使用模拟时需要考虑性能,但是除了那些除了正确的选项之外还有什么呢?
我有一个使用集成安全性的ASP.Net MVC应用程序,我需要能够授予对特定路由的开放访问权限.有问题的路线是~/Agreements/Upload.我尝试了一些事情,迄今为止没有任何工作.
<configuration>
<location path="~/Agreements/Upload">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
</configuration>
Run Code Online (Sandbox Code Playgroud)
在目录安全性>身份验证方法下的IIS中,我只选择了"集成Windows身份验证".现在,这可能是我的问题的一部分(尽管IIS允许上面的IIS没有).但是,如果是这种情况,我该如何配置它以便集成安全性工作但允许未经过身份验证的人访问给定路由?
.net asp.net-mvc authorization web-config integrated-security
Windows用户权限与任何SQL Server GRANT集之间的区别似乎是不相关的概念.通常情况下,似乎实际上是使用伪登录实现数据库角色; 但是这并没有有效地映射回Windows权限.假设单一登录身份验证,为什么不尽量使用最简单的数据库角色呢?
编辑:
到目前为止,我们已经获得了您不需要在应用程序中存储密码的单一好处; 但这似乎更像是一个微不足道的有益结果而不是设计目标; 还有很多其他更直接的方法来实现这一点,而不是紧密耦合两个宇宙的整个安全设备.
再次编辑:
除了单一登录和SD维护组的能力之外,没有其他人有任何建议的好处,从而复制SQL Server中已存在的组(基于相同的用户登录)的功能吗?
小组问题有几个缺陷,包括假设AD经理被认为同样有资格维持两者; 它不包括任何不属于AD的网络连接(从而将您锁定为MS技术.)
并且以最佳实践术语来说,你已经建立了系统的耦合,这通常被认为是一件坏事.
我有一个网站的以下配置:
所有机器都在运行 Windows 2008 R2 Enterprise 和 SQL Server 2008 R2 的同一个域(例如 MyDomain)中。
我正在部署使用应用程序池标识的 Web 应用程序。我将池命名为 MyWebApp,它可以转换为名称 [IIS APPPOOL\MyWebApp]。当我尝试将此用户添加到 SQL Server 时,出现错误:
找不到 Windows NT 用户或组“IIS APPPOOL\MyWebApp”。再次检查名称。
我用来在 SQL Server 中创建帐户的脚本是:
CREATE LOGIN [IIS APPPOOL\MyWebApp] FROM WINDOWS WITH DEFAULT_DATABASE=[MyDatabase], DEFAULT_LANGUAGE=[us_english] GO
我想问题的发生是因为 IIS 帐户是 SQL Server 框不可见的本地帐户。
有人可以解释一下如何解决这个问题吗?使用域帐户是我唯一的选择还是我仍然可以使用应用程序池帐户?
我有一个ASP.NET应用程序的核心连接到使用数据库Integrated Security=True连接字符串中,从而使运行该应用程序的用户的凭据用于连接到数据库,这样我就不必添加用户名和密码User Id=username;Password=password在连接字符串.
如何使用我的域中的用户帐户运行上述应用程序的Docker容器.这是我能做的事情吗?如果是这样,它仍然是推荐的方法吗?这似乎可以使用Windows容器但是linux呢?
connection-string runas integrated-security docker asp.net-core
我当前的服务在 Windows 上的 IIS 中运行。我让它们作为我的域的一部分的服务帐户用户运行。该用户运行该服务的应用程序池,并且还获得了数据库所需的权限。然后我们的连接字符串就可以使用集成安全性来连接到我们的 SQL Server 数据库。
这样做的好处是可以提前设置,并且代码/连接字符串不需要任何密码。
当我转向 docker 容器时,我发现继续使用这是一个困难的情况。我的容器以 root 或其他非公司用户身份运行。所以我不能只使用集成安全性。(即使我可以让我的容器作为域用户运行,我也不知道这是否是一个好的做法。)
在容器中运行时,如何将密码保留在数据库连接字符串和配置之外?
请问,有人可以提供一个简单,直接的方式来启用ASP.NET> Kerberos> Sql Server吗?
我们有clientMachine> webServer> databaseServer.客户端坚持认为该站点必须提取Windows登录而不提示,因此需要Kerberos和集成身份验证.它还必须模拟用户进入数据库服务器,从而产生双跳.
我们的域名是Windows 2003域名,据我所知,这意味着Kerberos已启用.在加入域的计算机上,当登录时,kerbtray告诉我我有一大堆门票,所以它显然正在工作.
AD中的Web和数据库服务器计算机帐户都"受信任以进行委派".
必须访问系统的AD用户帐户都"被委托信任".
当它全部工作时,我会添加更多用户,现在两个就是它.
Sql Server实例在数据库服务器上的LocalSystem下运行,尽管我可以在线告诉它,但这意味着它根本不需要弄乱那些SPN的东西.
然而,当我尝试使用任一用户登录时,我得到了
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
Run Code Online (Sandbox Code Playgroud)
表示双跳失败.在数据库服务器上的应用程序日志中,有一些来自"MSSQL"的条目说同样的事情,这进一步推动了这一点.
我真的不敢相信这有多难......我的意思是,IIS,SQL和Windows都是微软,他们不能说得更好吗???
总而言之,我有
sql-server asp.net kerberos windows-authentication integrated-security
我想念什么?
<add name =“ test”
connectionString =“ Data Source = TEST_ORACLE;集成安全性=是;” />
[ArgumentException:“集成安全性”是无效的连接字符串属性]
Oracle.DataAccess.Client.OracleConnection.ParseConnectionString()+2707
Oracle.DataAccess.Client.OracleConnection.set_ConnectionString(字符串值)+533
Oracle.DataAccess.Client.OracleConnection..ctor(字符串connectionString)+210
ODP.NET:Oracle.DataAccess-2.102.2.20(我使用的是这个版本的bindingRedirect。)
如果我取出Integrated Security并声明用户ID和密码,则它可以正常运行。因此,我知道ODP.NET没错。
到目前为止,我们使用MS JDBC Driver 4.0使用集成安全性和Java Kerberos连接到SQL Server 2008,一切正常.
这是代码:
春天背景:
<!-- ***** Data Source Configuration ***** -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url"
value="jdbc:jtds:sqlserver://<serverName>:<port>;databaseName=<DBName>;integratedSecurity=true;authenticationScheme=JavaKerberos; />
<property name="initialSize" value="5" />
<property name="maxActive" value="2" />
<property name="defaultAutoCommit" value="false" />
</bean>
<!-- ***** Transaction Manager ***** -->
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:annotation-driven transaction-manager="txManager" />
<!-- ***** JDBC Configuration ***** -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg type="javax.sql.DataSource" ref="dataSource" />
</bean>
Run Code Online (Sandbox Code Playgroud)
login.conf文件:
com.sun.security.jgss.krb5.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=false
doNotPrompt=true
useKeyTab=true …Run Code Online (Sandbox Code Playgroud) 我们有一些企业内部网用户使用WinForms应用程序来处理后面有SQL服务器的系统.集成安全性已设置,允许所有用户更新和删除权限,其中应用程序安全性限制表更新的方式和位置.
但是,某些用户可以使用SQL查询工具,并直接访问数据库以构建报告.但是,通过集成安全性,它们具有应该没有的表的默认更新权限,因为应用程序将规则应用于更新.
这是一个更合适的例子,为应用程序提供中央SQL身份验证登录,而用户获得集成安全性的只读权限吗?
我的Intranet上有一个管理网站,目前通过IIS 使用集成Windows身份验证.我们希望将此应用程序移至公共网站并使用SSL进行保护,以便我们的用户可以从任何地方访问它.
我一直在计划使用HttpModule从http重定向到https,但它看起来不适用于集成身份验证(登录弹出窗口出现在重定向之前).
我是否坚持使用IIS中的"require SSL"复选框?这似乎不是所有用户友好的,因为如果用户忘记使用https URL,则会获得一个不错的胖错误页面,而不是温和的重定向.
在这个情况下,你会怎么做?
asp.net ×3
sql-server ×3
.net ×2
docker ×2
iis ×2
kerberos ×2
asmx ×1
asp.net-core ×1
asp.net-mvc ×1
java ×1
jtds ×1
linux ×1
odp.net ×1
oracle ×1
runas ×1
ssl ×1
web-config ×1
windows ×1