У меня есть API C#, который использует  OWIN  JWT для аутентификации.
Мой startup.cs (моего сервера ресурсов) настраивает OAuth по коду:
public void ConfigureOAuth(IAppBuilder app)
{
    var issuer = "<the_same_issuer_as_AuthenticationServer.Api>";
    // Api controllers with an [Authorize] attribute will be validated with JWT
    var audiences = DatabaseAccessLayer.GetAllowedAudiences(); // Gets a list of audience Ids, secrets, and names (although names are unused)
    // List the 
    List<string> audienceId = new List<string>();
    List<IIssuerSecurityTokenProvider> providers = new List<IIssuerSecurityTokenProvider>();
    foreach (var aud in audiences) {
        audienceId.Add(aud.ClientId);
        providers.Add(new SymmetricKeyIssuerSecurityTokenProvider(issuer, TextEncodings.Base64Url.Decode(aud.ClientSecret)));
    }
    app.UseJwtBearerAuthentication(
        new JwtBearerAuthenticationOptions
        {
            AuthenticationMode = AuthenticationMode.Active,
            AllowedAudiences = audienceId.ToArray(),
            IssuerSecurityTokenProviders = providers.ToArray(),
            Provider = new OAuthBearerAuthenticationProvider
            {
                OnValidateIdentity = context =>
                {
                    context.Ticket.Identity.AddClaim(new System.Security.Claims.Claim("newCustomClaim", "newValue"));
                    return Task.FromResult<object>(null);
                }
            }
        });
}
 который позволяет проверять токены с предъявляемыми сертификатами на нескольких идентификаторах ClientID. Это хорошо работает.
Однако мое веб-приложение позволяет пользователю создавать новую аудиторию приложения (т.е. Новую комбинацию  ClientID,  ClientSecret и  ClientName), но после этого я не знаю, как заставить сервер ресурсов JwtBearerAuthenticationOptions распознавать вновь созданную аудиторию.
Я могу перезапустить сервер после новой аудитории, чтобы ConfigureOAuth() повторил, но это не очень хороший подход в конечном итоге.
  Кто-нибудь знает, как добавить аудиторию (то есть новую команду ClientID,  ClientSecret и  ClientName) в OWIN-приложение JwtBearerAuthenticationOptions вне startup.cs и ConfigureOAuth()? **
Я искал: https://docs.auth0.com/aspnetwebapi-owin-tutorial и http://bitoftech.net/2014/10/27/json-web-token-asp-net-web-api-2-jwt-owin-authorization-server/ для справки, но оба примера кода показывают ту же проблему, что описаны выше.