public void PostConfigure_AddIdentityResourcesScopesToClients() { // Arrange var configureClientScopes = new ConfigureClientScopes(new TestLogger <ConfigureClientScopes>()); var options = new ApiAuthorizationOptions(); options.Clients.AddRange( ClientBuilder .IdentityServerSPA("TestSPA") .FromConfiguration() .Build(), ClientBuilder .NativeApp("NativeApp") .FromConfiguration() .Build()); options.ApiResources.AddRange( ApiResourceBuilder.ApiResource("ResourceAPI") .FromConfiguration() .AllowAllClients() .Build()); // Act configureClientScopes.PostConfigure(Options.DefaultName, options); // Assert var spaClient = Assert.Single(options.Clients, c => c.ClientId == "TestSPA"); Assert.Equal(new[] { "openid", "profile", "ResourceAPI" }.OrderBy(id => id).ToArray(), spaClient.AllowedScopes.OrderBy(id => id).ToArray()); var nativeApp = Assert.Single(options.Clients, c => c.ClientId == "NativeApp"); Assert.Equal(new[] { "offline_access", "openid", "profile", "ResourceAPI" }.OrderBy(id => id).ToArray(), nativeApp.AllowedScopes.OrderBy(id => id).ToArray()); }
/// <summary> /// Creates a new API that coexists with an authorization server. /// </summary> /// <param name="name">The name of the API.</param> /// <param name="configure">The <see cref="Func{ApiResourceBuilder, ApiResource}"/> to configure the identity server jwt API.</param> public void AddIdentityServerJwt(string name, Action <ApiResourceBuilder> configure) { var apiResource = ApiResourceBuilder.IdentityServerJwt(name); configure(apiResource); Add(apiResource.Build()); }
public void PostConfigure_AddResourcesScopesToClients() { // Arrange var configureClientScopes = new ConfigureClientScopes(new TestLogger <ConfigureClientScopes>()); var options = new ApiAuthorizationOptions(); options.Clients.AddRange( ClientBuilder .IdentityServerSPA("TestSPA") .FromConfiguration() .Build(), ClientBuilder .NativeApp("NativeApp") .FromConfiguration() .Build()); options.ApiResources.AddRange( ApiResourceBuilder.ApiResource("ResourceApi") .FromConfiguration() .AllowAllClients() .Build()); // Act configureClientScopes.PostConfigure(Options.DefaultName, options); // Assert foreach (var client in options.Clients) { Assert.Contains("ResourceApi", client.AllowedScopes); } }
/// <summary> /// Adds a new externally registered API. /// </summary> /// <param name="name">The name of the API.</param> /// <param name="configure">The <see cref="Action{ApiResourceBuilder}"/> to configure the externally registered API.</param> public void AddApiResource(string name, Action <ApiResourceBuilder> configure) { var apiResource = ApiResourceBuilder.ApiResource(name); configure(apiResource); Add(apiResource.Build()); }
private static ApiResource GetAPI(string name, ResourceDefinition definition) => ApiResourceBuilder.ApiResource(name) .FromConfiguration() .WithAllowedClients(ApplicationProfilesPropertyValues.AllowAllApplications) .ReplaceScopes(ParseScopes(definition.Scopes) ?? new[] { name }) .Build();