каждый, кому я хочу аутентифицировать пользователей в активном каталоге Azure с помощью узла js (я действительно новичок в Azure и активном каталоге), я прочитал много документации, существует два способа сделать это. во-первых: мой веб-запрос проходит проверку подлинности через форму, которую мне предоставляет Microsoft, затем пользователь входит в систему и перенаправляет на мой URL <--- таким образом, мне не нужно </p>
, во-вторых: (этокак мне нужно) я использую Oauth2, с var BearerStrategy = require('passport-azure-ad').BearerStrategy
для аутентификации, у меня есть мой идентификатор клиента, tenanId, client_Secret и т. д. В качестве первого шага мне нужно получить Acces_token, который я получаю запрос на отправку на этот URL через почтальона:
https://login.microsoftonline.com/My_alias_tenan/oauth2/token
Я отправляю следующие параметры на моем теле: {grant_type: client_credentials, client_id: 1f7bbc3e-19ed-4ae5-b16d..., client_secret: 98ijhi7tuf..., resource: https://management.azure.com/, .... }
Я просто слежу за этим блогом: https://blog.jongallant.com/2017/11/azure-rest-apis-postman/
я получил токен, подобный следующему:
"token_type": "Bearer",
"expires_in": "3600",
"ext_expires_in": "3600",
"expires_on": "1570045543",
"not_before": "1570041643",
"resource": "https://management.azure.com/",
"access_token": "eyJ0eXAiOiJKV
, который я ввожу в заголовок для моего следующего запроса, который указывает на мой локальный хост: потому что именно здесь у меня есть варианты отправки аутентификации, и это:
identityMetadata: 'https://login.microsoftonline.com/alias_tenan/v2.0/.well-known/openid-configuration',
clientID: process.env.AD_CLIENT_ID,
audience : 'https://management.azure.com/',
validateIssuer: false,
passReqToCallback: true,
isB2C: false,
allowMultiAudiencesInToken: false,
issuer:null,
loggingLevel: 'info',
loggingNoPII: false,
responseMode: query
У меня есть такой код:
return passport.authenticate('oauth-bearer', function(req, token, done) {
console.log(token)
res.status(200).json({'name': 'name'});
}
)(req, res, next)
, но всегда получаю это сообщение:
{"name":"AzureAD: Bearer Strategy","hostname":"DESKTOP-U0R9GTV","pid":1168,"level":30,"msg":"authentication failed due to: error: invalid_token","time":"2019-10-02T22:54:04.782Z","v":0}
Кто-нибудь сделал это успешно? спасибо заранее, и я надеюсь, что кто-нибудь может мне помочь.