允许应用程序访问受保护的 Azure AD URL 而无需 username/password

Allow application access to Azure AD protected URL without username/password

从没想过我会 运行 遇到 太多 文档的问题!我需要帮助来选择正确的信息,以便我可以阅读、理解并遵循它。

我的场景:

我有一个 ASP .NET Web 应用程序托管在 mywebapp.azurewebsites.net Web 应用程序在 mywebapp.azurewebsites 处具有完整的 REST API。net/api/v1/dostuff/1

您可以访问该站点并执行所有 CRUD 操作。您也可以使用桌面应用程序执行相同的操作。

我继续在 Azure 门户中启用了 Azure AD 身份验证。现在,为了在网站上执行任何操作,用户需要登录。它会弹出通常的 Microsoft 登录弹出窗口,然后在成功验证后重定向回该站点。

但是对于桌面应用程序,我希望用户无需登录即可使用它。不知何故,我的桌面应用程序需要能够调用 API/website 并通过身份验证!

此时我是否需要在清单文件、Web 应用程序或其他地方做些什么?

我能做的最多的事情就是使用客户端 credentials/client 密码获取访问令牌。

我只需要知道我正在努力实现的目标是否可行,以及哪个文档解释了这样做的方法。

嗯,您遇到的根本问题是桌面应用程序(与任何 public 客户端一样)无法以安全的方式向 AAD 验证自身。

您不能使用客户端密码。 从可执行文件中获取秘密非常容易,这基本上就是您应用程序的密码。

您几乎必须让 API 接受未经身份验证的呼叫。

如果需要身份验证才能访问 API, 那么用户必须在应用程序中进行身份验证。