问题标签 [windows-live-id]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
900 浏览

http - 如何为本地 Web 应用程序定义 Microsoft Live OAuth 重定向 URL?

使用 OAuth,ClientID 和 redirect_url 有很强的联系:您需要为每个 redirect_url 设置一个单独的 ClientID。对于在多个域中具有多个部署的本地应用程序来说,这是一个问题。

有什么方法可以实现来自未知域的 OAuth 身份验证?我能想出的唯一替代方案需要在固定域中使用专用的“身份验证服务器”,该服务器可以用作 redirect_url,然后可以执行新的、不受限制的重定向到客户域。

桌面应用程序通过提供一个虚拟的 redirect_url 来解决这个问题,然后将实时身份验证窗口托管在一个专用的 Web 框架中,让它们可以监听重定向请求。这允许他们从重定向 URL 读取授权代码,即使 URL 本身无效。我相信由于跨域限制,这在网络浏览器中是不可能的。

基本上需要 OAuth 来支持本地 Web 应用程序中的 SkyDrive 发布。

0 投票
1 回答
353 浏览

cloud-hosting - 从 ACS 抛出异常添加联邦元数据

我在使用 ADFS 2.0 的 Azure 云服务中有一个 Web 应用程序。我想添加其他方标识符,例如 Windows Live Id。web.config 包含一个使用 asp.net_regis 实用程序加密的连接字符串。当我在没有新的身份提供者引用的情况下部署到云服务时,它工作正常,但是当我添加这些新引用时,我得到了这个异常:该部分被标记为受保护,但它没有正确的格式。它应该只包含 <EncryptedData> 子节点。我已将用于加密它的证书包含在 ACS 门户的“令牌解密”选项卡中。为什么我会收到此错误?

0 投票
1 回答
847 浏览

asp.net-mvc - 如何更好地控制 DotNetOpenAuth 使用 Microsoft 帐户(Live ID)的方式?

我正在使用 DotNetOpenAuth 的新OAuthWebSecurity包装器,以允许用户使用他们的 Microsoft 帐户(又名 Windows Live ID)登录到 MVC4 应用程序。

我已经注册了微软客户端:

一切正常,我喜欢它的简单性。但是我如何改进它正在做的事情呢?

选择使用他们的 Microsoft 帐户登录后,用户将进入一个要求他们登录的屏幕:

第一步

当他们登录时,我希望他们能够选中“保持登录”框。

然后,Microsoft 要求他们确定我的访问权限:

第二步

但我实际上并不想要那么多访问权限。我想要的只是他们的姓名和电子邮件地址。也许他们的照片。我当然不需要或不想访问他们的联系人和朋友。这会吓跑我的用户。

我在哪里可以将参数传递给 OAuthWebSecurity 或 DotNetOpenAuth 来控制它?

所以用户点击,一切正常。但是,当他们离开并回到我的网站时 - “让我保持登录”选项应该得到尊重。它不是。相反,他们看到的是:

第三步

我不明白上面的消息:

因为您正在访问敏感信息,所以您需要验证您的密码。

什么敏感信息?我不想开始的联系人/朋友?或者是其他东西?

如何解决这两个问题以使我的应用程序更加用户友好?

0 投票
2 回答
636 浏览

asp.net-mvc-3 - AZURE ACS - Windows Live ID:如何识别唯一用户

对于我的 Web 应用程序,我使用 Azure ACS 进行身份验证。我遵循这个 [1]:http: //msdn.microsoft.com/en-us/library/hh127794.aspx来实现我的代码。我只对 Windows Live 用户进行身份验证。我发现 ACS 不提供用户信息,例如用户名、电子邮件等。

此代码验证了身份验证。但我需要一些唯一标识符来跟踪用户。

我正在寻找一个唯一 id 来保持跟踪用户。

这会返回一个看起来像这样的响应

我认为在这个响应<NameID>xWTQfgjexVZ4sturSHZmdppGj/am1IweOYHgc139TrE=</NameID>中包含独特的价值。但似乎 PC 与 PC 不同。

