Как управлять сервером аутентификации Identity Server 4 с возможностью настройки базы данных? - PullRequest
0 голосов
/ 07 января 2019

Мои требования: 1) клиенты сервера идентификации и API-ресурсы загружаются из моей базы данных, а не из моего статического конфигурационного файла. 2) Мне нужно добавить клиентов из моего API и автоматически обновлять клиентов на моем сервере AUTH.

То, что я сделал, это

 IEnumerable<Customers> clients = _accountservice.GetAllClients();
            clients.ToList().ForEach((client) =>
            {

                authclients.Add(new Client
                {
                    ClientId = client.ClientId,
                    ClientSecrets =
                    {
                        new Secret(client.ClientSecret.Sha256())
                    },

                    AllowedGrantTypes = GrantTypes.ResourceOwnerPassword,
                    AllowedScopes = {client.AllowScopes },
                    AccessTokenType = AccessTokenType.Jwt,
                    AlwaysSendClientClaims = true,
                    Claims = new List<Claim>() {
                      new Claim("Client Id",client.ClientId , ClaimValueTypes.String)
                    }
                });
            });

В моем запуске.cs

services.AddIdentityServer().AddDeveloperSigningCredential()
                .AddInMemoryApiResources(AuthConfiguration.GetApiResources())
                .AddInMemoryClients(AuthConfiguration.GetClients()).AddProfileService<ProfileService>().AddResourceOwnerValidator<ResourceOwnerPasswordValidator>();

Каждый клиент загружается из базы данных. Впервые я добавил клиентов и хост в IIS сервере. После добавления клиента означает, что мне нужно перезагрузить сервер. Но мне не нужна такая опция автоматического обновления, которая мне нужна на моем сервере идентификации.

Я использую идентификационный сервер 4.

1 Ответ

0 голосов
/ 07 января 2019

1) Идентификационные серверы клиентов и загрузка API-ресурсов из моей базы не из моего статического конфигурационного файла.

К счастью для вас, Identity Server 4 поставляется с полной поддержкой Entity Framework с множеством параметров конфигурации из коробки. Вы можете обратиться к странице документации для поддержки Entity Framework , где есть краткие руководства и руководства, показывающие, как все настроить для начала работы.

2) Мне нужно добавить клиентов из моего API и автоматически обновлять клиентов на моем сервере AUTH.

Не существует готового API, который позволил бы вам POST новых клиентов. Вы можете использовать вышеупомянутый пакет IdentityServer.EntityFramework и создать слой сервиса API поверх него, чтобы добавить эту возможность. Сказав это, я реализовал OAuth в нескольких проектах и ​​никогда не встречал оправдания для создания такого API. Вместо этого мы бы создали слой пользовательского интерфейса для управления (добавления и редактирования) клиентами OAuth. Если вы думаете, что это может вас заинтересовать - взгляните на интерфейс администратора Identity Server создателей Identity Server. Это отличный пользовательский интерфейс, однако это коммерческий продукт, поэтому вам придется платить.

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