Node.js 为什么我们需要在azure B2C passport中验证发卡机构?
我在节点中有Azure AD B2C,我想知道为什么我们使用ValidateIsuer=true或falseNode.js 为什么我们需要在azure B2C passport中验证发卡机构?,node.js,passport.js,azure-active-directory,azure-ad-b2c,Node.js,Passport.js,Azure Active Directory,Azure Ad B2c,我在节点中有Azure AD B2C,我想知道为什么我们使用ValidateIsuer=true或false passport.use(new BearerStrategy({ isB2C: true, validateIssuer: false, loggingLevel: 'trace', passReqToCallback: false, } 如果我将其设置为false,它会向我发送警告以在生产环境中设置为true,因此为什么在使用Passport Az
passport.use(new BearerStrategy({
isB2C: true,
validateIssuer: false,
loggingLevel: 'trace',
passReqToCallback: false,
}
如果我将其设置为false,它会向我发送警告以在生产环境中设置为true,因此为什么在使用Passport Azure AD B2C时需要验证发卡机构显然,它可以决定您是否在id_令牌中验证iss声明。以下是解释: validateIssuer(有条件的) 如果不想验证颁发者,则需要设置为false,默认值 价值是真实的。我们针对用户验证
id\u令牌中的iss
声明
提供了发行人
值和我们从中获得的发行人值
租户特定端点。如果将公共端点用于
identityMetadata
如果要验证颁发者
,则必须
为每个登录请求提供颁发者或租户
在passport.authenticate中使用tenantitorname
选项
有关passport选项的更多详细信息,请参阅
希望这有帮助 您需要验证颁发者,因为许多服务可以生成令牌,但您只希望信任某些来源
例如:
A:“iss”:https://login.microsoftonline.com/[您的应用程序guid]/v2.0“
vs
B:“iss”:https://login.microsoftonline.com/[我的应用程序guid]/v2.0“
vs
C:“iss”:https://a.malicious.site.com/v2.0“
您不希望允许B或C发行代币,但您确实希望接受A发行的代币,请检查IDTokenValidaiton文章@,本文将告诉您具体内容和原因