OAuth2 身份验证说明 - grant_type = 密码

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

我目前正在努力触发一个 API(在本例中为 Fabric Job Scheduler),到目前为止,该 API 不支持服务主体身份验证。为了解决这个问题,我一直在尝试使用以下端点为没有 MFA 的个人用户获取访问令牌:

https://login.microsoftonline.com/<tenant>/oauth2/v2.0/token

这是我正在使用的请求正文:

client_id=<clientid>&username=<username>&password=<password>&scope=https://api.fabric.microsoft.com/Workspace.ReadWrite.All https://api.fabric.microsoft.com/Item.ReadWrite.All https://api.fabric.microsoft.com/DataPipeline.Execute.All&grant_type=password&client_secret=<secret>

我试图了解在这种情况下需要用户凭据(用户名和密码)以及客户端凭据(客户端 ID 和客户端密钥)进行身份验证背后的基本原理。结合这两种形式的身份验证的目的是什么?此要求是否有特定的安全或操作原因;为什么不能仅根据用户名和密码生成身份验证令牌?

任何见解或解释将不胜感激。

谢谢!

azure-active-directory azure-data-factory microsoft-fabric
1个回答
0
投票

当您使用

grant_type = password
时,表示您正在使用 资源所有者密码凭证 (ROPC)

尝试了解需要用户凭据(用户名和密码)以及客户端凭据(客户端 ID 和客户端密钥)进行身份验证背后的基本原理

通过直接管理用户的密码,ROPC 使应用程序能够登录他们。

从此MS文档您可以看到,客户端密钥仅适用于您的应用程序是机密客户端时,而不是应用程序是公共客户端时。

enter image description here

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