Теперь у меня есть настройка identityserver3, у меня настроено 3 провайдера идентификации: - Локальный - Google - ADFS
У меня есть несколько клиентов, использующих Oidc-Client-JS (https://github.com/IdentityModel/oidc-client-js).
Теперь я хотел бы указать, какой идентификатор провайдера должен использовать клиент для входа в систему. так скажем:
- Клиент A позволяет пользователю выбирать, какого провайдера использовать
- Клиент B входит в систему с локальным
- Клиент C входит в систему с помощью Google
- Клиент D входит в систему с ADFS
Ситуация с клиентом А - это поведение по умолчанию, и у меня это работает. Мой вопрос: как мне настроить клиентов B, C и D?
Ответ 1 · рейтинг 1 · Raymond
Проверьте следующую функцию при запуске, посмотрите, что вы назвали своим Identityprovider в моем случае "Google".
public static void ConfigureIdentityProviders(IAppBuilder app, string signInAsType)
{
app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions
{
AuthenticationType = "Google",
В вашем клиенте установите значение acr_value для idp на то, что вы когда-либо устанавливали.
let userManagerSettings: Oidc.UserManagerSettings = {
acr_values: "idp:Google",
Теперь клиент будет автоматически перенаправляться к правильному провайдеру идентификации.
Ответ 2 · Alain Croisetière
Согласно документации IdentityServer3, вам необходимо настроить ограничения IdentityProviderRestrictions для каждого клиенты. Если настроен только один поставщик удостоверений, IdSrv3 будет автоматически перенаправлять.