Azure web app service 将Azure AD授权令牌从容器Web应用传递到嵌入式(iFrame)应用

Azure web app service 将Azure AD授权令牌从容器Web应用传递到嵌入式(iFrame)应用,azure-web-app-service,adal,iframe-app,Azure Web App Service,Adal,Iframe App,我有: 配置Azure身份验证的Web应用程序(带有adal.js的Javascript) 作为iFrame(Javascript)嵌入到第一个应用程序中的第二个应用程序 第二个应用程序必须能够调用另一个WebAPI,并将Azure身份验证部署到Azure(可能部署到另一个域) 问题:是否可以(从第一个(容器)获取AAD授权令牌将应用程序转换为第二个应用程序?如果是,将非常感谢任何指南/示例。我们可以使用方法从本地通信两个窗口。下面是一个简单的示例,用于模拟从父页面获取令牌的过程。您可以基于安全

我有:

  • 配置Azure身份验证的Web应用程序(带有adal.js的Javascript)
  • 作为iFrame(Javascript)嵌入到第一个应用程序中的第二个应用程序
  • 第二个应用程序必须能够调用另一个WebAPI,并将Azure身份验证部署到Azure(可能部署到另一个域)

  • 问题:是否可以(从第一个(容器)获取AAD授权令牌将应用程序转换为第二个应用程序?如果是,将非常感谢任何指南/示例。

    我们可以使用方法从本地通信两个窗口。下面是一个简单的示例,用于模拟从父页面获取令牌的过程。您可以基于安全考虑对其进行修改以验证域:

    containerPage1.Html

    <!DOCTYPE html>
    
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <iframe src="InnerPage.html"></iframe>
        <script>
            var token = "abc";
            window.addEventListener("message", receiveMessage, false);
    
            function receiveMessage(event) {
                if (event.data === "accquireToken")
                    event.source.postMessage(token,"*");
            }
    
        </script>
    </body>
    </html>
    
    <!DOCTYPE html>
    
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <script>  
    
        window.addEventListener("message", receiveMessage, false);
    
        function receiveMessage(event) {
            alert(event.data)
        }
    
        function accquireToken() {
            window.parent.postMessage("accquireToken","*");
        }
    
        </script>
    
        <input id="Button1" type="button" value="Accquire Token" onclick="accquireToken()" />
    </body>
    </html>
    
    
    var token=“abc”;
    window.addEventListener(“消息”,receiveMessage,false);
    函数接收消息(事件){
    如果(event.data==“acquireToken”)
    event.source.postMessage(标记“*”);
    }
    
    InnerPage.Html

    <!DOCTYPE html>
    
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <iframe src="InnerPage.html"></iframe>
        <script>
            var token = "abc";
            window.addEventListener("message", receiveMessage, false);
    
            function receiveMessage(event) {
                if (event.data === "accquireToken")
                    event.source.postMessage(token,"*");
            }
    
        </script>
    </body>
    </html>
    
    <!DOCTYPE html>
    
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <script>  
    
        window.addEventListener("message", receiveMessage, false);
    
        function receiveMessage(event) {
            alert(event.data)
        }
    
        function accquireToken() {
            window.parent.postMessage("accquireToken","*");
        }
    
        </script>
    
        <input id="Button1" type="button" value="Accquire Token" onclick="accquireToken()" />
    </body>
    </html>
    
    
    window.addEventListener(“消息”,receiveMessage,false);
    函数接收消息(事件){
    警报(事件数据)
    }
    函数acquireToken(){
    window.parent.postMessage(“acquireToken”,“*”);
    }