我的目标是首先将Azure AD与回送应用程序集成,然后再创建一个门户来管理用户角色。
我正在为第一个Azure广告集成而苦苦挣扎,而且我找不到太多关于Azure AD与回送组合堆栈的详细信息。
到目前为止,我设法完成了使用Azure AD的登录过程,但结果不符合预期。 Loopback生成的用户缺少信息。
能否请您帮我了解如何从Azure AD中提取适当的信息?
我按照以下示例进行了集成: https://github.com/strongloop/loopback-example-passport
已保存的用户如下所示(通过回送保存):
{
"username": "azure-ad.undefined",
"password": "$2a$1...3gMXk8q",
"email": "undefined@loopback.azure-ad.com",
"id": 2
}
我不明白为什么其中存在未定义的值,并且电子邮件甚至与用于登录Azure AD的电子邮件都不相符
这是用于Azure广告的provider.json
{
"azure-ad": {
"provider": "azure-ad",
"module": "passport-azure-ad",
"strategy": "OIDCStrategy",
"authScheme": "openid connect",
"callbackHTTPMethod": "post",
"identityMetadata": "https://login.microsoftonline.com/1c69c43b-x-x-x-a5868919e2c7/.well-known/openid-configuration",
"responseType": "code id_token",
"responseMode": "form_post",
"allowHttpForRedirectUrl": true,
"validateIssuer": true,
"passReqToCallback": true,
"clientID": "170ded70-x-x-x-35a4cb0aa2b5",
"clientSecret": "Z/6Tk/x+x+x=",
"redirectUrl": "http://localhost:3000/auth/azure/callback",
"authPath": "/auth/azure",
"callbackPath": "/auth/azure/callback",
"successRedirect": "/auth/account",
"failureRedirect": "/login",
"scope": [
"email",
"profile"
],
"failureFlash": true
}
}
Azure以以下形式(因此没有用户详细信息)调用我的回调:
code: AQABAAIA*FUALmLaIAA
id_token: eyJ0eXAiOiJKV*AKuhIv5LZC3Q
state: oEYC01r-*_zwZpNkDn4tZ8
session_state: cc8f3f47-*-*-acaf-229857b1e4f5
我的第一个猜测是,它与配置文件的“范围”字段中的值有关,但是我无法识别出在那里我还可以要求从天蓝色获取更多详细信息的其他信息,因此用户可以已正确创建到我的应用中。
您能帮我解决这个问题吗? 谢谢!