gpt4 book ai didi

azure - 如何使用 Windows Azure 访问控制 "pre-authenticate"另一个用户?

转载 作者:行者123 更新时间:2023-12-02 06:51:35 27 4
gpt4 key购买 nike

我尝试使用 Windows Azure 访问控制来避免在我的应用程序中使用用户名/密码的安全风险并简化身份验证。然而,这是一个可供希望“预先验证”用户的中型或大型公司使用的网站。换句话说,他们可能希望在用户通过 Azure ACS 登录之前,通过输入用户的 Windows Live ID 并自动创建其帐户来批量创建用户。我可以通过向该用户发送一封电子邮件来完成此操作,其中包含指向一次性使用页面的链接以创建他们的帐户,但我希望做一些更加无缝的事情。

我正在尝试做的事情相当于 Team Foundation Service (*.visualstudio.com) 让您只需输入 Windows Live ID 即可将用户添加到团队项目中,一旦您这样做,他们就可以登录并进行操作。访问该项目,即使该用户以前从未登录过 TFS。

我不明白的是如何使用 ACS 和 System.IdentityModel 来做到这一点。我可以使用 nameidentifier 声明来唯一标识用户,但如何通过给定的提供程序获取另一个用户的 nameidentifier?

很抱歉,如果我没有很好地解释这一点,请随时提出问题。

最佳答案

这并不是一个真正的答案,只是想分享我对这个问题的想法。

ACS 和 Windows Live 身份验证的问题在于 ACS 永远不会返回用户的电子邮件地址。我们从 ACS 返回的只是一个 token ,告诉我用户已通过身份验证。该 token 是根据您的 ACS 领域创建的(即,如果您更改 ACS 领域,ACS 将为同一用户创建一个新 token )。同样,使用您的应用程序的公司管理员可以输入用户的电子邮件地址,但无法从 ACS 取回该电子邮件地址。

只是大声思考:),您可以做一些事情:

  1. 您使用 ACS 对用户进行身份验证,然后使用 Windows Live REST API 使用 ACS 发送的 token 获取有关用户的更多详细信息。通过使用 Windows Live REST API,您可以获得有关用户的更多详细信息,例如姓名、电子邮件地址等。或者您可以仅使用 Windows Live API 来验证用户身份。我不是 100% 确定,但我认为这就是 Team Foundation Service 所做的。请看一下http://zud.io因为它的作用相同,即使用 Windows Live API。
  2. 另一个想法是创建某种邀请 token 。在这种方法中,管理员会“邀请”人们。他们将通过提供用户的姓名、电子邮件地址来创建邀请记录,并且应用程序将创建唯一的邀请 token 。然后,应用程序可以创建一个邀请链接,用户可以使用该链接访问您的应用程序并进行身份验证。身份验证完成后,您可以查找邀请记录并从数据库中检索用户信息,创建用户记录并将身份验证 token 与用户记录相关联。此方法的问题是用户可能无法使用管理员提供的相同 Live ID。例如,我至少有 3 个实时 ID,如果我有该邀请链接,我可以使用其中任何一个实时 ID 进行签名,并且应用程序将无法阻止我注册。
  3. 另一个想法是使用 Windows Azure Active Directory (WAAD) 而不是 ACS。您可以在应用程序中使用 Graph API 来为您的客户创建新用户。您仍然没有像 WAAD 那样管理用户名和密码。我能想到的两个问题是 - a)作为最终用户,我必须记住一个用户名/密码组合,b)在登录时,我必须在 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c0adb9b5b3a5b2aea1ada580b9afb5b2b4a5aea1aeb4aea1ada5eeafaeada9a3b2afb3afa6b4eea3afad" rel="noreferrer noopener nofollow">[email protected]</a> 中提供我的凭据。这对我个人来说是一个很大的麻烦。

我们也经历过同样的痛苦,现在我们决定采用方法#2。

希望这有帮助。

关于azure - 如何使用 Windows Azure 访问控制 "pre-authenticate"另一个用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18668208/

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