首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSPI谈判失败WSTrustChannelFactory

SSPI谈判失败WSTrustChannelFactory
EN

Stack Overflow用户
提问于 2017-09-15 15:37:23
回答 1查看 295关注 0票数 0

这一段时间以来,我一直在尝试构建一个可以调用.net web/wcf服务SP的控制台应用程序,第一步是从idP (ADFS4.0)获得一个令牌(ADFS4.0),粘贴的代码工作了一整天,在某个时候它停止了处理以下错误:

SOAP security negotiation with 'https://adfs.domain.in/adfs/services/trust/13/windowsmixed' for target 'https://adfs.domain.in/adfs/services/trust/13/windowsmixed' failed. See inner exception for more details.

内部错误是:

The Security Support Provider Interface (SSPI) negotiation failed.

NativeErrorCode: 0x80090350 -> SEC_E_DOWNGRADE_DETECTED

我尝试过/13/windows和/windowstransport以及端点。

代码语言:javascript
复制
private static GenericXmlSecurityToken RequestSecurityToken()
{
    // set up the ws-trust channel factory
    var factory = new Microsoft.IdentityModel.Protocols.WSTrust.WSTrustChannelFactory(new WindowsWSTrustBinding(
                SecurityMode.TransportWithMessageCredential), new EndpointAddress(new Uri("https://adfs.domain.in/adfs/services/trust/13/windowsmixed"), EndpointIdentity.CreateSpnIdentity("adfs@domain.in")));
    factory.TrustVersion = TrustVersion.WSTrust13;
    var rst = new RequestSecurityToken
    {
        RequestType = RequestTypes.Issue,
        KeyType = KeyTypes.Bearer,
        AppliesTo = new System.ServiceModel.EndpointAddress(endpoint_address)
    };
    // request token and return
    return factory.CreateChannel().Issue(rst) as GenericXmlSecurityToken;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-19 07:58:26

在我的例子中,由于某种原因,ADFS可以在VPN上使用,但是基于AD的身份验证位没有发生在VPN上。这就是为什么SEC_E_DOWNGRADE_DETECTED要来了。在常规的非VPN环境中,事情是好的。

另外,一旦在常规企业网络上生成SAML令牌,另一个观察就是。生成SAML令牌的后续调用正在按预期进行,甚至在VPN上也是如此。

因此,如果您看到此错误,只需检查您所在的网络是否是域(而不是公共或专用网络)的一部分,以便进行SSPI协商。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46243162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档