在传递用户名和密码时,是否可以请求 Azure AD 资源以获取 JWT?

Is there and Azure AD resource that can be requested in order to get JWT when passing username and password?

我有一个多租户应用程序,对于一个单独的本机应用程序,我正在尝试实施 NativeClient-Headless-DotNet 所述的类似方法。当我有我的多租户应用程序然后我在 Azure AD 中设置本机客户端应用程序时,它按预期工作,我将权限添加到 mWeb 应用程序。发出的请求如下所示:

POST https://login.microsoftonline.com/{my tenant id}/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
return-client-request-id: true
x-client-SKU: .NET
x-client-Ver: 2.14.0.0
x-client-CPU: x64
x-client-OS: Microsoft Windows NT 6.2.9200.0    
x-client-last-response-time: 239
x-client-last-endpoint: user_realm
Host: login.microsoftonline.com
Content-Length: 173
Expect: 100-continue

resource={my web app uri id}&client_id={my native client app id}&grant_type=password&username={my username}&password={my password}&scope=openid

非常适合这个原型。我想看看我是否可以在不需要在 Azure AD 中注册本机客户端应用程序的情况下逃脱。要做到这一点,如果我们假设我可以安全地将用户名和密码传递给我的 Web 应用程序,有没有办法从我的 Web 应用程序而不是我的本地客户端应用程序请求一些资源,这将 return 响应类似于响应从上面的要求?类似于:

POST https://login.microsoftonline.com/{my tenant id}/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
return-client-request-id: true
x-client-SKU: .NET
x-client-Ver: 2.14.0.0
x-client-CPU: x64
x-client-OS: Microsoft Windows NT 6.2.9200.0    
x-client-last-response-time: 239
x-client-last-endpoint: user_realm
Host: login.microsoftonline.com
Content-Length: 173
Expect: 100-continue

resource={some resource that requires authentication}&client_id={my web app id}&grant_type=password&username={my username}&password={my password}&scope=openid

A​​zure AD 中有什么可用的吗?例如,我可以请求 Grap API 令牌,但这需要 client_secret 因为它访问整个目录。我正在寻找可能会通过传递用户名和密码来工作的特定配置文件。谢谢。

username/password 流程仅供本机客户端使用。 AAD 不提供将 username/password 传递到您赢得的网站并在那里使用它的机制 - 事实上,强烈建议不要让凭据在最直接的验证路径之外流通。