WIF STS ID3242:无法对安全令牌进行身份验证或授权

2023-12-04

当我的客户端应用程序尝试对我的服务进行身份验证时,我收到以下错误:

ID3242:无法对安全令牌进行身份验证或授权

这是客户端的配置:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
  <ws2007HttpBinding>
    <binding name="stsBinding">
      <security mode="Message">
        <message clientCredentialType="UserName"
          establishSecurityContext="false"
          negotiateServiceCredential="true"/>
      </security>
    </binding>
  </ws2007HttpBinding>
  <ws2007FederationHttpBinding>
    <binding name="echoClaimsBinding">
      <security mode="Message">
        <message>
          <claimTypeRequirements>
            <add claimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" isOptional="false"/>
          </claimTypeRequirements>
          <issuer address="http://localhost:17240/STS.svc"
                  bindingConfiguration="stsBinding"
                  binding="ws2007HttpBinding">
            <identity>
              <dns value="WCFSTS"/>
            </identity>
          </issuer>
          <issuerMetadata address="http://localhost:17240/STS.svc/Mex"></issuerMetadata>
        </message>
      </security>
    </binding>
  </ws2007FederationHttpBinding>
</bindings>
<behaviors>
  <endpointBehaviors>
    <behavior name="echoClaimsBehavior">
      <clientCredentials>
        <serviceCertificate>
          <defaultCertificate
            findValue="CN=WCFSTS"
            storeLocation="LocalMachine"
            storeName="My"
            x509FindType="FindBySubjectDistinguishedName"/>
          <authentication
            revocationMode="NoCheck"
            certificateValidationMode="None"/>
        </serviceCertificate>
      </clientCredentials>
    </behavior>
  </endpointBehaviors>
</behaviors>
<client>
  <endpoint address="http://localhost:1438/EchoClaims.svc/EchoClaims"
            binding="ws2007FederationHttpBinding"
            bindingConfiguration="echoClaimsBinding"
            contract="TestService.IEchoClaims"
            name="WS2007FederationHttpBinding_IEchoClaims"
            behaviorConfiguration="echoClaimsBehavior">
    <identity>
      <dns value="WCFServer"/>
    </identity>
  </endpoint>
</client>
</system.serviceModel>
</configuration>

这是服务的配置

<?xml version="1.0"?>
<configuration>
<configSections>
<section name="microsoft.identityModel" type="Microsoft.IdentityModel.Configuration.MicrosoftIdentityModelSection, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>

<system.web>
<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>
</system.web>

<system.serviceModel>
<services>
  <service name="WcfService1.EchoClaims"
           behaviorConfiguration="echoClaimsBehavior">

    <endpoint address=""
              contract="WcfService1.IEchoClaims"
              binding="ws2007FederationHttpBinding"
              bindingConfiguration="echoClaimsBinding"></endpoint>
    <endpoint address="mex"
           binding="mexHttpBinding"
           contract="IMetadataExchange" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="echoClaimsBehavior">

      <serviceMetadata httpGetEnabled="true" />
      <serviceCredentials>           
        <serviceCertificate 
          findValue="CN=WCFServer" 
          storeLocation="LocalMachine" 
          storeName="My" 
          x509FindType="FindBySubjectDistinguishedName" />
      </serviceCredentials>
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

<bindings>
  <ws2007FederationHttpBinding>
    <binding name="echoClaimsBinding">
      <security mode="Message">
        <message negotiateServiceCredential="true">
          <!--<issuerMetadata address="http://localhost:17240/STS.svc/mex" />-->
          <claimTypeRequirements>
            <!--Following are the claims offered by STS 'http://localhost:17240/STS.svc'. Add or uncomment claims that you require by your application and then update the federation metadata of this application.-->
            <add claimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" isOptional="false" />               
          </claimTypeRequirements>
        </message>
      </security>
    </binding>
  </ws2007FederationHttpBinding>
</bindings>
<diagnostics>
  <messageLogging logEntireMessage="true"
                  logMessagesAtServiceLevel="true"
                  logMessagesAtTransportLevel="true"></messageLogging>
</diagnostics>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
<microsoft.identityModel>
<service>
  <audienceUris mode="Never"/>        
  <issuerNameRegistry type="WcfService1.CustomIssuerNameRegistry, WcfService1"/>        