请建议我实现这一目标的方法。

提前致谢!

0 投票
0 回答
107 浏览

sharepoint - 使用 Office 365 的 Sharepoint 2010 Foundation 身份验证

我在 AWS(Amazaon Web 服务)服务器上安装了 SharePoint 2010 基础。我也有 office365(电子邮件托管计划帐户)。当用户尝试访问 SharePoint 网站时,是否可以链接到 Office 365 进行身份验证?换句话说,我可以使用 Office365 作为身份验证提供程序,类似于带有共享点的 windows live id。

任何指针都会有所帮助。

0 投票
1 回答
710 浏览

oauth-2.0 - 通过 ACS 获取 OAuth 2.0 令牌

我有一个应用程序可以理解Live ID返回的 OAuth 2.0 令牌(在传递有效的 OAuth 2.0 令牌时,它会对用户进行身份验证) 。

这个 OAuth 令牌看起来像 -

"78wcH%2by1t6avE8zhVCzXQndK2zWJbCWvoZbSKfAduQuyQETUG2FtN5FOw%2bKaj5uCwUfuOS/2J35NvhDkZaaqoOzOVuoTYUDZgAACNzcJuSyBR21CAE9LpBrltj0PljQ76Hd9aJXW8x8DtRsKZvOn76PN69oGDzrGIjXXPIyCGDii9TYmP92kmh50B05qTqhdLiAXcluriQWuEMKONPUVazSmFN2BXZVW3NDdk3vkos8m68SXf%2"

现在我有了另一个基于 Azure ACS 机制的应用程序。我可以从那里获得 SAML 或 SWT 令牌。

可以在此处找到示例 SWT 令牌

有什么方法可以将 SAML/SWT 令牌转换为以前的 OAuth 2.0 令牌?

注意:我尝试通过 OAuth v2-13 协议获取 SWT 令牌,但接受 OAuth 令牌的服务未验证此令牌。

0 投票
0 回答
1270 浏览

asp.net-mvc-4 - ASP.NET MVC4 OAuth Microsoft(实时)帐户 - 获取用户电子邮件

我正在尝试使用 Microsoft ID 为我的 ASP.NET MVC4 网站实现 OAuth 身份验证。到目前为止,使用 Microsoft 帐户登录可以正常工作。但我需要获取一些额外的用户数据(特别是用户帐户或首选电子邮件地址)。

我使用 live.domains 作为我的电子邮件服务。所以我用我的域为我的用户创建了电子邮件。现在我想让这些用户使用他们的电子邮件帐户(使用 OAuth)登录到该站点。

注意:我的网络服务器不支持 asp.net 4.5,所以我被困在 4.0 上,并且不能使用 LiveSDK for ASP.NET(据我所知)......

这个想法是这样的:

  • 使用内置的 OAuth 功能登录用户
  • 获取他们的帐户电子邮件地址,并检查它是否是来自我域的电子邮件
  • 如果不是来自我的域,请拒绝注册
  • 如果电子邮件来自我的域,请允许用户注册并正常进行

我创建了一个自定义 Microsoft OAuth2Client,使用默认值作为参考(默认客户端可以在github上找到),并指定所需的范围(wl.basic、wl.signin、wl.emails)。其余代码几乎相同。

GetUserData 函数用于获取额外的用户数据(如姓名、性别),并且有效。来自默认客户端的代码:

}

我的理解是,这会获取所有请求的用户数据(基于指定的范围),因此它还应该包含响应中的电子邮件。不幸的是,即使是这样,我也不知道如何从响应流中获取该信息......

那么,我将如何阅读回复中的电子邮件(如果我完全走在正确的轨道上)?

0 投票
1 回答
1665 浏览

oauth-2.0 - Live Connect OAuth2 的重放攻击问题严重吗?为什么允许多次使用授权码?

首先感谢您的时间。我非常担心 Live Connect 的 OAuth2 API。

