Как AAD определяет, к каким веб-ресурсам может обращаться владелец id_token?Поиск веб-ресурсов, связанных с регистрацией SPA AAD?
Это не так.Если ваш API настроен на прием допустимых токенов AAD с аудиторией, настроенной на идентификатор клиента вашего клиентского приложения, он примет этот токен.Тем не менее, это не очень хорошая модель, вы должны использовать токены доступа для вызова API.
Что касается вашего вопроса относительно токенов доступа, клиентский интерфейс может получить токены доступа через неявный поток с помощью перенаправления или скрытогоIFrame.Если вы используете ADAL.js или MSAL.js, они делают это автоматически, если вы запрашиваете у них токен доступа.
По сути, они открывают iframe, который отправляется на конечную точку / authorize с помощью:
response_type=token
resource=https%3A%2F%2Fgraph.microsoft.com
или scope=https%3A%2F%2Fgraph.microsoft.com%2FUser.Read
при использовании v2 / MSAL prompt=none
Последний параметр сообщает AADне делать подсказки (это скрытый iframe).Если в браузере пользователя все еще существует действительный сеанс и было предоставлено согласие для запрашиваемых областей, токен возвращается в качестве перенаправления на ваш SPA в рамках iframe.Затем ADAL / MSAL могут извлечь токен из URL-адреса iframe, поскольку они работают на одном и том же имени хоста.
Из-за того, как это работает, вы захотите проверить, находитесь ли вы в iframe, когда ваш SPAзагружает и не отображает приложение вообще, если оно есть.
И нет, вы не можете вызвать конечную точку / token из интерфейса JS.