Я внедрил Azure AD для бизнеса (ну, еще не совсем!) С целью, чтобы его могли использовать только те, кто в бизнесе (они должны быть в Active Directory).И есть специальные целевые роли (области), которые назначаются только некоторым пользователям.И конечные точки REST помечаются этими областями (в @OAuthBearer(scope)
, который мы определили).Если для данной конечной точки не требуется особая область, она просто помечается @OAuthBearer()
, чтобы сказать, что требуется авторизация компании.
Обычно у меня это работает, однако при запросе auth_tokens для API, области не могут быть пустыми .Если есть конечная точка без включенной области действия, то мне нечего запрашивать auth_token.И ошибка в том, что в вызове msal.js / acquireTokenSilent()
нет границ, потому что я использую passport-azure-ad
на конечной точке, мне нужен auth_token.
Что я могу сделать?Я не хочу определять область только для этой цели.Благодаря тому, что в компаниях Active Directory они имеют доступ.Определить эту область означает присвоение этой области людям.Это никогда не сработает с бизнесом.
Я попытался передать user.read
(как я сделал, чтобы выполнить логин с помощью msal.js / loginPopup(scopes)
(хотя я обнаружил для loginPopup, что область действия была необязательной)).Но эта область возвращает токен v1 (наиболее интересно то, что для loginPopup
он возвращает токен v2!) .А затем passport-azure-ad
, для которого требуются токены V2, выдает ошибку.
Я попытался просто передать idToken
из логина, однако при этом отсутствует область действия, а passport-azure-ad
выдает ошибку.
Я пытался /.default
, мой clientId и другие вещи обсуждались, но ни одна из них не работает.
Кто-нибудь думал о возможных решениях для этого?