IdentityServer connect / token для внешнего провайдера - PullRequest
0 голосов
/ 24 мая 2019

У меня есть идея использовать IdentityServer4 и настроить его для использования внешнего поставщика или его собственной базы данных пользователей. Например, если есть Azure AD, настроенный через файл .json - используйте его. Если Azure AD недоступен - используйте базу данных собственных пользователей. Файл конфигурации может быть изменен администратором в зависимости от определенных условий настройки.

Однако я не могу понять, как можно получить информацию внешнего провайдера от IdentityServer .well-known/openid-configuration content

Я запустил IdentityServer4.Samples \ Quickstarts \ 4_ImplicitFlowAuthenticationWithExternal \ src \ IdentityServer, и кажется, что при обращении к http://localhost:5000/.well-known/openid-configuration нет информации о внешнем поставщике.

Однако http://localhost:5000/Account/Login показывает login password текстовые поля и кнопку OpenID connect.

Вот суть с примером исходного кода. А вот конфигурация openidconnect:

.AddOpenIdConnect("oidc", "OpenID Connect", options =>
{
    options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
    options.SignOutScheme = IdentityServerConstants.SignoutScheme;
    options.SaveTokens = true;

    options.Authority = "https://demo.identityserver.io/";
    options.ClientId = "implicit";

    options.TokenValidationParameters = new TokenValidationParameters
    {
        NameClaimType = "name",
        RoleClaimType = "role"
    };
});

Когда IdentityServer запущен, я могу просмотреть страницу http://localhost:5000/Account/Login с текстовыми полями логин | пароль и кнопкой OpenId Connect. Эта кнопка связана с http://localhost:5000/External/Challenge?provider=oidc url.

Таким образом, каждый пользователь может видеть эту кнопку внешнего поставщика и использовать для входа в систему. Но как насчет сервиса (или разработчика, который создает клиента) и должен использовать мой сервис в качестве источника данных?

Можно ли настроить IdentityServer4 для отображения внешнего поставщика в выводе страницы обнаружения?

Можно ли настроить IdentityServer4 в качестве прозрачного прокси-сервера для внешнего поставщика удостоверений? Чтобы заставить http://localhost:5000/connect/token вызывать внешнего провайдера (если он был установлен) или использовать локальную базу данных пользователей иначе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...