我正在开发一个跨平台应用程序,它将连接到在Windows服务器2012上运行的代理服务器。访问代理服务器的凭据将是系统凭据,因此用户没有手动输入凭据。我有Windows和Linux机器连接到Windows服务器域,WS 2k12中有DNS条目。我能够使用WinHTTP API(NTLM)在Windows上完成上述要求。在Linux上,我使用的是cURL。我读到了用gssapi构建cURL并在Linux机器上设置kerberos,但我认为用户必须对他/她的系统进行重大更改,我不确定服务器端是否也需要进行一些更改。是否有任何方法可以实现此功能,以便在Linux机器上使用应用程序时,用户必须对其进行最小的更改?
答案 0 :(得分:0)
Linux环境的变化相当于加入Windows域。通常情况下,machime应该只需要/etc/krb5.conf中的正确内容。它是系统管理员提供它的工作。如果他们想要使用任何Windows域服务,用户将希望进行此更改。
如果您认为更改/etc/krb5.conf在您的环境中不可行,您可以通过设置KRB5_CONFIG环境变量来覆盖应用程序中的此位置,并自行查看此文件。如果这样做,您可能还想覆盖其他Kerberos位置,如KRB5CCNAME,以便将应用程序与任何系统范围的Kerberos设置完全隔离。
要登录并能够使用SSO,用户必须使用kinit命令。如果您愿意,您的应用可以代表用户启动此命令。