Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: RaymondОтветов: 2

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

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

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

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

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

oidc-client-jsidentityserver3

Ответы

Ответ 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 будет автоматически перенаправлять.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы