【问题标题】:Access local web server from another device on the network using azure AD for authentication使用 azure AD 从网络上的另一台设备访问本地 Web 服务器进行身份验证
【发布时间】:2020-02-07 23:17:20
【问题描述】:

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

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

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

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

谢谢!

【问题讨论】:

    标签: azure localserver


    【解决方案1】:

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

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

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

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

    • 弹出
    • 重定向

    如示例,您也可以在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://docs.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-openid-connect-code

    【讨论】:

    • 感谢您的回答。我可能误解了你,但在我看来,你的建议是将 redirectUri 设置为我的 js-app 中的机器名称。这不起作用,因为 AD 要求我将每个已批准的 redirectURI-address 添加到 azure 门户上的白名单中。我不想将恰好托管本地应用程序 atm 的每个 IP 地址添加到该列表中。那是我的问题...
    • @Richard 这是保护您免受代码注入的安全实践。在您的情况下,我可以建议为您的应用程序仅定义一个 URL,并将其放在与其本地 IP 关联的每台机器的主机中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 2018-04-12
    相关资源
    最近更新 更多