我们有一个Azure AD B2C实例,配置了2个提供程序:
-
AAD
-
自定义OIDC
我正在使用此样本SPA:https://github.com/Azure-Samples/active-directory-b2c-javascript-msal-singlepageapp
该示例具有以下登录过程:
function login() {
clientApplication.loginPopup(applicationConfig.b2cScopes).then(function (idToken) {
clientApplication.acquireTokenSilent(applicationConfig.b2cScopes).then(function (accessToken) {
updateUI();
}, function (error) {
clientApplication.acquireTokenPopup(applicationConfig.b2cScopes).then(function (accessToken) {
updateUI();
}, function (error) {
logMessage("Error acquiring the popup:\n" + error);
});
})
}, function (error) {
logMessage("Error during login:\n" + error);
});
}
这是应用程序中可能发生的情况:
-
用户按下登录按钮 . 将显示登录弹出窗口 .
-
用户使用其AAD帐户登录 .
-
应用程序尝试以静默方式为当前AAD用户获取令牌 . 此操作失败,将显示一个弹出窗口 .
-
用户使用自定义OIDC帐户登录 .
在这种情况下,AAD用户登录(id_token),但access_token表示自定义OIDC用户 .
我试过了
clientApplication.acquireTokenPopup(
applicationConfig.b2cScopes,
applicationConfig.authority,
clientApplication.getUser(),
{ 'prompt': 'none' }
).then(...);
但没有奏效 . 它显示了可供选择的提供者列表 .
如何在没有主域发现/提供程序发现的情况下实现acquireTokenPopup将我重定向到AAD?
1 回答
尝试传入参数“domain_hint”并将值设置为您在AAD技术配置文件中提供的值