我在Azure中设置了我的ACS。 我创建了一个MVC 4 WebAPI项目。 我在visual studio 2012中添加了“身份和访问”。
这正在运行。但当我申请时,我得到以下内容: ID4014:未注册SecurityTokenHandler以读取安全令牌('BinarySecurityToken','http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd')
问题是我告诉ACS使用SWT而不是SAML 2.0。从我在指南中看到的关于确保一个完整的wep api,swt是要走的路。
如果我更改为SAML 2.0,则所有内容都可以在Web界面中使用。但是,当我为Windows Store(Metro)或其他客户编写客户端以从项目的WebAPI部分获取数据时,这将如何解决?
任何建议继续。我应该使用SWT,它是如何使它工作的。我应该使用SAML 2.0,然后我应该在Windows应用商店客户端中处理certnticaitno吗?
答案 0 :(得分:0)
我发现了一个nuget打包的wif.swt,它启用了swt令牌。
<microsoft.identityModel>
<service saveBootstrapTokens="true">
<audienceUris>
<!--<add value="http://traffictheory.cloudapp.net/" />-->
<add value="http://77.55.160.102:48451/" />
</audienceUris>
<issuerNameRegistry type="Microsoft.IdentityModel.Swt.SwtIssuerNameRegistry, Wif.Swt">
<trustedIssuers>
<add thumbprint="033F53598E4ED92E51C07238E36BBFF4E67ABAD2" name="https://traffictheory.accesscontrol.windows.net/" />
</trustedIssuers>
</issuerNameRegistry>
<claimsAuthenticationManager type="S_Innovations.TrafficTheory.Web.Security.TrafficTheoryClaimsAuthenticationManager, S-Innovations.TrafficTheory.Web.Security" />
<federatedAuthentication>
<cookieHandler requireSsl="false" />
<wsFederation passiveRedirectEnabled="true" issuer="https://traffictheory.accesscontrol.windows.net/v2/wsfederation" realm="http://77.55.160.102:48451/" reply="http://77.55.160.102:48451/" requireHttps="false" />
</federatedAuthentication>
<certificateValidation certificateValidationMode="None" />
<securityTokenHandlers>
<add type="Microsoft.IdentityModel.Swt.SwtSecurityTokenHandler, Wif.Swt" />
</securityTokenHandlers>
<issuerTokenResolver type="Microsoft.IdentityModel.Swt.SwtIssuerTokenResolver, Wif.Swt" />
<!--<serviceCertificate>
<certificateReference findValue="417DE8DCA4326B845C189BDE0990673433435524" storeLocation="LocalMachine" storeName="My" x509FindType="FindByThumbprint" />
</serviceCertificate>-->
</service>
</microsoft.identityModel>