gpt4 book ai didi

access-control - 如何通过 ACS 与 Windows Live ID 集成对 WCF 服务进行身份验证?

转载 作者:行者123 更新时间:2023-12-04 06:51:03 25 4
gpt4 key购买 nike

我有一个 WCF 服务,它通过 ACS 使用 UserName 身份验证。当我使用服务标识时,这很有效,但是当我尝试使用我的 Windows Live ID 凭据时,我收到以下错误:

System.ServiceModel.FaultException: ACS10002: 处理 SOAP 正文时出错。 ACS50012:身份验证失败。 ACS50026:名为“louis@arsunica.com”的主体不是已知主体。

不幸的是,我还没有找到有关如何将 Windows Live ID 与 WCF 服务一起使用的示例。我能找到的唯一示例似乎集中在将多个身份提供程序与 ASP.NET 或 MVC 网站集成。

在这方面的任何帮助将不胜感激......

最佳答案

ACS 不会直接验证您的 Live ID 用户名和密码。 ACS 充当 Live ID 的联合提供者,它是一个中间人,因此它只会使用 Windows Live ID 颁发的 token 。 ACS 在基于被动(浏览器重定向)的场景中支持开箱即用的 Live ID 身份验证,但对于 WCF 服务,您可能会考虑改用 Live Connect API。

要将 LiveID 与您的服务一起使用,您的客户端首先向 LiveID 进行身份验证,然后向您的 WCF 服务提供 LiveID 颁发的 token 。不过要振作起来,要完成所有这些设置需要一些障碍。

要使用 Live Connect API,您需要将 WCF 服务注册为具有 Live ID 的应用程序。然后,使用您的 WCF 服务的客户端需要能够处理 Live ID 将提示的基于 Web 的登录页面和用户同意页面。下面的文档是一个好的开始

http://msdn.microsoft.com/en-us/library/hh243641.aspx

http://msdn.microsoft.com/en-us/library/hh243647.aspx

http://msdn.microsoft.com/en-us/library/windows/apps/hh465098.aspx

下一个问题是您将从 Live Connect 获得的 token 采用 JWT(JSON Web token )格式。我不确定您是否可以从实时连接请求不同的 token 格式,但如果您的 WCF 服务身份验证基于 WIF,它很可能需要 SAML token 。 JWT 是一种 WIF 尚不支持的相当新的 token 格式,因此您必须在理解 JWT token 的服务上配置 WIF SecurityTokenHandler。上面的第三个链接有一些用于读取 JWT 的代码,这至少是一个开始。

关于access-control - 如何通过 ACS 与 Windows Live ID 集成对 WCF 服务进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8956462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com