目标:我目前正在开发一个网络应用程序的功能,我想在智能手机上进行本地测试。
明显的解决方案:为此,我通过与运行应用程序的计算机连接到同一网络的手机浏览了应用程序的本地地址和端口。这似乎也是标准解决方案。
问题:如果没有 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/