</service>
</microsoft.identityModel>
<system.diagnostics>
<sources>
  <source name="System.ServiceModel" switchValue="Warning, Error, ActivityTracing"
       propagateActivity="true">
    <listeners>
      <add name="ServiceModelTraceListener"/>
    </listeners>
  </source>
</sources>
<sharedListeners>
  <add initializeData="ecb_tracelog.svclog"
                type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
                name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
    <filter type="" />
  </add>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
</configuration>

如果有人知道如何确定身份验证失败的原因,请告诉我。我对日内瓦 STS 进行了详细跟踪,但它没有向我提供任何有关证书未经过身份验证的原因的消息。


在类似的情况下,这个论坛帖子 by 多米尼克·拜尔表明 Web 服务拒绝令牌,因此在 STS 上进行跟踪不会显示任何问题。

他建议检查该网络服务的<microsoft.identityModel><service><securityTokenHandlers><securityTokenHandlerConfiguration><audienceUris>其部分web.config,并在同一文件中打开 Microsoft.IdentityModel 跟踪源。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WIF STS ID3242:无法对安全令牌进行身份验证或授权 的相关文章

  • 如何在 IIS 中将 WCF 与 basichttpbinding only、SSL 和基本身份验证结合使用?

    是否可以仅使用 IIS 中的 SSL 和基本身份验证来设置 WCF 服务BasicHttpBinding binding 我无法使用wsHttpBinding binding 该站点托管在 IIS 7 上 并设置了以下身份验证 匿名访问 O
  • 远程服务器返回错误:NotFound。银光+WCF

    我正在尝试调用网络服务几个小时 我添加了 clientaccesspolicy xml
  • 双工服务的实例、会话和并发

    我有一个要求 服务应该每秒向客户端发送一条消息 该服务只能有一个客户端 我创建了一个双工服务 现在对该服务的实例 并发性和会话感到困惑 双工服务是否始终需要会话 会话模式 必需 InstanceContextMode 是否应始终为 PerS
  • 需要 WCF 的完整 DI 示例

    有人有完整且有效的 WCF DI 示例吗 Every http www eggheadcafe com tutorials aspnet b428fb65 08b4 45c8 97cd 47ee1a1eaf41 composing wcf
  • MSMQ、WCF 和 Flaky 服务器

    我有两个应用程序 我们称它们为 A 和 B 当前 A 使用 WCF 向 B 发送消息 A 不需要响应 B 也从不将消息发送回 A 不幸的是 运行的服务器 A 和 B 之间的网络连接不稳定 这导致 A 时不时地出现超时错误 我想使用 WCF
  • WCF服务库项目找不到对其他项目的引用

    我的解决方案中有两个项目 MyApp Domain 和 MyApp WebService MyApp WebService 是一个 WCF 服务库 我想使用 MyApp Domain 中的一些实用函数 因此 在 MyApp WebServi
  • 当一个控制台应用程序已在运行时,如何在 Visual Studio 中启动第二个控制台应用程序

    我正在研究 WCF 书中的一些示例 单个解决方案中有一个主机项目和客户端项目 两者都是控制台应用程序 主机是启动应用程序 但客户端应用程序似乎没有像书中所说的那样打开控制台 书上说 当主机运行时 运行客户端 运行 按钮已被禁用 因为它已经在
  • 使用 Web 部署在 IIS Express 上发布 WCF 服务应用程序

    我想在 IIS Express 上发布在 Visual Studio 2010 中创建的 WCF 服务应用程序 所以我使用项目 gt 发布 gt Web 部署 Service URL http localhost Site applicat
  • WCF:如何诊断故障通道?

    我正在为我的实验室进行一项更改 希望能够帮助诊断我们所看到的一些奇怪的通道故障现象 有一个测试应用程序使用 DuplexChannelFactory 连接到几个 Windows 服务 并且由于某种原因 该测试应用程序上的通道似乎出现了很多故
  • WCF 中的动态 ExpandoObject

    尝试使用枚举类型进程和动态数据的操作来 Ping Pong 我的服务 ServiceContract CallbackContract typeof iStackoverflowCallBack public interface iStac
  • 没有 ASP.NET/IIS 的 .NET Web 服务?

    我正在实现一个需要公开 Web 服务接口的服务器组件 但应用程序不需要它在 IIS 上与 ASP NET 一起运行 有没有一种直接的方法可以在不使用 ASP NET IIS 的情况下在 NET 中实现 Web 服务 我使用的是 NET 3
  • 使用 NSubstitute 模拟动作

    Web 服务的代理需要进行单元测试 而无需 显然 访问 Web 服务 这就是我想要绝育的方法 public void Invoke Action
  • 无法在 Visual Studio 2010 IDE 中添加启用 HTTPS 的 WCF 服务作为服务引用

    通过 Visual Studio 2010 IDE 添加启用 HTTPS 的 WCF 服务作为服务引用时 出现以下异常 下载 https abc cloudapp net DataService svc 时出错 请求失败 HTTP 状态为
  • 通过 WCF 提供类对象的数组或列表

    任何提供自定义类对象列表或数组的 WCF 客户端服务器示例都会对我有所帮助 但这是我到目前为止所得到的 这是我想提供的班级系统 namespace NEN Server FS Serializable public class XFS pr
  • WCF Xml 与二进制序列化的优缺点

    我知道如果我将二进制序列化与 WCF 一起使用 我就会失去互操作性 如果我愿意接受这一点 我想知道使用二进制比 Xml 是否有效率优势 如果还有我上面没有提到的其他优点和缺点 是的 可能是一个大事件 XML 序列化数据比二进制数据要大 使用
  • “无法连接到远程服务器”

    我可以从 Windows 窗体程序调用第三方供应商的 Web 服务 当我尝试从 WCF Web 服务调用相同的 Web 服务和 Web 方法以及相同的 URL 时 出现以下错误 ExportValuationPolicyNumber Exc
  • 使用 Rx 简化异步 Silverlight Web 服务请求

    我已经使用 Rx 为我的 WCF Web 服务编写了一个简化的 Silverlight 客户端库 但是我注意到有时我会丢失已完成的事件 public IObservable
  • WCF 发现根本不起作用

    我正在尝试将临时发现添加到简单的 WCF 服务客户端设置 当前通过控制台应用程序中的自托管实现 在 Windows 7 上使用 VS2010 进行调试 并执行我在在线教程中可以找到的任何操作 但发现客户端仍然什么也没找到 不用说 如果我打开
  • 无法在 Windows 8 上的 IIS 中提供 WCF 服务

    当我尝试在 Windows 8 计算机中的 IIS 上提供 WCF 服务时 出现众所周知的错误 由于扩展配置的原因 无法提供您请求的页面 如果页面是脚本 请添加处理程序 如果应下载该文件 请添加 MIME 映射 旧的解决方法是运行aspne
  • 如何在没有 ASP.NET 的情况下从 json 客户端调用 .NET AuthenticationService

    我有一个 WCF 4 服务 位于安全子文件夹中 在客户端使用 NET AuthenticationService 使用表单身份验证进行身份验证后可以访问该服务 此 WCF 服务适用于通过 json 进行通信的移动应用程序客户端 但不是 AS