我遵循这一点,并使用 DotNetOpenAuth 为我们的联合身份和访问管理系统实施/集成 LiveId 身份验证/授权。

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

在很长一段时间内一切正常。但是现在我在修复 LiveId 登录模块的重放攻击问题时遇到了严重的麻烦。让我们看一下上面文章中的授权码授予流程。

"*4. 用户代理使用重定向 URI 调用客户端,其中包括授权代码和客户端提供的任何本地状态。例如:...Callback.htm?code=AUTHORIZATION_CODE。 5. 客户端请求来自授权服务器的令牌端点的访问令牌,使用其客户端凭据进行身份验证,并包括在上一步中收到的授权代码。客户端包括用于获取授权代码以进行验证的重定向 URI。*"

在第 4 步之后,Live Connect OAuth2 服务器返回到我的回调端点,并带有授权码和状态,如下所示:

https://ssss.myapp.com:443/liveid/consume.idp?code=406dd558-0cda-50cc-bd37-d964ec29fbb3&state=uvygsnd3gba0jwi315kdyccs

问题是,授权码可以多次使用。因此它会导致严重的重放攻击问题,例如以下场景:

  1. 用户 A 在登录我的应用程序时,选择 LiveId 登录,然后他被重定向到 LiveId 登录页面。然后他登录,Live Connect OAuth2服务器返回回调端点,code=xxx&state=yyy...用户A然后使用此授权码获取访问令牌...

  2. 用户 B 在登录我的应用程序时,选择 LiveId 登录,然后他在 LiveId 的登录页面登录。Live Connect OAuth2 服务器现在返回 code=kkk&state=ggg

如果我这次,使用 Webscarab 之类的工具来捕获响应/请求,然后将 OAuth2 服务器的返回更改为 code=xxx&state=ggg(旧的授权码是给用户 A,而不是 B)。之后,使用此重放授权码请求访问令牌顺利进行。你猜怎么着?我再次收到了之前给用户 A 的 ACCESS TOKEN……最后,用户 B 可以作为用户 A 登录到我的应用程序。

请注意,对 Google OAuth2 服务器应用与上述相同的重放攻击,我收到来自服务器的错误请求错误,Google OAuth2 授权码永远不能被多次使用。并且代码流程或者确切地说,谷歌登录和 LiveId 登录的实现是完全一样的。

我使用 DotNetOpenAuth.OAuth2.WebServerClient 为 Google 和 LiveId 实现 OAuth2 身份验证流程。再次,完全相同的代码,但谷歌 OAuth2 服务器在重用授权代码时返回“错误请求”,但 LiveId 返回前一个用户的旧访问令牌。

这是一个严重的安全问题。希望大家对此有一些想法。或者希望我在某些方面是错误的。请指出。

非常感谢,Phuc Le。

0 投票
1 回答
38 浏览

asp.net - 将 live id 与下载的可执行文件相关联

我正在编写一个网页,该网页可用于下载可执行文件,该可执行文件可以在您的机器上运行,并且可以在用户批准后访问系统注册表。在用户下载可执行文件以运行之前,该站点具有实时身份验证。此可执行文件读取系统注册表以获取已安装 Metro 应用程序的列表。然后,可执行文件将扫描中的数据上传到云中的数据库。可执行文件有没有办法以某种方式访问​​用户登录网页时使用的实时 ID?我想将扫描的 live-id + 结果上传到数据库。数据库将关闭用户的实时 ID。我们需要假设用户可能没有使用 live id 帐户登录他的本地计算机。

任何帮助都将不胜感激,任何其他实现此结果的方法也是如此。

0 投票
1 回答
162 浏览

windows-phone-8 - office365 login at windows8 mobile app

Im have implemented the Windows Live Id authentication to my app. It works pretty well, but now I would like to authenticate my company office365 with a similuar solution. I have searched through google but I could not find a way to do this. There is only four brandings: Messenger, Microsoft Account, SkyDrive and Outlook.

Has anyone done something similuar, is this even possible?