AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[spn](server)

Martin Hope
agamil
Asked: 2021-07-20 02:44:42 +0800 CST

限制人类使用 Azure 服务主体

  • 1

我们有一些人(他们自己)手动使用 SP 来运行命令并从 CLI 部署资源。我们需要防止这种情况,只允许服务使用 SP,而不是人类。有什么办法吗?

azure azure-active-directory spn
  • 1 个回答
  • 38 Views
Martin Hope
DevMops
Asked: 2021-05-27 23:28:09 +0800 CST

Linux pod 使用 keytab 对 MS-SQL windows 服务器进行身份验证

  • 2

无法让 Kerberos 身份验证从 linux 工作到 Windows 上的 MS-SQL 服务器。在 AD 中添加了新用户。

New-ADUser -Name "user" -GivenName "user" -SamAccountName "user" -UserPrincipalName "[email protected]"  –AccountPassword (ConvertTo-SecureString "password" -AsPlainText -force) -Enabled $true

生成的密钥表文件。

ktpass -out krb5.keytab -mapUser [email protected] -pass password  -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -princ MSSQLSvc/sql.my.domain:[email protected]

将 krb5.conf 的配置添加到 linux 服务器

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 dns_lookup_realm = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt
 default_ccache_name = KEYRING:persistent:%{uid}

 default_realm = MY.DOMAIN
[realms]

 MY.DOMAIN = {
 }

[domain_realm]
 my.domain = MY.DOMAIN
 .my.domain = MY.DOMAIN

将 keytab 复制到 linux serv

做过 kinit

kinit -k  MSSQLSvc/sql.my.domain:[email protected]

klist 节目

klist
Ticket cache: FILE:/etc/krb/cache
Default principal: MSSQLSvc/sql.my.domain:[email protected]

Valid starting     Expires            Service principal
05/27/21 07:24:27  05/27/21 17:24:27  krbtgt/[email protected]
    renew until 06/03/21 07:24:27

和失败...

/opt/mssql-tools/bin/sqlcmd -S sql.my.domain
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : SSPI Provider: Message stream modified.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Cannot generate SSPI context.
sql-server active-directory kerberos spn
  • 1 个回答
  • 476 Views
Martin Hope
Calanus
Asked: 2016-09-22 22:48:03 +0800 CST

如何为工作组上的 SQL Server 设置 SPN

  • 0

我正在尝试远程连接到我在工作组上运行的家庭服务器上的 Sql server 2016 实例。我需要设置一个 SPN 来执行此操作。那里的所有指南似乎都与针对域情况而不是工作组设置 SPN 有关。这是我为在 NT SERVICE\MSSQLSERVER(默认服务帐户)下运行的服务器 Odin 尝试过的 SPN

C:\Windows\system32>setspn -A MSSQLSvc/Odin:1433 "NT SERVICE\MSSQLSERVER"

Ldap Error(0x51 -- Server Down): ldap_connect
Failed to retrieve DN for domain "" : 0x00000051
Warning: No valid targets specified, reverting to current domain.
FindDomainForAccount: Call to DsGetDcNameWithAccountW failed with return value 0x000004BC
Unable to locate account MSSQLSERVER

我以管理员身份运行 cmd 提示符,我以管理员身份登录,现在没有想法。帐户 MSSQLSERVER 必须存在,否则 SQL 服务器将无法运行(我可以在本地连接)。

sql-server workgroup spn
  • 1 个回答
  • 2211 Views
Martin Hope
Balint Pato
Asked: 2016-04-16 12:50:25 +0800 CST

从 linux 构建服务器创建 SPN

  • 7

我正在设置一个进程,它将自动为新公开的服务 URL 创建 SPN。我知道如何使用具有正确权限的 setspn -A 命令在 Windows 上创建 SPN。

由于我的构建服务器在 Linux 上运行,我想知道,除了登录到 Windows 服务器并运行 setspn 之外,还有什么方法可以从 Linux 服务器创建 SPN?

active-directory kerberos spn
  • 2 个回答
  • 8662 Views
Martin Hope
GordonB
Asked: 2012-06-08 04:04:53 +0800 CST

SPN、Kerberos 和 IIS

  • 0

我有一个 MyWebServer 的 dns 别名,它指向运行 iis 7.5 的 win 2008 r2 机器的 ip。我为域用户设置了正确的 HTTP spn,该域用户有权使用 kerberos 委派给指定的 HTTP web 服务。
IIS 在顶层配置为使用内核模式身份验证和使用 AppPoolCredentials。

iis 框上的主要应用程序在具有我的域用户身份的应用程序池下运行。该应用程序按预期工作,发出了正确的 kerberos 票证,并且该应用程序能够完美地委托 Windows 用户身份。

