Azure B2C - работает ли скрытый iFrame в веб-приложении с арендатором B2C? - PullRequest
0 голосов
/ 01 октября 2018

Когда вы просматриваете статью Витторио относительно id_tokens

Управление продолжительностью сеанса веб-приложения - http://www.cloudidentity.com/blog/2016/07/25/controlling-a-web-apps-session-duration-2/

Он упоминает об использовании скрытого iFrame для обновления id_token.

<script> 
        setInterval( function () 
                { @if (Request.IsAuthenticated) {
                        <text> 
                                var renewUrl = "/Account/ForcedSignIn"; 
                                    var element = document.getElementById("renewSession"); 
                                    console.log("sending request to: " + renewUrl); 
                                    element.src = renewUrl; 
                    </text> 
                    } else { 
                            <text> 
                                console.log("No renewal attempt without a valid session"); 
                            </text> 
                    }, 
                    1000*60*45
            );
    </script>

Будет ли что-то подобное работать с Арендатором B2C?При реализации этого же решения в B2C оно не работает.При просмотре сетевых запросов с помощью инструментов разработчика я могу видеть, что он вызывает мою конечную точку для вызова запроса вызова, затем я вижу вызов для авторизации (что аналогично тому, что происходит при первоначальном входе в систему), но он никогда не возвращается изтам.Несмотря на то, что при просмотре ответа от авторизованного вызова это, кажется, удалось?Он просто никогда не возвращается в мой RedirectUri (и поэтому я никогда не получаю токен обновления).

HTTP 302 GET http://localhost:54786/Authentication/ForcedSignIn

HTTP 200 https://login.microsoftonline.com/te//b2c_policy/oauth2/v2.0/authorize?client_id=client_id&redirect_uri=http%3A%2F%2Flocalhost%3A54786%2FAuthentication%2FForcedSignInRedirect&response_mode=form_post&response_type=id_token&scope=openid&state=OpenIdConnect.AuthenticationProperties...

Нет ответавернулся?Пожалуйста, дайте мне знать, что не так.

1 Ответ

0 голосов
/ 03 октября 2018

Azure AD B2C позволяет использовать скрытый фрейм для обновления токенов, поэтому вам может потребоваться проверить несколько вещей с помощью URL-адреса «продления»:

1) Он должен начинаться с вашего имени арендатора и вашей политикиимя:

https://login.microsoftonline.com/te/{tenant}/{policy}/oauth2/v2.0/authorize?..

2) Должен содержать prompt=none параметр строки запроса:

?..&prompt=none

Именно это prompt параметр установлен на none, что позволяет скрытому фрейму обновлять токены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...