标签: federation

如何为ADFS 2.0的"依赖方信任"和"声明提供程序信任"创建联合元数据XML

我们的一个Web应用程序希望与ADFS 2.0服务器连接以获取凭据令牌并基于此检查用户角色.ADFS服务器管理员要求我们为他们提供联合元数据XML文件,以便他们创建信赖方信任.我用谷歌搜索,只找到如何使用URL下载ADFS服务器的联合元数据XML - https:// [adfs服务器名称] /federationmetadata/2007-06/federationmetadata.xml但是找不到任何创建联合元数据XML的指南创建" 信赖方信任 "和" 索赔提供商信托 ".是否有用于创建这些元数据文件的工具?请分享一些如何创建的想法.

谢谢

回答我自己的问题:

我在http://www.microsoft.com/en-ca/download/details.aspx?id=4451上的WindowsIdentityFoundation-SDK-4.0中找到了联合实用程序工具.

metadata federation adfs2.0

21
推荐指数
2
解决办法
8万
查看次数

RabbitMQ RPC跨多个rabbitMQ实例

我有三个客户端,每个客户端都有自己的RabbitMQ实例,我有一个应用程序(让我们称之为appA),它有自己的RabbitMQ实例,三个客户端应用程序(app1,app2,app3)想要在appA上使用服务.

appA上的服务需要RPC通信,app1,app2和app3每个都有一个booking.request队列和一个booking.response队列.

在此输入图像描述

使用铲子插件,我可以将所有booking.request消息从app1-3转发到appA:

Shovel1 
virtualHost=appA, 
name=booking-request-shovel, 
sourceURI=amqp://userForApp1:password@app1-server/vhostForApp1
queue=booking.request
destinationURI=amqp://userForAppA:password@appA-server/vhostForAppA
queue=booking.request

setup another shovel to get booking requests from app2 and app3 to appA in the same way as above.
Run Code Online (Sandbox Code Playgroud)

现在appA将响应预订请求.响应队列,我需要在rabbitMQ-appA上的预订响应消息回到app1,app2或app3上的正确booking.response队列,但不是所有人 - 如何在rabbitMQ-appA上设置一个铲子/联合队列,它会将响应转发回正确的rabbitMQ(app1,app2,app3),这些兔子期望在他们自己的booking.response队列中得到响应?

所有这些应用程序都使用spring-amqp(如果相关的话)另外,我可以在Spring中设置一个rabbitMQ模板,它可以监听多个rabbitMQ队列,并从每个队列中消耗掉.

从文档中,这是典型的消费者的样子:

<rabbit:listener-container connection-factory="rabbitConnectionFactory">
    <rabbit:listener queues="some.queue" ref="somePojo" method="handle"/>
</rabbit:listener-container>
Run Code Online (Sandbox Code Playgroud)

是否可以指定多个连接工厂,即使连接工厂属于同一个RabbitMQ实例,也只是指定不同的vhost:

在此输入图像描述

更新:

基于Josh的回答,我有多个连接工厂:

 <rabbit:connection-factory
                id="connectionFactory1"
                port="${rabbit.port1}"
                virtual-host="${rabbit.virtual1}"
                host="${rabbit.host1}"
                username="${rabbit.username1}"
                password="${rabbit.password1}"
                connection-factory="nativeConnectionFactory" />

 <rabbit:connection-factory
                id="connectionFactory2"
                port="${rabbit.port2}"
                virtual-host="${rabbit.virtual2}"
                host="${rabbit.host2}"
                username="${rabbit.username2}"
                password="${rabbit.password2}"
                connection-factory="nativeConnectionFactory" />
Run Code Online (Sandbox Code Playgroud)

然后我将使用SimpleRoutingConnectionFactory来包装两个连接工厂:

<bean id="connectionFactory" class="org.springframework.amqp.rabbit.connection.SimpleRoutingConnectionFactory">
    <property name="targetConnectionFactories">
        <map>
            <entry key="#{connectionFactory1.virtualHost}" ref="connectionFactory1"/>
            <entry key="#{connectionFactory2.virtualHost}" ref="connectionFactory2"/>
        </map>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

