标签: wif

将Identity Foundation与WCF Web Api一起使用

我有一堆网站设置相同,使用WIF身份提供商.我最近将业务逻辑从Web应用程序转移到Web Api服务应用程序中.它在与其他站点不同的虚拟目录中运行.想法是浏览器将数据放入页面AJAXy.

我遇到的问题是保护Web API.似乎WIF单点登录对传统网站没有效果.用户可以访问一个网站,重定向到身份提供商,登录并重定向回他们想要的网站.当他们访问另一个站点时,他们也会被重定向回身份提供者,但无需登录,因为FEDAUTH cookie存在,因此他们会自动进行身份验证并重定向到第二个站点.

这对于Web Api场景不起作用,因为当浏览器对它进行GET时,Api将返回重定向到调用javascript时应该期待JSON.

甚至可以用WIF保护Web Api吗?

asp.net ajax wcf identity wif

3
推荐指数
1
解决办法
2086
查看次数

AD FS 2.0和WIF,MSIS7001错误

我安装了AD FS 2.0,我在另一台域外安装了WIF和VS2010.

我创建了一个ASP.NET MVC 3应用程序,并通过Add STS Reference向导进行配置,它从我的AD FS下载了FederationMetadata.xml.

我在AD FS中添加了依赖方信任,将标识符指定给我的MVC应用程序的URL(http:// localhost:16034 /),并创建了一个声明规则,即传递或过滤传入声明,带有传入声明类型是Windows帐户名称.

我还在WS-Federation的RP中添加了一个端点,URL是https://192.168.56.101/adfs/ls/,这是我的AD FS IP地址.

然后,当我启动网站时,它被重定向到AD FS,这是https://192.168.56.101/adfs/ls/?wa=XXXX&wtrealm=XXXXX.但最后我得到一个错误页面说该页面错误,带有参考代码.

我检查了AD FS机器,发现错误是

MSIS7001:未找到被动协议上下文或无效.如果上下文存储在cookie中,则客户端提供的cookie无效.确保客户端浏览器配置为接受来自此网站的cookie并重试此请求.

但问题是,当我使用Fiddler时,我可以看到我的HTTP请求使用的cookie如MSISAuth = XXXXX MSISAuth1 = XXXXX MSISAuthenticated XXXXX MSISLoopDetectionCookit XXXXX

我做错了什么?

asp.net-mvc wif adfs2.0

3
推荐指数
1
解决办法
3052
查看次数

无法序列化Saml2AssertionKeyIdentifierClause

我正在尝试整合一个声明感知的WCF服务和客户端.

我正在使用thinktecture Identity Server,我通过查看"使用带有WCF/SOAP的令牌"示例将控制台客户端放在一起:

var token = GetSecurityToken();

var binding =
    new WS2007FederationHttpBinding(
        WSFederationHttpSecurityMode.TransportWithMessageCredential);
binding.Security.Message.EstablishSecurityContext = false;

var factory =
    new ChannelFactory<IService1>(
        binding,
        new EndpointAddress("https://localhost:44301/Service1.svc"));
factory.Credentials.SupportInteractive = false;

factory.ConfigureChannelFactory();

var service = factory.CreateChannelWithIssuedToken(token);
var result = service.GetData(42);
Run Code Online (Sandbox Code Playgroud)

我有(看起来像什么)来自STS的有效令牌.

但是,它在调用中引发异常GetData,如下所示:

序列化安全密钥标识符时出错.有关更多详细信息,请参阅内部异常.

内部异常如下:

令牌序列化程序无法序列化"System.IdentityModel.Tokens.Saml2AssertionKeyIdentifierClause".如果这是自定义类型,则必须提供自定义序列化程序.

我能找到的这个问题唯一提到的就是这个问题在MSDN论坛上,但这只是略有关联.

查看调试器,似乎端点行为包括(最终)Saml2SecurityTokenHandler,其他链接暗示的就是所需的全部内容.

我错过了什么?

wif thinktecture-ident-server

3
推荐指数
1
解决办法
2416
查看次数

尝试将WIF 4.0自定义STS(从项目模板)转换为使用.NET 4.5

我已经使用最新WIF SDK(适用于.NET 4.0)附带的被动和活动案例的项目模板成功创建了一个可用的自定义STS.一切都按预期工作.

我现在正在尝试将我的Web应用程序和服务升级到.NET 4.5,包括我的自定义STS.我已经能够将Microsoft.IdentityModel.xxx中的所有命名空间/类映射到框架中内置的新命名空间/类,但有一个例外--WSTrustServiceHostFactory.

该类似乎不再存在,我无法弄清楚如何替换它提供的功能.即,从以下链接:http: //msdn.microsoft.com/en-us/library/microsoft.identitymodel.protocols.wstrust.wstrustservicehostfactory

<%@ServiceHostLanguage="C#"Debug="true"Service="XXX.XXX.MyActiveSTSConfiguration"Factory="Microsoft.IdentityModel.Protocols.WSTrust.WSTrustServiceHostFactory"%>
Run Code Online (Sandbox Code Playgroud)

升级到4.5后,我的被动STS目前正在工作.我需要找到一个使用4.5框架实例化活动SecurityTokenService的适当/推荐方法(理想情况下,对于SDK项目模板中的大多数配置使用web.config).任何建议表示赞赏.

wif .net-4.5

3
推荐指数
1
解决办法
1980
查看次数

WCF 服务如何知道使用什么证书来解密传入的安全令牌?

我正在使用 .NET 4.5 和基于令牌的安全性来实现 WCF 服务。在客户端,我使用myfact.CreateChannelWithIssuedToken()之前从 STS 检索到的令牌进行调用,当我使用此通道调用服务时,我收到以下错误(在 WCF 服务跟踪中):

Cannot resolve KeyInfo for decryption: KeyInfo 'SecurityKeyIdentifier
    (
    IsReadOnly = False,
    Count = 1,
    Clause[0] = EncryptedKeyIdentifierClause(EncryptedKey = qDJDOHUxLxDP8/5baRbY6LrnIX2cYLGwC8b9xDQbEfLsYhcowtszecfWK93dFQHBNV+COHSZpKapJlzrbi12QlObuhfpB08vIxrgXCLg69w4PfAq/jzJcK3N16GHHADSE6XT0KVBXQbcwJqyrELLGAc9ve3cnn52EDg6rkVKBNg=, Method 'http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p')
    ) ', available tokens 'System.ServiceModel.Security.AggregateSecurityHeaderTokenResolver'.
Run Code Online (Sandbox Code Playgroud)

我怀疑这是因为该服务无法解密传入的安全令牌,但我不知道为什么会这样。该证书位于 LocalMachine\My 存储中,并具有关联的私钥。

WCF 如何找到必要的证书,以及为什么在我的情况下无法找到它?

security service wcf token wif

3
推荐指数
1
解决办法
1774
查看次数

ClaimsAuthorizationManager问题

我使用自定义ClaimsAuthorizationManager在MVC中进行授权,但我遇到了一个问题.

  • 即使我只是在CheckAccess方法中返回'true',所有文件/图像也会被500运行时错误阻止,因为:

异常信息:异常类型:NotSupportedException异常消息:ID1075:如果没有当前主体(HttpContext.Current.User)作为ClaimsPrincipal,则不能使用ClaimsAuthorizationModule.在System.IdentityModel.Services.ClaimsAuthorizationModule.Authorize()

我没有在应用程序的早期更改有关Current Principal的任何内容......想法?我很难过,并且正在寻找那个没有发现任何错误的错误......


<system.webServer>    
    <modules>      
      ...
      <add name="ClaimsAuthorizationModule" type="System.IdentityModel.Services.ClaimsAuthorizationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    </modules>
</system.webServer>


  <system.identityModel>
    <identityConfiguration>
      <claimsAuthorizationManager type="NamespaceFun.CustomAuthorizationManager, NamespaceFun" >
    <policy resource="http://localhost:52606/" action="GET">
    </policy>
      </claimsAuthorizationManager>
      ...
    </identityConfiguration>
   </system.identityModel>


public class CustomAuthorizationManager : ClaimsAuthorizationManager
{      
    public override bool CheckAccess(AuthorizationContext context)
    {   
        return true;            
    }       
}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc authorization wif

3
推荐指数
1
解决办法
4038
查看次数

如何将 federationConfiguration 移出 web.config 并移至某些自定义配置文件并通过代码动态加载它

我在 web.config 中有我的配置,它工作正常。

  <configuration>
  <system.identityModel.services>
    <federationConfiguration>
....
 </federationConfiguration>
  </system.identityModel.services>
</configuration>
Run Code Online (Sandbox Code Playgroud)

如何将它从 web.config 移到自定义配置文件并从代码加载?

我想使用此配置的相同结构,以便在必须更改此配置文件时不必更改代码中的任何内容。

federated-identity claims-based-identity wif ws-federation

3
推荐指数
1
解决办法
1529
查看次数

将 ADFS 与 ASP.NET Web 应用程序集成的最简单方法

我有一个简单的 2 页 ASP.NET 应用程序,作为“天蓝色网站”托管。我想通过与我公司的 ADFS 集成来确保此应用程序的安全。将此应用程序与 ADFS 集成的最简单方法是什么?如果没有必要,我不想参加 ACS。看起来可以让 asp.net 应用程序使用 WIF 直接与 adfs 对话。有人可以确认这是否有效并分享任何指导以使其正常工作吗?

asp.net adfs azure wif

3
推荐指数
1
解决办法
5983
查看次数

有人真的使用Active Directory联合身份验证服务吗?这是一项值得投资的技术吗?

更一般地说,谁在Windows平台上成功使用WIF/ADFS/SSO,是否值得实施,它将成为持久技术的可能性有多大?

从表面上看,通过阅读有关该主题的一些白皮书(PDF),文章书籍,这似乎是一个完美的解决方案 - 特别是对于拥有内部网站的公司,该网站向外部用户和合作伙伴公开某种程度的功能.好吧(或计划将来).但它听起来几乎过于完美.我所获得的大部分信息都来自微软自己.

我想我的具体问题是:

  • 这是一项持久的技术,值得投资(特别是对于规模较小(<50 ppl)的公司)?
  • 是否有任何主要公司正在积极使用这个?
  • 如果我们希望其他人为其公司作为受信任的发行人提供身份验证,那么合作伙伴愿意建立STS的可能性有多大?这里会有很多推迟吗?
  • 这最终会成为配置噩梦吗?
  • 在决定是否实施时,是否还有其他陷阱需要注意?

security authentication adfs wif single-sign-on

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

WSFederationAuthenticationModule v/s SessionAuthenticationModule

根据文档,这两个模块都将用于创建IClaimsPrincipal的实例.我不明白为什么WIF懒得使用2个HttpModules而不是一个?对不起,我是WIF新手

asp.net wif

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