【问题标题】:By any means can we get access token from Azure ADAL by passing username and pass in http request我们可以通过任何方式通过传递用户名并传入 http 请求从 Azure ADAL 获取访问令牌
【发布时间】:2017-04-03 15:10:51
【问题描述】:

我不需要 Microsoft 登录屏幕。

如果我已经有了用户名和密码, 我不能只使用 Http 客户端传递它们并获取身份验证令牌。

可以吗,请指教。

【问题讨论】:

  • 您现在解决了这个问题吗?如果您在使用资源所有者密码凭证流程方面仍有问题,请随时告诉我。
  • No 无法解决.. @FeiXue-MSFT
  • 你能推荐任何用于这个实现的工作示例吗..

标签: azure active-directory microsoft-graph-api adal


【解决方案1】:

Azure AD 支持有关 OAuth 2.0 的各种流程。要直接获取带有用户名和密码的访问令牌,我们可以与资源所有者密码凭证流进行交互。但是,应谨慎使用此方案,因为它可能会泄漏密码。您可以从rfc6749#page-37 参考有关规范的流程。

要使用 C# 实现此流程,您可以参考此blog

【讨论】:

    【解决方案2】:

    简短的回答是,这是可能的,但不推荐(参见下面 Philippe 的 cmets)。

    当您拥有用户名和密码时获取令牌的能力非常有限。 在您的设备无法提示 AAD 身份验证页面的极少数情况下,或者在它是本机应用程序/自动化测试等的情况下,您可能可以执行此操作。

    有关限制和解决方法,请参阅此帖子:

    http://www.cloudidentity.com/blog/2014/07/08/using-adal-net-to-authenticate-users-via-usernamepassword/

    还可以在这里查看我的这个答案,我在那里让它为我们的自动化测试工作,但 Vibronet 有 cmets,这个解决方案将停止工作,但不确定它是否已经发生。

    How to acquire a user based token from Azure Graph API

    【讨论】:

    • @4c74356b41 是的,正如我提到的,我现在可以使用用户/通行证凭证,但正如他们的 PM(Vibronet)所提到的,它最终会停止工作,除非他们无法使用AAD 登录页面...
    • 所以答案是“是”,而不是“否”
    • @4c74356b41 他们不希望客户走那条路,因为他们想阻止它发生。他们甚至对它以某种方式起作用感到惊讶..
    • 理解方法的局限性和不能做某事是完全不同的两件事
    猜你喜欢
    • 2018-01-05
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    相关资源
    最近更新 更多