feat: add exclusion of criteria for active idp query (#9040)

# Which Problems Are Solved

To list IDPs for potential linking, we need to filter them. The
GetActiveIdentityProviderResponse should therefore be extended to
provide the IDPConfig or information about whether the IDP is allowed to
be linked or created.

# How the Problems Are Solved

Add parameters to the request to exclude CreationDisallowed and/or
LinkingDisallowed in the query.

# Additional Changes

Added integration tests for the GetGetActiveIdentityProvider endpoint.

# Additional Context

Closes #8981

---------

Co-authored-by: Livio Spring <livio.a@gmail.com>
This commit is contained in:
Stefan Benz
2024-12-18 17:19:05 +01:00
committed by GitHub
parent da706a8b30
commit 870e3b1b26
11 changed files with 494 additions and 32 deletions

View File

@@ -6,6 +6,7 @@ option go_package = "github.com/zitadel/zitadel/pkg/grpc/settings/v2;settings";
import "protoc-gen-openapiv2/options/annotations.proto";
import "zitadel/settings/v2/settings.proto";
import "zitadel/idp/v2/idp.proto";
import "google/protobuf/duration.proto";
message LoginSettings {
@@ -134,6 +135,7 @@ message IdentityProvider {
string id = 1;
string name = 2;
IdentityProviderType type = 3;
zitadel.idp.v2.Options options = 4;
}
enum IdentityProviderType {

View File

@@ -324,7 +324,7 @@ service SettingsService {
};
}
// Get the security settings
// Get the security settings
rpc GetSecuritySettings(GetSecuritySettingsRequest) returns (GetSecuritySettingsResponse) {
option (google.api.http) = {
get: "/v2/settings/security";
@@ -343,7 +343,7 @@ service SettingsService {
};
}
// Set the security settings
// Set the security settings
rpc SetSecuritySettings(SetSecuritySettingsRequest) returns (SetSecuritySettingsResponse) {
option (google.api.http) = {
put: "/v2/policies/security";
@@ -429,6 +429,10 @@ message GetLockoutSettingsResponse {
message GetActiveIdentityProvidersRequest {
zitadel.object.v2.RequestContext ctx = 1;
optional bool creation_allowed = 2;
optional bool linking_allowed = 3;
optional bool auto_creation = 4;
optional bool auto_linking = 5;
}
message GetActiveIdentityProvidersResponse {