现在,当我声明我的rabbitMQ模板时,我会将它指向SimpleRoutingConnectionFactory而不是单个连接工厂: …

rabbitmq federation spring-amqp rabbitmq-shovel

13
推荐指数
2
解决办法
3467
查看次数

非Apple应用程序可以使用Apple ID吗?

Google和Facebook都可以在Ping Identity或Microsoft ACS等安全联合设置中充当身份提供商.

有谁知道是否有可能将Apple Id添加为身份提供者?

federated-identity federation acs apple-id

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

什么是联合协议?

我最近听到这个术语来描述谷歌的新环聊协议,以及Whisper System的新加密短信应用程序.

新的TextSecure推送传输是一种联合协议

那是什么意思?

protocols federation

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

多个 IdentityServer 联合:错误无法取消保护消息。状态

我正在尝试创建一个主从类型配置以使用 IdentityServer4 进行身份验证,如下所示

MyMasterIdentityServer0 (Master) - receives id_token and gives access_token
|---> MySlaveIdentityServer1 (Basic Auth)
|---> MySlaveIdentityServer2 (Windows Auth)
|---> MySlaveIdentityServer3 (SmartCard Certificate Auth)
|---> MySlaveIdentityServer4 (SAML SSO Auth)
|---> Cloud Demo IdentityServer
|---> Google Auth
|---> Facebook Auth
|---> Microsoft Auth
|---> Twitter Auth
Run Code Online (Sandbox Code Playgroud)

我所有的应用程序和 api 都将指向MyMasterIdentityServer0并使用它进行身份验证

用户可以选择使用上述任何提供程序进行身份验证。他们可以选择用户名/密码,在这种情况下,他们应该被重定向到MySlaveIdentityServer1(基本身份验证),或者他们可以选择使用他们的 AD 帐户使用 Windows 身份验证,在这种情况下他们将被重定向到MySlaveIdentityServer2(Windows 身份验证),或者选择任何其他提供商。

用户通过身份验证后,他会从提供者服务器接收一个 id_token 并重定向回MyMasterIdentityServer0,在那里使用 Provider 和 ProviderUserId 查找外部用户,然后根据他的权限获得一个 access_token 以访问应用程序/api。

我面临的问题是 IdentityServer 主从配置对我不起作用,并且在用户在身份验证后重定向回主服务器时给我一个错误Unable to unprotect the message.State。我尝试查找问题,AuthO …

authentication federation oauth-2.0 identityserver3 identityserver4

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

是否可以有部分联合网关?

我想联合服务,但为了简单起见,让联合网关也拥有自己的模式和逻辑,可以代理 REST API 端点。现在看起来我需要分别拥有联合网关服务、联合 graphql 服务和其余 <->graphql 桥接服务。无论如何,在我们的例子中,rest-graphql 网关至少暂时可以位于联邦网关中,以避免不必要的引导和维护。

看起来阿波罗联邦网关localServiceList似乎正是为了这个目的。一个示例配置:

const gateway = new ApolloGateway({
    serviceList: [
        { name: "some-service", url: "http://localhost:40001/graph" }
    ],
    localServiceList: [
        { name: "rest-bridge", typeDefs }
    ]
});
Run Code Online (Sandbox Code Playgroud)

但它并没有解决问题:如果有 localServiceList,它会跳过 serviceList。

所以问题是:这是否可以在阿波罗联盟网关中保存自己的模式和逻辑?

federation apollo graphql apollo-server apollo-federation

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

带有 AD 组的 KeyCloak LDAP 角色映射器

我有一个 KeyCloak LDAP 联合问题。

使用 LDAP 联合,我尝试将特定的 AD 组映射到一个特定的 KeyCloak 角色。

例子

Fido属于 AD 组“狗”

(LDAP:memberOf:cn=dogs,cn=users,dc=test,dc=com)
Run Code Online (Sandbox Code Playgroud)

Fluffy属于广告组“猫”

