问题标签 [spn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
238 浏览

kerberos - asp.net core 3 HTTP.SYS with SSL, Active Directory + Kerberos - SPN 苦苦挣扎?

我正在尝试将 net core 3 API 作为 Windows 服务(即不使用 IIS)运行,并在活动目录上使用 Http.Sys 身份验证帐户。我想启用基本身份验证(必须支持开发人员要求基本身份验证的非 .NET 语言),但在可用的情况下允许 windows/kerberos。

我大部分时间都在那里,事实上我基本上有一个服务可以做我想做的一切,除了一件事 - 我只看到使用 NTLM 而不是 kerberos。我可能会按原样去生产,但我想了解为什么我不能让 kerberos 工作。我相信最后一块是SPN。

创造:

启动类:

控制器:

我已经支付了正确的证书,我在 ps1 脚本中使用 netsh 在端口 20010 上设置了该证书:

网络服务器:

  • 正确加入域
  • netbios 名称:mywebserver
  • 全名:mywebserver.ad.mydomain.com

服务:

  • .net 核心 3.1
  • 在域帐户“myserviceaccount”下运行

服务帐户“myserviceaccount”当前在 Web 服务器上具有管理员权限,如果我将证书权限直接授予此帐户,我想我可以删除它。或者也许要让这一切正常工作,我必须将其作为系统帐户运行?不过最好不要这样做。

活动目录:

  • ad.mydomain.com
  • 服务器 netbios 名称:domainserver
  • 服务器全名:domainserver.ad.mydomain.com

照原样,这适用于所有浏览器/操作系统以及设置为使用该服务的所有语言。它正确地挑战,允许域用户通过并显示正确的证书。但如上所述,当我使用各种身份验证测试器/提琴手等时 - 它仅在从 Windows 客户端访问时显示 NTLM。

我尝试在 Web 服务器上设置以下 SPN:

setspn -S HTTP/mywebserver.ad.mydomain.com:20010 MYDOMAIN\mywebserver

setspn -S HTTPS/mywebserver.ad.mydomain.com:20010 MYDOMAIN\mywebserver

setspn -S HTTP/mywebserver.ad.mydomain.com:20010 MYDOMAIN\myserviceaccount

setspn -S HTTPS/mywebserver.ad.mydomain.com:20010 MYDOMAIN\myserviceaccount

每次尝试新的 SPN 时,我都会确保重新启动服务,并完全关闭所有浏览器。

我不知道这些是否正确(我假设它们不正确,因为它回退到 NTLM!)。我不确定是否应该在 mywebserver 或 domainserver 上设置这些。

我尝试将方案设置为 AuthenticationSchemes.Kerberos 仅作为测试,但是当我这样做时,我根本没有得到服务器的响应。

谁能帮我越线?提前致谢!

0 投票
1 回答
95 浏览

oauth-2.0 - Oauth 授权代码流是否会生成服务主体登录事件?

在 Oauth 客户端凭据流中,当应用程序在使用凭据进行身份验证后获取访问令牌时,将有一个服务主体登录事件。我想知道 Oauth 授权代码流是否也会有 SPN SignIn 事件。此处,客户端 ID、身份验证代码和客户端密码(如果是 Web 应用程序)被发送到 Oauth 令牌端点以获取访问令牌。但我不确定它是否会生成 SPN 登录事件。

0 投票
0 回答
322 浏览

c# - 如何使用 C#.net 使用 Azure 服务主体名称(SPN)从 Azure 服务(Azure blob 存储)获取文件?

通常,我想使用 C#.net 从 Azure blob 存储帐户获取文件,并且我有一个 SPN 名称。我尝试了以下方法来做到这一点。

注意:此处存储在 KEY Vault 和 Azure 管理员中的身份验证密钥仅向我们提供 SPN 名称

方式一:

方式二:

以下代码从 Azure 存储访问文件

方式 2 给出了这个错误。

参数:连接字符串:[未指定连接字符串],资源:https ://vault.azure.net ,权限: https://login.windows.net/{tenantID}。异常消息:尝试了以下 3 种方法来获取访问令牌,但都没有奏效。参数:连接字符串:[未指定连接字符串],资源:https ://vault.azure.net ,权限: https://login.windows.net/{tenantID}。异常消息:尝试使用托管服务标识获取令牌。无法连接到实例元数据服务 (IMDS)。跳过对托管服务身份 (MSI) 令牌端点的请求。参数:连接字符串:[未指定连接字符串],资源:https ://vault.azure.net ,权限:https://login.windows.net/{tenantID}。异常消息:尝试使用 Visual Studio 获取令牌。无法获取访问令牌。Visual Studio 令牌提供程序 Microsoft.Asal.TokenService.exe 的异常:TS003:错误,TS005:未找到帐户。请转到工具->选项-> Azure 服务身份验证,并添加一个帐户以在开发过程中对 Azure 服务进行身份验证。

参数:连接字符串:[未指定连接字符串],资源:https ://vault.azure.net ,权限: https://login.windows.net/{tenantID}。异常消息:尝试使用 Azure CLI 获取令牌。无法获取访问令牌。'az' 不是内部或外部命令、可运行程序或批处理文件。

如果遵循错误的步骤,请纠正我。

0 投票
0 回答
99 浏览

azure - 使用 SPN + 证书通过 Azure Databricks 连接到 ADLS gen 1

我想使用带有证书(pfx 或 pem)的服务主体连接到数据块中的数据湖存储。在 databricks 页面上,仅提及使用访问令牌。

https://docs.databricks.com/data/data-sources/azure/azure-datalake.html

是否可以使用证书?

0 投票
1 回答
143 浏览

single-sign-on - SPNEGO SSO 配置中的 pre-auth 用户有什么用?

我正在使用 SPNEGO 来实施 SSO 解决方案。在配置过程中,我需要分两步使用域用户凭据:

  1. web.xml我的应用程序中:

  2. setspn命令中:setspn -A <mySPN> myuser

当我使用此配置时,Java 应用程序使用 getRemoteUser() 检索了用户“myuser”的用户名。所以 SSO 工作正常。但是当我尝试以其他用户(在同一 Windows 服务器上)的身份打开会话时,它也可以正常工作,所以我有点困惑。这让我想到了这些问题:

为什么 SSO 对域的所有其他用户都有效?我必须在 web.xml 和 setspn 命令中使用相同的用户吗?以及选择哪个用户?SPN 在 Kerberos 方案中的确切用途是什么?我必须在每台 Windows 计算机上执行命令 setspn 还是有办法只执行一次?

0 投票
0 回答
162 浏览

powershell - SPN 和带有 Kerberos 的远程 Powershell - Hyper-V Vm

我有一个 devbox,它使用远程 powershell 脚本从第三方应用程序将更新部署到我们的 appllication/iis 服务器。

第三方应用程序生成此脚本以从 devbox 到应用程序服务器执行此操作:

我希望只需要运行一次,但是 kerberos 连接会随机抛出错误并且无法连接。我在事件日志中看不到任何内容,我正试图找出问题的根源。

然后我必须运行这些命令来备份远程 powershell 连接并从 devbox 到 appserver 工作。

两台机器都在我们网络上不同的本地 hyper-v 主机上

开发箱 => Windows 10 虚拟机

应用服务器 => 服务器 2016 虚拟机

我试图找出从哪里开始寻找问题。是因为不同的 hyper-v 主机还是我可以查看的其他原因,以了解 SPN 对远程 powershell 连接不再有效的原因。

0 投票
0 回答
21 浏览

active-directory - userPrincipalName 被覆盖

我有一个在服务器中用于进行 Kerberos 身份验证的服务帐户。帐户设置正确,为该帐户创建的所有 SPN 都正确创建,并且 KTAB 已创建。一切都按预期工作,用户可以使用 SSO 毫无问题地登录到该服务器。经过几天的正常工作,服务器停止了对用户的身份验证。我们检查并发现该帐户的 userPrincipalName 已从它通常创建的 SPN 进行了修改,同时将密钥表创建回常规服务帐户。该帐户有什么办法以某种方式回滚SPN吗?系统是否可以在没有 Active Directory 管理员权限的情况下更改此 userPrincipalName?

0 投票
1 回答
1885 浏览

sql-server-2019 - 仅在一台服务器上:“SQL Server 网络接口:目标主体名称不正确。”

(编辑:我认为这与目标主体名称不正确有很大不同 。无法生成不重复的 SSPI 上下文。)

我们在同一个域中有两台服务器 (SQL01和)。SQL02SQL02 上的 SQL Server 可以连接到 SQL01 上的 SQL Server,反之则不行。在每个节点上,ping -a并且telnet mumble 1433工作正常。我已经尝试了所有非限定和完全限定的服务器名称组合,有和没有端口号。

唯一的区别是节点 2 上的 SPN 有两个额外的条目(以红色圈出)。我应该从节点 2 中删除它们,还是将类似的记录添加到节点 1?

节点 1:

节点 2:

在此处输入图像描述

在此处输入图像描述

0 投票
0 回答
41 浏览

azure - GithubActions:使用 SPN 证书凭据登录 AKV 失败

背景:在我的带有 Github Actions 工作流的 CICD 管道中,我需要获取存储在我的 Key Vault 中的 Databricks 令牌作为机密。我使用 SPN 证书而不是机密作为登录 Azure 的凭据。此 SPN 具有所需的访问权限 - 在 AKV 上获取、列出。我已根据以下说明存储了证书 -

https://github.com/Azure/login/issues/111

问题:登录操作 (链接) 似乎成功通过了工作流,但获取 KeyVaultSecrets 操作 (链接) 失败并显示“错误:无法登录到 Azure”。我在下图中附上了执行的样子。

在此处输入图像描述

我无法解决这个问题,需要帮助来调试问题所在。我不知道出了什么问题,因为登录操作似乎已经过去了。

0 投票
0 回答
24 浏览

azure - Azure DevOps 部署到具有不同 SPN 的同一订阅中的资源组

尝试通过为每个应用程序使用单独的资源组来重新构建我们的应用程序部署。目前,我们对每个应用程序都有单独的订阅,但现在想探索对包含他们使用的大多数小型应用程序的业务部门使用单个订阅的可能性,并按资源组将它们分开。这些应用程序由同一组管理,因此管理明智的 RBAC 安全组将很好,并且 ASG/NSG 策略的组合将负责在网络级别将它们分开。当 ADO 被混合使用时,我的问题就出现了,我想为每个应用程序创建一个单独的 SPN,这意味着在 RG 级别具有 RBAC 权限。不确定 ADO 是否支持这一点,因为它需要订阅级别权限,我还没有尝试使用 RG 级别权限,但可能是两者的组合,Subs 和 RG 级别,可能是要走的路。有没有人以这种方式部署 ADO?当管理和部署团队不同时,您有什么建议?这是描述我描述的场景的快速图表。感谢您提供的任何答案/指示。 在此处输入图像描述