(以下示例中的所有ID都已组成。我已添加它们以说明某些参数的格式。)
我的租户在acme.co.uk,但我希望我在https://subdomain.acme2.co.uk部署的网络应用程序将用户身份验证委派给Azure AD。
我使用new portal注册了我的应用,如下所示: (字段名称是azure门户网站上使用的名称)。
应用ID ID网址:https://acme.co.uk/11111111-2222-3333-4444-555555555555
主页网址:https://subdomain.acme2.co.uk/api/auth/aad
回复网址:https://subdomain.acme2.co.uk/api/auth/aad/callback
并创建了一个不会过期的密钥:' 111111111111111111 / aaaaaaaaaaaaaaaaaaaaaaaa ='
我一直关注passport-azure-ad github sample using v1 endpoint作为指南。
db.review.aggregate([
{
$lookup:{
from:"series",
localField:"episode",
foreignField:"seasons.episodes._id",
as:"episode_entry"
}
}
]).pretty()
当我到达https://subdomain.acme2.co.uk/api/auth/aad'在我的浏览器中,我被重定向到MS进行登录,然后我会这样做,但是当重定向回到' https://subdomain.acme2.co.uk/api/auth/aad/callback'发生了,我没有通过身份验证。
检查来自回调POST请求的标题我看到:
{
allowHttpForRedirectUrl: false,
clientID: 'https://acme.co.uk/11111111-2222-3333-4444-555555555555',
clientSecret: '111111111111111111/aaaaaaaaaaaaaaaaaaaaaaaa=',
identityMetadata: 'https://login.microsoftonline.com/acme.co.uk/.well-known/openid-configuration',
isB2C: false,
issuer: null,
loggingLevel: 'info',
passReqToCallback: false,
redirectUrl: 'https://subdomain.acme2.co.uk/api/auth/aad/callback',
responseMode: 'form_post',
responseType: 'code id_token',
skipUserProfile: true,
useCookieInsteadOfSession: false,
validateIssuer: true
}
任何想法我做错了什么? [: - |
(旁白:调试这是一个痛苦,因为我在docker中运行并且重定向似乎无法正常工作,因此我必须部署到真实环境中的ATM)。
答案 0 :(得分:0)
好的发现了...... clientID:' https://acme.co.uk/11111111-2222-3333-4444-555555555555' 是罪魁祸首。
那应该是app Id而不是app Id URI。卫生署。非常感谢@Alex Blex的指导。这是最有帮助的。
答案 1 :(得分:0)
在我的实例中,我正在使用.env并从那里获取clientId。
我通过删除配置和.env文件中clientID周围的引号来解决了此问题。