为什么通过OAuth登录应用程序ROPC流程未记录在AAD登录日志中?

问题描述 投票:1回答:1

当我在我的应用程序中使用ROPC(资源所有者密码凭据)流程让用户登录我的应用程序时,为什么我在AAD中看不到任何登录日志呢?

azure oauth azure-active-directory
1个回答
1
投票

ROPC在OAuth2协议中定义:https://tools.ietf.org/html/rfc6749#section-1.3.3,它不包含在OpenID Connect中。它只是喜欢OAuth2中的其他流程,它们旨在保护API资源,而不是对用户进行身份验证。

ROPC in AAD的行为:

对于ROPC流程,用户在客户端应用程序端输入他/她的AAD用户名和密码。然后客户端将用户的凭证发送给AAD。它显示如下图:enter image description here

此行为可能会导致主要风险:客户端可能会存储并上载用户的AAD凭据并将其用于其他事项。它可以作为网络钓鱼应用程序来获取用户的AAD凭证。

通常,在基于声明的身份验证中,客户端应该只获取由受信任的IDP颁发的用户属性(例如,OIDC id_token声明,SAML令牌)以识别用户。客户端不应获取其他身份提供商的用户凭据。

为什么AAD仍然支持它?

我们可以看到许多客户希望使用ROPC流来委派用户权限来自动运行作业。我们的一些客户使用ROPC来获得他们自己的定制登录体验。从微软方面来看,AAD支持ROPC流程,因为我们可以真正理解它在某些特殊情况下的必要性。

那么,我们可以在哪种应用程序中使用ROPC?

  1. 所有客户端应用程序应首先是公共客户端(Native App)。
  2. 在Microsoft 1方应用程序中,如Powershell。
  3. 在用户拥有/可信的应用程序中。

我们怎样才能避免被提示AAD登录的第三方应用程序钓鱼?

  • 确保页面提示您输入AAD用户凭据是AAD登录页面。您还可以在URL中检查域。它应该以“https://login.microsoftonline.com/”开头。
  • 通常,我们不应该以一种形式一起输入用户名和密码。如果第三方应用程序要求您以一种形式输入您的AAD用户名和密码,则需要小心,不要尝试通过此处的AAD凭证登录。因为AAD不提供任何登录页面,以便您当前以一种形式输入您的用户凭证。

总的来说,通过ROPC流程的用户登录可能是客户端的登录事件,但它不是AAD的登录事件,因为用户未在AAD中登录。

© www.soinside.com 2019 - 2024. All rights reserved.