我们需要一种方法来使用已有的用户名和密码进行静默服务器端身份验证过程。
也就是说,我们的移动应用程序(Javascript)对PHP服务器进行Web调用。反过来,PHP服务器调用我们的.NET Web服务。该Web服务需要对Azure AD进行SILENT身份验证调用(通过oAuth或其他方法)。
我们有什么选择?
答案 0 :(得分:3)
是的,这可以通过OAuth 2.0 Resource Owner Password Credentials Grant流程实现。但是,我强烈建议您长时间地思考这是否是最好和最安全的方法。引用OAuth 2.0 RFC(强调添加):
资源所有者密码凭证(即,用户名和密码)可以直接用作授权授权以获得访问令牌。只有在资源所有者和客户端之间存在高度信任时才使用凭证(例如,客户端是设备操作系统或高权限应用程序的一部分),以及其他授权授权类型时不可用(例如授权码)。
要查看它的实际效果,我建议您查看以下示例:https://github.com/AzureADSamples/NativeClient-Headless-DotNet
(即使您没有使用.NET,运行示例并查看Fiddler跟踪也可以让您了解正在发生的事情。)