随机推荐

  • 检查 UTD 参数在存储过程中是否有值

    我想检查具有某些用户定义表类型的参数是否具有值或为 NULL 但我收到以下错误 Msg 137 Level 16 State 1 Procedure SearchByWord Line 63 Batch Start Line 7 Must
  • 从 Gradle、Spring 和 DB2 开始的挑战

    我对该项目的想法是使用 Gradle 编写一个简单的 Spring 纯 java 应用程序 该应用程序将连接到 DB2 数据库并提取一些数据并在控制台上打印 首先 我使用 Eclipse Luna 创建了一个 Gradle 项目 我的挑战
  • C++ 中的重载 +=

    如果我已经重载了operator 和operator 我还需要重载吗 运算符 这样的东西可以工作 MyClass mc1 mc2 mc1 mc2 是的 您也需要定义它 然而 一个常见的技巧是定义operator 然后实施operator 就
  • 异常消息:当前应用程序配置不支持 WebSockets

    最近我升级到 Windows 2012 Standard 服务器 64 位 这样我就可以使用 Web 套接字 我已通过服务器管理器添加了角色 功能 我注意到我的 Windows 日志中有这样的消息 Event code 3005 Event
  • 如何使用 RGB 像素值绘制直方图?

    我正在netbeans平台上制作应用程序 我想画直方图 我有红色 绿色和蓝色的图像像素 那么 请有人向我询问如何使用该像素值绘制直方图 我的代码如下 其中我采用图像的红色 绿色和蓝色像素值 enter code here import ja
  • 未定义的局部变量或方法 - 使用烧杯测试 Puppet 模块

    我对这一切都很陌生 我正在尝试使用烧杯测试木偶模块 我不断得到这个 NoMethodError undefined method describe for Beaker TestCase 0x007fd6f95e6460 Users use
  • 如何在 Java 中按值(ArrayList)大小对 Map 进行排序?

    我有以下地图 Map
  • 为 Google.Apis.YouTube.v3 设置代理

    我有以下代码来调用 YouTubeService service new YouTubeService new BaseClientService Initializer ApiKey AppSettings Variables YouTu
  • docker内部和外部用户之间的混淆

    所以 我正在内部使用 apache2 构建一个 docker 容器 但我遇到权限问题 我不知道如何解决它 如果我运行没有 user 规范的容器 它运行良好 但我想外在地能够将其分配给用户并限制该用户只能读取和写入特定目录 我使用 v 映射的
  • 所有 OpenMP 任务在同一线程上运行

    我使用 OpenMP 中的任务编写了一个递归并行函数 虽然它给了我正确的答案并且运行良好 但我认为并行性存在问题 与串行解决方案相比 运行时间在我在没有任务的情况下解决的相同其他并行问题中无法扩展 当打印任务的每个线程时 它们都在线程 0
  • 打印给定 pid 的子进程 (MINIX)

    我目前正在开发一个项目 作为该项目的一部分 我需要在 MINIX 中实现系统调用 库函数 作为其中的一部分 我需要能够使用给定进程的 pid 打印其子进程列表 我想我已经找到了我需要的部分内容 但我坚持让它与给定的 pid 一起工作 str
  • Python 的 SSH 隧道自动关闭

    我需要一些关于我的程序结构的建议 我正在使用连接到外部 MySQL 数据库ssh隧道 现在它可以正常工作 我可以发出 SQL 命令并获取结果 但前提是这些命令与打开连接的函数相同 如果它们处于不同的功能 隧道会在我使用之前自动关闭 参见下面
  • GemBox 从电子表格或 Flexcel 检索计算值

    根据他们的文档 GemBox Spreadsheet可以读取和写入公式 但不能计算公式结果 当您在 MS Excel 中打开 XLS 文件时 将自动计算公式结果 因此 如果我创建一个包含一些注入值的电子表格并将其保存到磁盘 如果我在 Exc
  • 如何获取准确的拨出电话接听时间?

    我是安卓新手 我正在实现一个与来电和去电详细信息相关的应用程序 我通过使用广播接收器获取拨出电话和来电详细信息 问题是当有来电时广播接收器会上升 我拨打广播接收器拨打的电话 很好 但是当我单击绿色按钮时 拨出电话就会开始 但是 我想要接听对
  • 深拷贝和浅拷贝有什么区别?

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 深拷贝和浅拷贝有什么区别 广度与深度 考虑以对象作为根节点的引用树 Shallow 变量 A 和 B 引用不同的内存区域 当将 B 分配给 A 时 这两个变量引
  • SQL Server 2008 - 高级搜索/排序

    我需要对列进行搜索并按特定顺序对结果进行排序 搜索条件和排序顺序如下 给定搜索文本的至少 x 和至多所有字符必须匹配 结果应按开头 然后按匹配的字符数排序 和包含 然后按匹配的字符数和字母顺序排序 进行分组 例如 搜索文本 联盟A 数据库中
  • Java 在 JTextPane 上设置缩进大小

    我想设置制表符 t 的大小JTextPane宽度为 4 个空格 经过一番谷歌搜索后 我发现了一些东西 我将在这里包含我所尝试过的东西以及它们失败的原因 如何在 JEditorPane 中设置选项卡大小 JTextPane不是一个普通的文档
  • Windows Phone 7 和 System.Xml.Linq 库

    我正在尝试遵循有关 WP7 开发的教程 http mobile tutsplus com tutorials windows introduction to windows mobile 7 development 它谈论的是使用 XEle
  • TFF 加载预训练的 Keras 模型

    我的目标是从 hdf5 文件加载基本模型 它是 Keras 模型 并继续通过联合学习对其进行训练 以下是我初始化 FL 基本模型的方法 def model fn model tf keras load model path to model
  • WIF STS ID3242:无法对安全令牌进行身份验证或授权

    当我的客户端应用程序尝试对我的服务进行身份验证时 我收到以下错误 ID3242 无法对安全令牌进行身份验证或授权 这是客户端的配置