在研究基于声明的安全性(或联合安全模型)主题之后.我一直在看到许多以CardSpace为例的例子.我读到的主要文章给出了一个非常好的主题解释,是微软在一个名为Zermatt的框架上的PDF.
我正在研究的基于声明的安全体系结构相当于将STS身份验证代理与STS授权代理结合使用.这样,当我创建新服务时,我需要做的就是确保该服务只接受授权代理发出的声明.如文章所述,授权代理只接受身份验证代理发出的声明.
在设置时,客户端尝试使用新服务时,必须通过身份验证代理 进行身份验证(发出经过身份验证的声明),然后获得授权 代理授权 (发布授权声明).
这一切都很好,花花公子,架构很清晰,但我没有看到如何实现STS.正如我所提到的,网络上的大多数(如果不是全部)示例都显示了如何使用CardSpace,但是当您有一个数据库备份您的身份验证方案时,这并不完全有效.
示例场景
替代文字http://img512.imageshack.us/img512/8329/claimsbasedsecurityza6.jpg
saml geneva-framework federated-identity wcf-security sts-securitytokenservice
如何在Windows XP中使用Windows Identity Foundation SDK?
.net security identity federated-identity claims-based-identity
我们有一个ADFS 2.0安装,适用于我们各种环境中的MVC应用程序.我相信它使用"被动身份验证"(我仍然习惯于正确的术语) - 如果用户未登录并且adfs将用户重定向回我们的MVC应用程序,它肯定会将用户重定向到我们的adfs代理一旦他们登录.
我们现在开始公开一些安全的Web服务,并希望利用这个相同的身份验证系统.我的理解是,我想用它ws2007FederationHttpBinding作为我的绑定来做到这一点.我相信我有我的WCF的web.config所有设置,但我的斗争现在围绕FederationMetadata.xml文件.
看一下这个文件,我看到一些显然需要改变的东西,比如entityID="http://localhost/UserServices"证书.然后有些事我不知道它们是什么,是否需要改变,例如EntityDescriptor ID="_2b510fe8-98b8......和<ds:SignatureValue>CZe5mEu19/bDNoZrY8f6C559CJ........
在哪里可以更好地了解如何为各种环境管理此文件?我有以下托管这些服务的环境,我们将以这种或那种方式进行部署:
因此,我们有一个相当简化的流程,使用转换和查找/替换某些令牌来管理不同环境中的web.config文件,因此我想对此xml文件执行相同的操作.因此,最终,我正在寻找的是在FederationMetadata.xml为各种环境管理此文件时需要进行哪些更改.
我当前的FederationMetadata.base.xml文件在下面,我相信这是正确的(我只需要名称/角色),我只需要智能地替换各种令牌,例如~RootServiceUrlTokenToReplace~,在这里:
<?xml version="1.0" encoding="utf-8"?>
<EntityDescriptor ID="~EntityDescriptorIdTokenToReplace~" entityID="http://~RootServiceUrlTokenToReplace~" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
<ds:Reference URI="#~ReferenceURITokenToReplace~">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<ds:DigestValue>~DigestValueTokenToReplace~</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>~SignatureValueTokenToReplace~</ds:SignatureValue>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>~CertificateTokenToReplace~</X509Certificate>
</X509Data>
</KeyInfo>
</ds:Signature>
<RoleDescriptor xsi:type="fed:ApplicationServiceType" protocolSupportEnumeration="http://schemas.xmlsoap.org/ws/2005/02/trust http://docs.oasis-open.org/ws-sx/ws-trust/200512" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fed="http://docs.oasis-open.org/wsfed/federation/200706">
<KeyDescriptor use="encryption">
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<X509Data> …Run Code Online (Sandbox Code Playgroud) 这个问题在发布后似乎随机发生. 该网站将正常工作,然后bam,我得到这个错误解析webconfig.我只是重新发布,它再次正常工作.发布时,我选中了该框以删除现有文件,因此不应该存在垃圾.
这是一个使用.net 4.5和Azure访问控制服务(ACS)与Yahoo!集成的MVC4项目.从Yahoo重定向时会发生此错误.这种方式每次都会发生,但我发现了一个帖子(当然我现在找不到),其中4.5.1 Identity和Access Visual Studio集成存在错误.我去了以前的版本,现在只是有时候.
ID8030:无法解析'type'属性的值.
验证'<issuerNameRegistry type="System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry"><authority name="[my authority]"><keys><add thumbprint="[print]" /></keys><validIssuers><add name="[issuer]" /></validIssuers></authority></issuerNameRegistry>'元素的type属性是否正确.
在上面的错误消息中,我已替换此帖子的括号([])中的项目.
这是堆栈跟踪:
[TypeLoadException: ID8030: The value of the 'type' property could not be parsed. *** element is correct.]
System.IdentityModel.Configuration.TypeResolveHelper.Resolve(ConfigurationElementInterceptor customTypeElement, Type customType) +602659
System.IdentityModel.Configuration.IdentityConfiguration.GetIssuerNameRegistry(IssuerNameRegistryElement element) +114
System.IdentityModel.Configuration.IdentityConfiguration.LoadHandlerConfiguration(IdentityConfigurationElement element) +841
System.IdentityModel.Configuration.IdentityConfiguration.LoadConfiguration(IdentityConfigurationElement element) +117
System.IdentityModel.Configuration.IdentityConfiguration..ctor(String identityConfigurationName) +180
System.IdentityModel.Services.Configuration.FederationConfiguration.LoadConfiguration(FederationConfigurationElement element) +392
System.IdentityModel.Services.Configuration.FederationConfiguration..ctor(Boolean loadConfig) +94
System.IdentityModel.Services.FederatedAuthentication.CreateFederationConfiguration() +71
System.IdentityModel.Services.FederatedAuthentication.get_FederationConfiguration() +85
System.IdentityModel.Services.HttpModuleBase.Init(HttpApplication context) +56
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +418
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr …Run Code Online (Sandbox Code Playgroud) 我有一个SaaS Web应用程序,可以满足多个教育机构的需求.所有客户端都托管在同一个应用程序/数据库中.该应用程序目前用C#编写,用于ASP.Net 4 Web窗体.
目前,我的应用程序使用本地/本机数据库进行用户身份验证/授权
我们的客户要求我们支持单点登录,其中客户端是身份验证提供者,而我的应用程序是消费者.
问题是客户端通过不同的协议/机制(如Shibboleth和OpenID Connect)要求SSO.这意味着我需要/应该创建一个适用于所有这些或至少可扩展的解决方案.
我遇到了Thinktecture的IdentityServer,我认为它可以抽象出我的客户使用的各种SSO机制,并将我的应用理解的基于声明的身份令牌返回给我的应用程序.
尽管我对这个概念感到苦苦挣扎.这是否意味着我的应用程序将所有身份验证请求重定向到IdentityServer,让IdentityServer来回处理OpenID Connect,然后从IdentityServer接收一个令牌以获取有关用户的信息?身份服务器如何知道用户的领域(即,它知道哪个客户端身份验证提供程序将用户发送到)?IdentityServer是否需要在我的应用程序的本地/本机数据库中验证用户的存在?IdentityServer可以同时处理SSO和本地登录吗?
是一个单独的身份服务器的方式去?看起来好像是,允许我的应用程序与一个点(身份服务器)集成.但是,Thinktecture的IdentityServer上没有很多文档,除了如何配置它.ADFS可能会提供类似的解决方案,但大多数示例都与ADFS和Azure有关.
最后,我假设我仍然会维护有关每个用户的本地/本机授权数据,因为第三方身份验证提供程序不可能知道我的应用程序的特定授权需求.
有什么想法或建议吗?
c# asp.net federated-identity single-sign-on thinktecture-ident-server
我们是一家服务提供商,其SAML启用了我们的应用程序,允许IdP为我们验证用户身份.确保每个人都在同一页面上
有关联合身份的更多信息,请访问:http://developer.okta.com/docs/guides/saml_guidance.html
我们目前只使用Okta作为IdP,但遇到了需要与单独的IdP集成的情况.我们希望我们的应用程序只与Okta通信,并让Okta处理与这个单独的IdP交谈并验证他们的断言.由于我们的特定用例,我们的应用程序知道应该使用什么基础IdP,因此不需要IdP发现.
我们想配置Okta,以便身份验证流程如下:
我们的应用程序将用户重定向到Okta中的端点,指示使用基础IdP进行身份验证
Okta和底层IdP做了认证用户和验证身份验证所需的一切
我们的应用程序获得一个响应(通过HTTP-POST)到我们的ACS终端验证用户,由Okta签名
从最终用户的角度来看,他们导航到service-provider.com,通过Okta重定向到underlying-idp.com,执行必要的身份验证,然后重定向回service-provider.com.最终用户不知道中间的Okta层,可能的例外是在重定向期间短暂出现在浏览器地址栏中的Okta URL.
到目前为止,我们已经能够在我们的Okta实例中设置入站SAML,以便可以通过底层IdP在Okta中对用户进行身份验证.我们的应用程序重定向到带有SAMLRequest的Inbound SAML配置页面中给出的端点,但这会将用户带到Okta仪表板,因为该链接仅用于验证Okta中的用户,而不是使用Okta对SP的用户进行身份验证.查看我们的相关配置:
我们如何配置Okta以便我们的用例可用?理想情况下,我们希望Okta充当中间人或调解员,检查并传递SAML请求/断言.具体来说,我们不需要对这些用户进行必要的Okta用户认证; 我们只需要Okta断言用户是他们所说的基于IdP的基础断言.
我使用我公司的 Active Directory 账户登录 AWS。我们使用联合登录,描述在这里:
联合用户和角色
联合用户不像 IAM 用户那样在您的 AWS 账户中拥有永久身份。要将权限分配给联合用户,您可以创建一个称为角色的实体并为该角色定义权限。当联合用户登录 AWS 时,该用户与角色关联并被授予角色中定义的权限。有关更多信息,请参阅为第三方身份提供者(联合)创建角色。
我的公司有一个安全令牌服务 (STS),它是 SAML 提供商。
我可以使用它登录 AWS 管理控制台,但我是否也可以使用联合登录名登录 AWS CLI?
我有一个用例,我需要限制联合用户只启动一个EC2实例,是否有任何解决方法来在策略中设置这些东西.
我正在尝试通过联盟使用 Google 作为我的应用程序的 IDP。
对于用户身份验证部分,我使用 openID 连接流程。
以下步骤已经完成。
问题是我想将用户角色添加到已在 google 中注册的用户,并获取用户角色作为从 google 检索的令牌中的声明。
基本上我想根据用户角色向应用程序添加基于角色的身份验证。
那么如何创建用户角色并将其分配给 Google 用户,以及如何将它们作为 JWT 令牌中的声明来获取?
google-apps google-authentication federated-identity jwt openid-connect
我正在尝试使用 AWS Amplify 联合登录来实现基于 React 的 chrome 扩展。
我已经发现只要我使用 AWS Cognito 的标准身份验证,本教程就可以很好地工作。但是,当我尝试实现此处描述的联合登录时,我只收到以下错误。
当将 chrome.identity.launchWebAuthFlow 与 Cognito 一起使用时,一切正常,我收到一个令牌并可以对其进行解码。
关于如何解决这个问题有什么最佳实践或想法吗?
federated-identity google-chrome-extension reactjs amazon-cognito aws-amplify
.net ×1
acs ×1
adfs2.0 ×1
amazon-iam ×1
asp.net ×1
aws-amplify ×1
aws-cli ×1
azure ×1
c# ×1
google-apps ×1
identity ×1
jwt ×1
okta ×1
reactjs ×1
saml ×1
saml-2.0 ×1
security ×1
wcf ×1
wcf-security ×1
web-config ×1
web-services ×1