然而,还有其他应用程序使用相同的 IIS 网站,但使用作为网络服务运行的不同应用程序池。所有应用程序都设置为仅使用 Windows 身份验证(匿名关闭)。

每当我在 IE 中点击这些应用程序之一时,我都会收到登录提示。输入正确的域凭据会在 3 次登录尝试后导致 401 错误。Web 服务器被 IE 识别为位于本地 Intranet 区域中,并且 IE 被配置为自动登录到该区域中的服务器。在访问这些应用程序时,我也会获得一张有效的 kerberos 票证,即使它们本身永远不需要票证。

现在,当我将应用程序池标识设置为其他应用程序的域用户,并执行 IISreset 时...应用程序按预期工作。

现在,我的问题是......这是预期/预期的吗???
我是否无法在已使用域用户帐户的 SPN 设置的 IIS 网站中运行混合应用程序?我以前混合使用 HTTP/别名 Machine spn 这样的网站,但到目前为止一直在努力处理 HTTP/别名域/用户设置。


编辑:布伦特的回答是正确的。我找到了这篇详细阐述的 Microsoft 文章。 http://support.microsoft.com/kb/871179

一项服务的 SPN 只能与一个帐户相关联。因此,如果您使用此建议的解决方案,则在不同域用户帐户下运行的任何其他应用程序池不能仅与集成 Windows 身份验证一起使用。


如果您有多个在不同域用户帐户下运行的应用程序池,要解决此问题,如果您只想使用集成 Windows 身份验证,则必须强制 IIS 使用 NTLM 作为您的身份验证机制。

iis-7.5 application-pools kerberos windows-server-2008-r2 spn
  • 1 个回答
  • 2840 Views
Martin Hope
Vilx-
Asked: 2010-03-16 03:37:03 +0800 CST

对 Kerberos、委派和 SPN 的困惑

  • 1

我已经在 SO 上发布了这个问题,但它的本质是在编程和服务器配置之间,所以我也会在这里重新发布。


我正在尝试编写一个执行 Kerberos 委托的概念验证应用程序。我已经编写了所有代码,并且它似乎可以正常工作(我的身份验证很好),但是生成的安全上下文没有设置 ISC_REQ_DELEGATE 标志。

所以我在想也许端点之一(客户端或服务器)被禁止委托。但是,我没有针对 SPN 进行身份验证。只有一个域用户对抗另一个域用户。作为 SPN,InitializeSecurityContext()我将传递“[email protected]”(这是运行服务器应用程序的用户帐户)。据我了解,域用户默认启用委派。无论如何,我要求管理员检查,并且“帐户敏感且不能委派”复选框已关闭。

我知道如果我的服务器作为网络服务运行并且我使用 SPN 连接到它,那么我需要 AD 中的计算机帐户选中“信任计算机以进行委派”复选框(默认情况下关闭),但是……事实并非如此,对吧?或者是吗?

另外 - 当计算机帐户中的复选框被设置时,更改会立即发生,还是我必须重新启动服务器 PC 或等待一段时间?

kerberos spn
  • 1 个回答
  • 621 Views
Martin Hope
user21693
Asked: 2009-10-02 03:44:25 +0800 CST

创建密钥表和服务主体名称

  • 7

我正在尝试为 Java 服务器设置一个密钥表以支持 Windows 网络上的 Kerberos 身份验证。即使在命令行工具级别,我也很难让它工作,甚至还没有达到服务器设置的程度!我刚才的计划是尝试让它在我的开发 PC 上运行,因为我有开发工作和调试要做。所以我的目标是让 Java 服务器在我的 PC 上运行,而客户端在连接到它的同一台机器上运行。

这就是我到目前为止所做的,我真的很笨拙,所以我可能会做各种错误的事情!

创建了服务主体名称

我让我们的一位域管理员运行此命令:

setspn -A TEST/pc-name.mydomain.com my-user-name

这似乎成功完成,我可以成功列出这个 SPN

setspn -L my-user-name

创建了一个密钥表文件

我用这个命令创建了一个 keytab:

ktpass /princ TEST/[email protected] /pass <my-password> /ptype KRB5_NT_SRV_HST /out <keytab-filename>

这似乎成功地创建了一个 keytab,尽管它确实警告 ptype 和帐户类型不匹配(但无论我为 ptype 选择什么,我都会收到相同的警告)。如果我运行这个命令:

klist -k file:/<keytab-filename>

然后它列出了我期望的 SPN,即 TEST/[email protected]

问题!

现在我想检查 keytab 是否适用于这个 SPN,所以我正在运行

kinit -t <keytab-filename> TEST/[email protected]

然后我得到一个错误“krb_error 6 Client not found in Kerberos database”。

我究竟做错了什么?

spn
  • 1 个回答
  • 20365 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve