Для B2 C необходимо установить validateIssuer: false
. Для необычной конечной точки мы используем издателя из метаданных, возвращаемых из AAD, для B2 C, passport.authenticate не может получить значение issuer
из метаданных. Для B2 C в паспорте используется TenantId для обработки проверки, так что это должно быть предоставлено, что будет частью identityMetadata
.
Кроме того, identityMetadata
должен иметь следующий формат:
identityMetadata: "https://" + b2cDomainHost + "/" + tenantIdGuid + "/" + policyName + "/v2.0/.well-known/openid-configuration/"
Я не думаю, что для обработки этого формата для URL-адреса метаданных установлен паспорт - > ?p=b2c_1_signin
Вы можете попробовать этот node.js образец и использовать свои собственные значения, которые вызовут в паспорт. js библиотека.
Пример :
var clientID = "93733604-cc77-4a3c-a604-87084dd55348";
var b2cDomainHost = "fabrikamb2c.b2clogin.com";
var tenantIdGuid = "775527ff-9a37-4307-8b3d-cc311f58d925";
var policyName = "B2C_1_SUSI";
var options = {
identityMetadata: "https://" + b2cDomainHost + "/" + tenantIdGuid + "/" + policyName + "/v2.0/.well-known/openid-configuration/",
clientID: clientID,
policyName: policyName,
isB2C: true,
validateIssuer: false,
loggingLevel: 'info',
loggingNoPII: false,
passReqToCallback: false
};