Если вы используете SSO и ваша учетная запись связана с той же учетной записью, которую вы используете в Salesforce, вам не нужно показывать страницу входа.
Сервер идентификации поддерживается для передачи дополнительной информации, связанной с аутентификацией, впользовательский сервис.
acr_values - есть также значения с особым значением: idp: name_of_idp пропускает экран области входа в систему / home и перенаправляет пользователя непосредственно к выбранному провайдеру идентификации (если это разрешено для конфигурации клиента)
Таким образом, мы можем установить параметры, такие как acrValues: "idp: SalesForce"
Но экран ошибок не перенаправляет на наш URL обратного вызова.
ОШИБКА IdentityServer3.Core.Endpoints.AuthenticationController - запрошен IdP: SalesForce, но служба пользователя произвела вход для IdP: idsrv
Как решить эту проблему?
var state = Guid.NewGuid().ToString("N");
var nonce = Guid.NewGuid().ToString("N");
var tempState = await Request.GetTempValuesAsync();
SetTempState(tempState["redirectUri"].FirstOrDefault(), state, nonce);
var authorizeUrl = new AuthorizeRequest(_dicoveryResponse.AuthorizeEndpoint).CreateAuthorizeUrl(
clientId: _authClientId,
responseType: "code",
scope: "openid api offline_access",
redirectUri: _appBaseUrl + "/account/callback",
state: state,
nonce: nonce,
acrValues: "idp:SalesForce");