Disclaimer: Please note following approach works but is totally unsupported.

Active version of Live ID STS is available at: https://dev.login.live.com/wstlogin.srf and we can get a SAML token by using standard WS-Security username token as input.

 

            var issuer = "https://dev.login.live.com/wstlogin.srf";

            var binding = new WSHttpBinding();

            binding.Security.Mode = SecurityMode.TransportWithMessageCredential;

            binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;

            binding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;

            binding.Security.Message.EstablishSecurityContext = false;

            binding.Security.Message.NegotiateServiceCredential = false;

 

 

            WSTrustClient client = new WSTrustClient(binding, new EndpointAddress(issuer),

                TrustVersion.WSTrustFeb2005, new ClientCredentials());

            client.ClientCredentials.UserName.UserName = "zamd@liveid.com";

            client.ClientCredentials.UserName.Password = "password ";

 

            var rst = new RequestSecurityToken(RequestTypeConstants.Issue);

            rst.AppliesTo = new EndpointAddress("http://zamd.net");

 

            RequestSecurityTokenResponse rstr;

            var token = client.Issue(rst, out rstr) as GenericXmlSecurityToken;