Provider/Home B2C 领域发现
Provider/Home realm discovery in B2C
我们有一个 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 获取令牌
用户。这将失败并显示一个弹出窗口 window。
- 用户使用自定义 OIDC 帐户登录。
在这种情况下,AAD 用户已登录 (id_token),但 access_token 代表自定义 OIDC 用户。
我试过了
clientApplication.acquireTokenPopup(
applicationConfig.b2cScopes,
applicationConfig.authority,
clientApplication.getUser(),
{ 'prompt': 'none' }
).then(...);
但没有奏效。它显示可供选择的提供商列表。
如何实现 acquireTokenPopup 将我重定向到没有主领域 discovery/provider 发现的 AAD?
尝试传入参数 "domain_hint" 并将值设置为您在 AAD 技术配置文件中为
提供的值
我们有一个 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 获取令牌 用户。这将失败并显示一个弹出窗口 window。
- 用户使用自定义 OIDC 帐户登录。
在这种情况下,AAD 用户已登录 (id_token),但 access_token 代表自定义 OIDC 用户。
我试过了
clientApplication.acquireTokenPopup(
applicationConfig.b2cScopes,
applicationConfig.authority,
clientApplication.getUser(),
{ 'prompt': 'none' }
).then(...);
但没有奏效。它显示可供选择的提供商列表。
如何实现 acquireTokenPopup 将我重定向到没有主领域 discovery/provider 发现的 AAD?
尝试传入参数 "domain_hint" 并将值设置为您在 AAD 技术配置文件中为
提供的值