azure - 使用azure AD从网络上的另一台设备访问本地Web服务器进行身份验证

标签 azure localserver

目标:我目前正在开发一个网络应用程序的功能,我想在智能手机上进行本地测试。

明显的解决方案:为此,我通过与运行应用程序的计算机连接到同一网络的手机浏览了应用程序的本地地址和端口。这似乎也是标准解决方案。

问题:如果没有 Microsoft Azure Active Directory 身份验证,这会正常工作。由于 AD 的重定向 URI,我的应用程序被重定向到 localhost,而不是我正在浏览的计算机的地址。技巧似乎是将我的配置 js 文件中的 adal 重定向 URI 替换为我的计算机的地址,但这需要将该主机的特定地址添加到 azure 门户上的重定向 URI 表中。对我来说,这不是很理想,因为我希望跨设备访问适用于子网上的任何主机和客户端。

我对 Azure 或 Azure AD 不太满意,因此对于任何解决方案,请给我虚拟的解释。该应用程序是一个 JS 应用程序。我意识到我提供的信息很少,但我会填写任何需要的信息。

谢谢!

最佳答案

Azure Active Directory 使用 Open ID Connect 身份验证协议(protocol)(或 SAML 2.0/WS-Fed,但我认为这不是您的情况)。因此,流程、参数和函数是 Azure AD 中这些协议(protocol)的标准。

根据您使用的 SDK,您可以在登录请求期间指定 redirect_uri,Azure AD 将在其中发布身份验证过程的结果。

Node JS 应用示例:https://github.com/AzureAD/azure-activedirectory-library-for-nodejs/blob/master/sample/website-sample.js有带有 redirect_uri 参数的 authorizationUrl 变量。

如果您有单页应用程序,则可以使用 ADAL JS:https://github.com/AzureAD/azure-activedirectory-library-for-js ,它为您提供了两种模式:

  • 弹出
  • 重定向

如示例所示,您还可以在 AuthenticationContext 对象的配置中指定 redirect_uri:

window.config = {
   clientId: '[Enter your client_id here, e.g. g075edef-0efa-453b-997b-de1337c29185]',
   popUp: true,
   callback : callbackFunction,
   redirectUri: 'http://machinename/auth'
};

您可以通过以下链接使用本文获取有关 Open ID Connect 和 Azure AD 的更多信息:https://learn.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-openid-connect-code

关于azure - 使用azure AD从网络上的另一台设备访问本地Web服务器进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58324124/

相关文章:

azure - Newb Powershell 问题创建自适应范围以实现合规性

Azure ARM 模板跳过嵌套条件

ubuntu - 如何与另一台计算机共享我的本地服务器?

python - 更改后使本地服务器重新加载代码

authentication - 有没有办法让 "remember me"复选框在 WinRT 应用程序的 Azure 移动服务身份验证上起作用?

azure - 在 Azure 云服务上安排 IIS 重置

scope - 从具有端口号的本地 IP 地址提供渐进式 Web 应用程序时,我应该在 manifest.json 文件中为 scope 属性指定什么值?

php - 同步本地服务器和生产服务器

java - 在没有服务器的情况下连接到 Intellij Ultimate 中的本地 MySQL 数据库?

azure - 从 Microsoft Graph 安全 API 中提取扩展属性?