在使用带有curl进行协商的情况下覆盖kerberos服务主体

时间:2019-07-09 20:49:22

标签: curl kerberos

我有一个服务器(“ server.example.com”)代表我与IdP(“ sso.idp.com”)进行协商以获得SAML声明。在协商中使用curl时,服务主体中的域名默认为“ server.example.com”,例如HTTP/server.example.com@MYREALM.COM。

我想知道是否有可能覆盖服务主体中使用的域名。基本上,它类似于hostname override中的Python软件包requests-kerberos'initalizeClient或Node软件包kerberos'“服务”参数。我似乎找不到curl的等效选项,并且想知道是否有一个选项?我发现service name option似乎在设置服务类型(例如HTTP),但没有设置域名的方法。

基本上:

curl -v --negotiate -u : server.example.com

创建HTTP/server.example.com@MYREALM.COM的服务主体。但是,我正在寻找类似的东西:

curl -v --negotiate -u : server.example.com --service HTTP/sso.idp.com

,它将创建HTTP/sso.idp.com@MYREALM.COM的服务主体。我只想覆盖服务主体中的域名,这样我就可以生成一个授权标头以与“ sso.idp.com”进行协商。

1 个答案:

答案 0 :(得分:0)

这是实现Kerberos委派的一种非常奇怪的方法。

Curl使您可以通过相反的方式实现此目的:使用--connect-to覆盖实际的服务器地址。

curl -u: --negotiate --connect-to "sso.idp.com:443:server.example.com:443" https://sso.idp.com