(LDAP:memberOf:cn=cats,cn=users,dc=test,dc=com)
Run Code Online (Sandbox Code Playgroud)

我可以让 LDAP Federation 创建“猫”和“狗”角色,但我真正想要在 keycloak 中做的是有一个名为“动物”的角色,fluffy 和 fido 都被分配给这个角色。

使用 role-ldap-mapper 可以实现这一点吗?还有其他方法可以做到这一点吗?

ldap active-directory federation keycloak

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

WS-Trust,OpenID和SAML Passive有什么区别?

似乎Microsoft ADFSv2支持WS-Trust和SAML Passive,但它构建的WIF堆栈不支持SAML.

WS-Trust和SAML-P有什么区别?它们是否共享相同的安全漏洞,如果是这样,它们是什么?

注意:这里有一个类似但不同的问题:

SAML与OAuth

adfs saml wif federation adfs2.0

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

在SQL Azure Federations上生成序列号的有效方法

考虑到SQL Azure Federations不支持IDENTITY属性或SEQUENCE,在插入记录时生成序列号的有效方法是什么?

例如,给定一个包含这些列的表:

CREATE TABLE [dbo].[Orders] (
    [TenantId] [uniqueidentifier] NOT NULL,
    [OrderId] [uniqueidentifier] NOT NULL,
    [OrderNumber] [int] NOT NULL
    CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED (
        [TenantId] ASC,
        [OrderId] ASC
    )
) FEDERATED ON ([FederationKey] = [TenantId])
Run Code Online (Sandbox Code Playgroud)

对于为给定租户插入的每个订单,OrderId应递增.例如,对于帐篷来说,OrderId将是1,2,3 ......而对于租户B,OrderId也将是1,2,3 ......在一个独立的序列中.理想情况下应该没有差距.

TenantId和OrderId是主键的组件.它们的值由应用程序设置,它们与生成序列的问题无关; 只有OrderId具有具有商业含义的序号.此外,TenantId是联合的分发密钥.

该MSDN博客文章在选项1中描述了一种方法,即使用表保存序列并在隔离事务中使用存储过程来递增序列.每个租户在此表上都有一条记录,其中包含序列的最后一个使用值.

考虑到可扩展性,争用,资源锁定,这会是最佳方法吗?考虑到SQL Azure Federations的局限性,还有其他任何有用的技巧吗?

sequence federation azure-sql-database

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

使用JWT联合身份的REST身份验证/授权

我正在研究开发一个使用REST公开服务的应用程序.这些服务将通过浏览器和非浏览器客户端访问.我希望这个软件的安装会由不同的团队拥有和管理.我想让一个系统的用户访问另一个系统的用户.他们不会共享同一个身份存储.如果用户可以对其实例进行身份验证,然后使用令牌向其实例和远程实例发出请求,我希望如此.这似乎是JSON Web Tokens(JWT)的一个很好的用途.每个系统都需要配置为信任由证书签名的其他令牌.

我已经读过这可以使用带有JWT承载令牌的OAuth来完成,但这似乎比需要的开销更多.为什么要为访问令牌交换承载令牌而不是仅仅使用承载令牌?我怀疑OAuth是否适合,无论是因为它不能控制系统是否可以像访问Web上的许多示例一样访问用户的数据,而是用户是否可以访问存储在系统中的数据.

问题的下一部分是确定如何创建这些JWT令牌,看起来像WS-Trust STS这样的东西是合适的.我没有看到任何简单的,只是验证用户和返回令牌.可能有助于延长令牌的到期和令牌的验证是否有用?

在过去,我能够使用带有WS-Security和SAML断言的SOAP来启用此类功能.我想看看是否可以使用REST和JWT令牌完成相同的操作.网上有很多帖子建议不要推销你自己的安全框架,所以我有点犹豫要不要向前推进.我看到微软已经添加了处理程序来处理使用JWT令牌的服务保护,所以看起来他们看到了这种方法的一些价值.

有没有人能够以符合标准且简单的方式了解如何以REST服务完成此类身份联合?

rest identity federation jwt

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