具体来说,假设我在我的领域中有一个用户“foo@MYREALM.COM”,并且该用户使用用户名“baz”登录到“BAR.COM”中的随机Windows机器,这是一个微软AD领域.现在,他们希望通过Samba或NFSv4从我的机器quux.myrealm.com上的共享文件中获取文件,或者访问需要Kerberos身份验证的网页,他们需要将其作为foo@MYREALM.COM而不是baz @ BAR. COM是他们用来登录Windows的身份.
Linux / Unix / MIT Kerberos的方式是“kinit foo@MYREALM.COM”,然后去寻找它.在Windows上有等价物吗?是否存在不需要安装任何异常的等效项(即MIT Kerberos for Windows).
跨领域信任在这里不是一个选项,因为我怀疑现有的AD管理员甚至会为单向认证放置适当的TGT条目,此外,我不想信任这个域.
解决方法
第一个是Active Directory联合服务,根据维基百科的文章,它可以
“provide users with single sign-on access to systems and applications located across organizational boundaries”
这与我将提到的其他产品一样,使用新的“基于声明”的方法,您可以使用这些各种安全令牌服务(STS)将您的身份验证“声明”转换为您的服务器或服务验证所需的格式( SAML,JWT等).
必须在Windows域中安装Active Directory联合身份验证服务,因此这可能无法解决问题.但是,微软还有一些基于云的“声明转换”产品,您可以使用它们.一个是Azure Active Directory Services,它既是“身份提供者”又是“安全令牌服务”.上一个链接指出Azure Active Directory服务为您提供
“single sign-on to thousands of cloud apps and access to web apps that you run on-premises”.
我真的不推荐LDAP解决方案,但如果这是你想要的路线,你需要使用替换的“Graph API”来访问这个服务的“数据库”.另请注意,此服务具有“同步”选项,可以将内部部署Active Directory中的帐户同步到此云服务.
最后,还有Azure的访问控制服务,它提供“安全令牌服务”(无身份提供商).我个人认为此服务更适合需要代表用户授权自己的移动应用程序(OAuth2),但与Azure Active Directory服务有一些重叠,您可能想要查看它.
PluralSight有很多关于这些技术的课程,如果你想了解更多关于这些技术的话,我建议你查看它们.