Identityserver3 — выберите Identityprovider, который должен использовать клиент.

Теперь у меня есть настройка identityserver3, у меня настроено 3 провайдера идентификации: - Локальный - Google - ADFS

У меня есть несколько клиентов, использующих Oidc-Client-JS (https://github.com/IdentityModel/oidc-client-js).

Теперь я хотел бы указать, какой идентификатор провайдера должен использовать клиент для входа в систему. так скажем:

  • Клиент A позволяет пользователю выбирать, какого провайдера использовать
  • Клиент B входит в систему с локальным
  • Клиент C входит в систему с помощью Google
  • Клиент D входит в систему с ADFS

Ситуация с клиентом А — это поведение по умолчанию, и у меня это работает. Мой вопрос: как мне настроить клиентов B, C и D?


person Raymond    schedule 22.12.2016    source источник


Ответы (2)


Проверьте следующую функцию при запуске, посмотрите, что вы назвали своим 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",

Теперь клиент будет автоматически перенаправляться к правильному провайдеру идентификации.

person Raymond    schedule 22.12.2016

Согласно документации IdentityServer3, вам необходимо настроить ограничения IdentityProviderRestrictions для каждого клиенты. Если настроен только один поставщик удостоверений, IdSrv3 будет автоматически перенаправлять.

person Alain Croisetière    schedule 20.01.2017