标签: sts-securitytokenservice

错误 - SignInResponse消息只能在当前Web应用程序--MVC 2.0应用程序中重定向

我有一个情况,我们有一个MVC 2应用程序(我尝试使用基本的MVC 2应用程序,没有任何额外的东西,仍然是同样的问题),并使用adfs 2来验证我的用户.

所以..现在我进入我的应用程序,我得到以下.. ID3206:SignInResponse消息可能只在当前Web应用程序中重定向:'/ [app]'是不允许的.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.异常详细信息:Microsoft.IdentityModel.Protocols.FederationException:ID3206:SignInResponse消息只能在当前Web应用程序中重定向:不允许使用'/ [app]'.

我已经阅读了大部分博客,并发布到一个..

    <federatedAuthentication>
            <wsFederation passiveRedirectEnabled="true" issuer="https://auth.[domain]/adfs/ls/" realm="https://[development domain]/[app]/" requireHttps="true" />
            <cookieHandler requireSsl="true" />
          </federatedAuthentication>
<audienceUris>
    <add value="https://[development domain]/[app]/" />
  </audienceUris>
Run Code Online (Sandbox Code Playgroud)
  1. 我对领域和观众有一个尾随的斜线.
  2. 我已将他建议的内容添加到Application_BeginRequest中 - 然后我将代码复制到[开发域],就像证书所在的那样..它只是陷入了无限循环.
  3. 我还检查了日内瓦服务器上的依赖方..标识符和端点(POST)都是https:// [开发域名]/[app]/ - 再次使用尾部斜杠

我认为这是一个MVC应用程序的问题,我已经在default.aspx页面创建了许多Claims Aware网站并获得了我的声明等.我的想法是,与MVC应用程序有关的路由以某种方式将其错误地发布?

任何帮助真的有点像我正在看这个安静一段时间现在无济于事..

Ĵ

c# asp.net-mvc federated-identity adfs2.0 sts-securitytokenservice

36
推荐指数
4
解决办法
3万
查看次数

从STS API返回的AWS_SESSION_TOKEN有什么功能?

aws sts assume-role返回三个字段作为颁发的临时安全凭证。

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_SESSION_TOKEN

前两个字段与用户的Access Key格式相同,但第三个字段AWS_SESSION_TOKEN是临时凭证的特殊字段。

我有两个问题:

  • 如果AWS_SESSION_TOKEN要表示/编码临时有效性,为什么我们还需要前两个字段(因为过期后,我们无论如何都需要获取另一个AWS_SESSION_TOKEN)?
  • 如果我的客户端调用 STS API 两次,在从 返回的两个响应之间aws sts assume-role,AWS_ACCESS_KEY_ID 是否会相同?

amazon-web-services sts-securitytokenservice amazon-iam aws-sts

9
推荐指数
1
解决办法
1万
查看次数

使用STS和WCF遇到不安全或错误安全的故障异常问题

我正在使用WIF和STS提供商(所有使用开箱即用的Microsoft代码和示例)保护的几个WCF服务.这些服务都是使用.NET 3.5构建的,并且最近都已更新到.NET 4.0.与服务关联的所有 .dll也已更新为4.0.在我更新框架版本之前,这些服务已按原样运行多年.

现在问题是当对由STS WCF服务保护的WCF服务进行调用时,在将令牌传递回调用STS保护的WCF服务的客户端应用程序之后会产生错误:

从另一方收到了无担保或不正确安全的故障.请参阅内部FaultException以获取故障代码和详细信息.

HResult -2146233087

{"在处理邮件中的安全令牌时发生错误."}

