使用来自Windows的外部Kerberos领域中的资源,无需跨域信任?

我根本不是一个Windows用户,但是我理解Active Directory是LDAP + Kerberos 5 +微软特别酱的基本思想。 所以,在我有一个Windows机器,我无法控制现有的Active Directory域的情况下,是否有可能让这台机器上的一个人显式获得一个外国领域的Kerberos票证,然后获取资源我控制哪个Linux服务器在我控制的Kerberos / LDAP领域?

具体来说,假设我在我的领域中有一个用户“[email protected]”,并且该用户使用用户名“baz”login到“BAR.COM”这个微软AD领域的随机Windows机器中。 现在,他们希望通过Samba或NFSv4从我的计算机quux.myrealm.com上的共享文件中获取文件,或者访问需要Kerberosauthentication的网页,他们需要将其作为[email protected]而不是baz @ BAR。 COM是他们用来loginwindows的身份。

Linux / Unix / MIT Kerberos的方式是“kinit [email protected]”,然后去做。 有没有在Windows上的等价物? 是否有一个等价物不需要安装任何不寻常的东西(例如Windows的MIT Kerberos)。

跨领域信任在这里不是一个select,因为我怀疑现有的ADpipe理员会为了单向authentication而放置合适的TGT条目,而且我也不希望信任这个域。

我不是一个Unix的人,但我可以告诉你,微软有这样的技术(我怀疑Unix也是这样)。

首先是活动目录联合服务,根据维基百科的文章,可以

“为用户提供对跨越组织边界的系统和应用程序的单点login访问”

这与我将要提到的其他产品一样,使用新的“基于声明的”方法,在这种方法中,您可以使用这些各种安全令牌服务(STS)将您的身份validation“声明”转换为您的服务器或服务进行身份validation所需的格式SAML,JWT等)。

Active Directory联合身份validation服务必须安装在Windows域中,因此这可能无法为您解决。 但是,微软也有一些基于云的“声明转换”产品,您可以使用。 一个是Azure活动目录服务 ,既是“身份提供者”,也是“安全令牌服务”。 上一个链接指出Azure Active Directory服务为您提供的

“单一login到数千个云应用程序并访问您在本地运行的Web应用程序”。

我真的不推荐使用LDAP解决scheme,但是如果这是您想要的路线,您将需要使用replace的“Graph API”来访问此服务的“数据库”。 另请注意,此服务具有“同步”选项,可将本地Active Directory中的帐户同步到此云服务。

最后,Azure的访问控制服务提供了“安全令牌服务”(无身份提供者)。 我个人认为这个服务更适合需要代表用户授权的移动应用程序(OAuth2),但是与Azure Active Directory Services有一些重叠,您可能需要检查一下。

PluralSight有一些关于这些技术的课程,如果你想了解更多关于这些技术的知识,我build议你检查一下。

好的,这是我发现的一些东西。

首先,许多想要使用我的资源的人都拥有不属于Active Domain的Windows机器,只有个人机器。 所以,需要的是以pipe理员身份运行terminal

“ksetup / setrealm MYREALM_GOES_HERE

没有pipe理员权限,ksetup将不起作用。

重新启动后,Windows客户端计算机将认为它应该与我的KDC在获得票证(我的KDC是DNS可发现)时谈话。

ksetup或多或less是一个命令行界面,用于更改Linux / Unix机器上存储在/etc/krb5.conf中的信息,因此您可以使用/ setrealm指定缺省领域,并且可以告诉系统关于其他领域使用/ addkdc并使用/ mapuser和soforth设置kerberos主体和本地windows用户之间的映射,如下所示:

https://technet.microsoft.com/en-us/library/hh240190%28v=ws.11%29.aspx

我没有看到的方法是configurationkrb5.conf文件[capaths]部分中的内容,也就是告诉机器如何获得层次结构中不明显相关的域之间的传递信任(即不是ABC.EXAMPLE.COM与EXAMPLE.COM,而是说ABC.EXAMPLE.COM与FOOBAR.COM)

我不确定如果你试图在AD成员身上发生什么事,我怀疑它会被locking。