gpt4 book ai didi

c# - 使用 Mono 的 Windows 集成身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 16:01:27 24 4
gpt4 key购买 nike

我正在尝试在 Mono 上开发一个 MVC 应用程序,它需要 Windows 集成身份验证(使用 Active Directory)。当 LDAP 用户尝试访问该网站时,它不应再次询问用户名和密码。这可能吗?当我们在 Web.Config 中设置“Windows”身份验证而不是“Form”时,我相信 IIS 会负责 Windows 上的身份验证。这当然不适用于 Mono + Nginx。感谢任何帮助,谢谢

最佳答案

你是对的,这不会像你期望的那样工作,因为 Web.config 的特定配置是由 Windows 上的 IIS 处理的。

我将描述两种选择。

1-apache mod_auth_kerb

您可以将您的应用程序置于使用 mod_auth_kerb 的 apache 代理之后。第一次设置非常复杂。您必须使用加入域的 Windows 计算机的服务帐户生成 key 表文件,然后将其复制到 Linux 计算机。

这是一个示例配置:

ProxyPass        / http://localhost:9005/ #your backend
ProxyPassReverse / http://localhost:9005/ #your backend
ProxyPreserveHost On

## Rewrite rules
RewriteEngine On
RewriteCond %{LA-U:REMOTE_USER} (.+)
RewriteRule . - [E=RU:%1]

## Request header rules
## as per http://httpd.apache.org/docs/2.2/mod/mod_headers.html#requestheader
RequestHeader set X-Forwarded-User %{RU}e

<Location />
AuthName "Kerberos Login"
AuthType Kerberos
Krb5Keytab /path/to your keytab/HTTP.keytab
KrbAuthRealm DOMAIN.LOC
KrbMethodNegotiate on
KrbSaveCredentials off
KrbVerifyKDC off
KrbServiceName HTTP/YOURAPP.AD2008R2.LOC
Require valid-user
</Location>

这将代理到您的应用程序,它只会附加一个带有用户名的额外 header X-Forwarded-User

然后,如果您需要完整的配置文件,则必须使用 .Net 类查询事件目录。

2- 使用身份验证代理

很少有身份验证代理支持这种情况并将您从配置中抽象出来。

免责声明:我为 Auth0 工作

Auth0 的设置是;您的应用程序将 Auth0 视为 OAuth 身份提供者,并在 Auth0 上配置与 AD 的连接。 AD 的设置,需要将 msi 部署到加入域的服务器。

关于c# - 使用 Mono 的 Windows 集成身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21113233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com