服务器堆栈跟踪:在System.ServiceModel.Channels.SecurityChannelFactory 1.SecurityRequestChannel.ProcessReply(Message reply, SecurityProtocolCorrelationState correlationState, TimeSpan timeout) at System.ServiceModel.Channels.SecurityChannelFactory1.SecurityRequestChannel.Request(消息消息,时间跨度超时)在System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.DoOperation(SecuritySessionOperation操作,目标的EndpointAddress,经由开放的,SecurityToken currentToken,时间跨度超时) System.ServiceModel处的System.ServiceModel.SecuritySessionSecurityTokenProvider.GetTokenCore(TimeSpan超时)处于System.ServiceModel.Security上的System.ServiceModel.SecuritySessionClientSettings`1.ClientSecuritySessionChannel.OnOpen(TimeSpan timeout)的System.IdentityModel.Selectors.SecurityTokenProvider.GetToken(TimeSpan超时) .Channels.CommunicationObject.Open(时间跨度超时)在System.ServiceModel.Channels.ServiceChannel.OnOpen(时间跨度超时)
在System.ServiceModel.Channels.CommunicationObject.Open(时间跨度超时)在System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System .ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel chan NEL,时间跨度超时)在System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(时间跨度超时,CallOnceManager级联)在System.ServiceModel.Channels.ServiceChannel.EnsureOpened(时间跨度超时)在System.ServiceModel.Channels.ServiceChannel.Call(字符串动作,布尔单向,ProxyOperationRuntime操作,对象[]项,在System.ServiceModel.Channels.ServiceChannel.Call(字符串动作,布尔单向,ProxyOperationRuntime操作对象[]奏,时间跨度超时),对象[]项,对象[]奏)在System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage包括methodCall,ProxyOperationRuntime操作)在System.ServiceModel.Channels.ServiceChannelProxy.Invoke(即时聊天消息)

在异常重新抛出[0]:在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(即时聊天reqMsg,即时聊天retMsg)处MyProject.IMyService System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&MSGDATA,的Int32类型). GetInfo()位于c:\ Projects\Proxy.cs中的MyProject.Proxy.GetInfo():第36行

深入挖掘也表明:

InvalidSecurityToken作为InnerException.Code.Subcode.Name属性值.

所以我看了下面的内容,这些都暗示了系统上的时钟问题,但没有一个有效:

http://blogs.msdn.com/b/dhrubach/archive/2009/12/14/9936037.aspx
从另一方收到了一份不安全或不正确安全的故障.(使用SAML时)
http:// blogs. msdn.com/b/xiaowen/archive/2009/03/26/tip-add-a-clock-skew-to-prevent-some-security-faults.aspx?Redirected=true

我已经在这些服务中附加了调试器并尝试遍历代码,但我找不到罪魁祸首.有谁知道我可能会对此感到错误?

编辑:有趣的是STS服务中WIF 的艰难部分正在进行身份验证工作!我打开了日志记录并捕获了以下内容:

Service authorization succeeded.  
Service: http:// localhost:4068 /MyID/MyID.svc  
Action: http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue  
ClientIdentity: Domain\allen; S-1-5-21-1234567890-1234567895-0987654321-45678 
AuthorizationContext: uuid-22fad22a-22fe-123c-9b69-a22c23f569ce-99 
ActivityId: <null>  
ServiceAuthorizationManager: <default>
Run Code Online (Sandbox Code Playgroud)

我还打开了WCF日志记录.config来查看.svc文件,并且它们没有产生任何错误信息,指出了问题.这就像STS说:"嘿,你经过身份验证,我们通过你并生成令牌,现在我们已经完成了!" 看来调用客户端不喜欢令牌.然而,这已经成功了,直到我改变了框架版本.根据我的知识,从3.5 - > 4.0没有任何重大的WIF变化,而是在4.5中将WIF集成到框架中的重大变化.

因此,所有授权都有效,只是客户端认为令牌被接受存在问题?

wcf wif sts-securitytokenservice

8
推荐指数
1
解决办法
2174
查看次数

WCF使用WS-Trust与Axis2互操作

我们正在尝试使用STS发布的SAML令牌让WCF和Java相互通信.尽管双方都遵守标准,WS-Security,WS-Trust,WS-Policy等,但它们似乎没有相互通信,而且其中一个会抛出神秘异常或忽略安全标头.

我们在MS端使用.NET 3.5,WCF Federation绑定,在java端使用Axis2/Rampart/Rahas.

有没有人能够做到这一点?

java wcf interop saml sts-securitytokenservice

7
推荐指数
1
解决办法
4484
查看次数

实现基于声明的安全性(WCF/ASP.NET)

在研究基于声明的安全性(或联合安全模型)主题之后.我一直在看到许多以CardSpace为例的例子.我读到的主要文章给出了一个非常好的主题解释,是微软在一个名为Zermatt的框架上的PDF.

我正在研究的基于声明的安全体系结构相当于将STS身份验证代理与STS授权代理结合使用.这样,当我创建新服务时,我需要做的就是确保该服务只接受授权代理发出的声明.如文章所述,授权代理只接受身份验证代理发出的声明.

在设置时,客户端尝试使用新服务时,必须通过身份验证代理 进行身份验证(发出经过身份验证的声明),然后获得授权 代理授权 (发布授权声明).

这一切都很好,花花公子,架构很清晰,但我没有看到如何实现STS.正如我所提到的,网络上的大多数(如果不是全部)示例都显示了如何使用CardSpace,但是当您有一个数据库备份您的身份验证方案时,这并不完全有效.

示例场景

替代文字http://img512.imageshack.us/img512/8329/claimsbasedsecurityza6.jpg

saml geneva-framework federated-identity wcf-security sts-securitytokenservice

6
推荐指数
1
解决办法
9417
查看次数

WIF是使用iPhone保护WCF 4.0 Restful服务的好选择

我有一个项目需要向iphone/ipad客户端公开WCF restful服务.WCF工作,现在我需要使用用户名和密码来保护它.

出于某种原因,我有点不愿意使用CustomBasicAuth

到目前为止,Oauth在WCF世界中也不理想,你必须创建包装来做它周围的工作.如果我错了,请纠正我.

现在,我正在查看Windows Identification Foundation.说实话,这看起来像一个聪明的方式,但缺乏文档.

有两件事需要考虑:

  1. 实现必须是iPhone友好的.(不只是在.net世界中使用)

  2. 实施需要轻松部署到云(天蓝色)

我想知道你会选择哪个选项,选择它的原因是什么.任何链接或参考将不胜感激.

iphone wcf restful-authentication wif sts-securitytokenservice

6
推荐指数
1
解决办法
1581
查看次数

为什么我的STS客户端出现此错误?"无法解析'type'属性的值.验证'issuerNameRegistry的type属性..."

我经常遇到这个错误,我的努力没有任何结果.错误:

ID8030:无法解析'type'属性的值.验证'issuerNameRegistry type ="Webapp1.TrustedIssuerNameRegistry,webapp1"元素的type属性是否正确.

这是我的TrustedIssuerNameRegistry类:

    namespace Webapp1
{
    public class TrustedIssuerNameRegistery : IssuerNameRegistry
    {
        private string issuerName = string.Empty;

        public override string GetIssuerName(SecurityToken securityToken)
        {
            if (securityToken != null)
            {
                X509SecurityToken x509Cert = securityToken as X509SecurityToken;
                if (x509Cert != null && x509Cert.Certificate.SubjectName.Name == "CN=busta-ip1sts.com")
                {
                    issuerName = x509Cert.Certificate.SubjectName.Name;
                }
            }
            if (string.IsNullOrEmpty(issuerName))
            {
                throw new SecurityTokenException("Untrusted issuer.");
            }

            return issuerName;
        }

        public override string GetIssuerName(System.IdentityModel.Tokens.SecurityToken securityToken,
                                             string requestedIssuerName)
        {
            return base.GetIssuerName(securityToken, requestedIssuerName);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的web.config配置:

  <system.identityModel>
<identityConfiguration>
  <certificateValidation …
Run Code Online (Sandbox Code Playgroud)

c# asp.net claims-based-identity wif sts-securitytokenservice

6
推荐指数
1
解决办法
5719
查看次数

使用Windows身份基础和mvc到期声明

我有一个非常基本的应用程序,正确地重定向到我的STS,并在成功验证后再次返回.

有几个方面我目前不确定它们是如何工作的,并且希望能有一些亮点.

1)你如何使令牌中的声明失效,例如你需要修改某人的声明,但因为令牌仍然有效,重发不会发生10分钟.

2)如何从身份验证服务注销,也退出发布站点.您在应用程序中单击注销,然后再调用 WSFederationAuthenticationModule.FederatedSignOut(new Uri(s), null);

但是,当用户单击指向受保护资源的链接时,它会自动重定向到STS并将用户重新登录.

我确信这些都是简单的问题而且我在某个地方错过了这一点,但任何帮助都会非常感激.

.net identity wif sts-securitytokenservice

5
推荐指数
1
解决办法
1061
查看次数

SAML令牌大小和REST

我们正在为基于REST的服务实现STS(基于声明的身份验证).当我们决定创建REST服务(使用JSON)时,许多原因之一就是网络占用空间小.使用STS,SAML令牌只有少数声称SAML大小变为几K字节.对于大多数REST调用,我们没有返回对象列表,响应大小低100s字节,对于那些调用,这个令牌似乎过多的开销.你如何在你的项目中处理这个问题?

saml claims-based-identity wif sts-securitytokenservice

5
推荐指数
1
解决办法
2437
查看次数

使用安全令牌服务时的身份验证

我创建了一个安全令牌服务(STS),一个引用STS的服务和一个示例桌面应用程序.

当使用Windows身份验证和Message安全性时,这可以正常工作,从STS检索令牌并成功调用服务方法.该服务返回一个包含当前用户标识的字符串,该标识符返回我的AD用户名.

但是我要求对数据库而不是AD进行身份验证.我试过创建一个CustomUserNameValidator(在STS中,这是正确的位置吗?)并在web.config中引用它.然后,我提供如下所示的凭据.

SampleServiceReference.SampleServiceClient client = new SampleServiceReference.SampleServiceClient(); client.ClientCredentials.UserName.UserName = "alex"; client.ClientCredentials.UserName.Password = "pass";

我相信证书设置正确(全部使用'localhost'),但是在调用服务时我收到以下异常:

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

无论我尝试什么似乎都失败了.我所描述的甚至可能吗?服务客户端是否也将客户端凭据传递给STS,或者我完全误解了这里发生的事情?

这个stackoverflow问题是类似的,但我已经检查了受众URL,似乎没问题.WIF STS ID3242

有没有人对如何在使用STS时实现自定义身份验证有任何建议?

wcf wif sts-securitytokenservice

5
推荐指数
1
解决办法
2万
查看次数