Я создал Identity Server с использованием. NET Core и IdentityServer4, у меня есть набор API, и все вызовы этих API должны проходить проверку подлинности, но эти API могут использоваться сторонними приложениями, поэтому клиенты могут быть динамическими До настоящего времени Например, я обнаружил, что клиенты устанавливаются при запуске статически, как
public void ConfigureServices(IServiceCollection services)
{
services.AddIdentityServer()
.AddDeveloperSigningCredential()
.AddInMemoryApiResources(Config.GetApiResources())
.AddInMemoryClients(Config.GetClients());
}
public class Config
{
public static IEnumerable<ApiResource> GetApiResources()
{
return new List<ApiResource>
{
new ApiResource("resourceApi1", "API Application1")
new ApiResource("resourceApi2", "API Application2")
};
}
public static IEnumerable<Client> GetClients()
{
return new List<Client>
{
new Client
{
ClientId = "clientApp1",
// no interactive user, use the clientid/secret for authentication
AllowedGrantTypes = GrantTypes.ClientCredentials,
// secret for authentication
ClientSecrets =
{
new Secret("secret".Sha256())
},
AllowedScopes = { "resourceApi1" }
}
};
}
}
. Есть ли способ в реализации IdentityServer для регистрации клиентских приложений и их динамической настройки. Например, если у меня есть API 1. resourceApi1 2. resourceApi2
Каждый сторонний API должен иметь возможность регистрироваться, и мы должны иметь возможность генерировать ClientID и секрет Client для каждого, к каким ресурсам они могут получить доступ, и Identity Server аутентифицирует этот ClientID и Client Secret?