当我在我的应用程序中使用ROPC (资源所有者密码凭证)让用户在我的应用程序中注册时,为什么我不能在AAD中看到任何登录日志?
发布于 2019-04-26 06:48:32
ROPC是在OAuth2协议中定义的:https://www.rfc-editor.org/rfc/rfc6749#section-1.3.3,它不包含在OpenID连接中。就像OAuth2中的其他流一样,它们是为保护API资源而设计的,而不是对用户进行身份验证。
AAD中的ROPC 的行为
对于ROPC流,用户在客户机应用程序端输入他/她的AAD用户名和密码。然后,客户端将用户的凭据发送给AAD。如下图所示:

这种行为可能导致主要风险:客户端可能存储和上传用户的AAD凭据,并将其用于其他事情。它可以作为一个钓鱼应用程序来获得用户的AAD证书。
通常,在基于索赔的身份验证中,客户端应该只获得由可信IDP发出的用户属性(例如,OIDC id_token中的声明、SAML令牌中的声明)来标识用户。客户端不应该为其他身份提供者获取用户的凭据。
为什么在AAD中仍然支持它?
我们可以看到很多客户希望使用ROPC流来委托用户权限来自动运行作业。我们的一些客户使用ROPC作为他们自己定制的登录体验。从微软方面来说,AAD支持ROPC流,因为我们能够真正理解它在某些特殊情况下是必要的。
那么,我们可以在其中使用ROPC的哪种应用程序?
如何避免被提示登录的第三方应用程序钓鱼?
总的来说,用户通过ROPC流登录可能是客户端的登录事件,但它不是AAD的登录事件,因为用户没有在AAD中签名。
https://stackoverflow.com/questions/55862214
复制相似问题