2016-10-26 5 views
2

у меня есть:Передача Azure токен авторизации AD из контейнера веб-приложения во встроенную (плавающем фрейме) один

  1. веб-приложение с настроенной аутентификации Azure (Javascript с adal.js)
  2. Второе приложение, которое встраивается в первый в качестве iFrame (Javascript)
  3. Второе приложение должно иметь возможность вызывать другой WebAPI с использованием аутентификации Azure, развернутой до Azure (возможно, в другом домене).

Вопрос:. Можно ли получить токен авторизации AAD (от первого (контейнера) приложение во вторую Если да, то какие-либо руководства/примеры были бы весьма признательны

ответ

2

Мы можем общаться два . окна из локального использования Window.postMessage метода Ниже приведены простой пример, чтобы имитировать процесс для получения маркеров от родительской страницы Вы можете изменить его, чтобы проверить домен на основе рассмотрении безопасности:.

ContainnerPage1.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> 

InnerPage.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>