diff --git a/backend/src/main/resources/metadata-sources-ui-schema-oidc.json b/backend/src/main/resources/metadata-sources-ui-schema-oidc.json
index de0fb8009..109742cd5 100644
--- a/backend/src/main/resources/metadata-sources-ui-schema-oidc.json
+++ b/backend/src/main/resources/metadata-sources-ui-schema-oidc.json
@@ -5,6 +5,11 @@
"entityId"
],
"properties": {
+ "protocol": {
+ "title": "label.source-protocol",
+ "description": "tooltip.source-protocol",
+ "type": "string"
+ },
"serviceProviderName": {
"title": "label.service-provider-name",
"description": "tooltip.service-provider-name",
@@ -111,20 +116,7 @@
"widget": {
"id": "select"
},
- "oneOf": [
- {
- "enum": ["SAML 2"],
- "description": "SAML 2"
- },
- {
- "enum": ["SAML 1.1"],
- "description": "SAML 1.1"
- },
- {
- "enum": ["http://openid.net/specs/openid-connect-core-1_0.html"],
- "description": "OIDC"
- }
- ]
+ "default": "http://openid.net/specs/openid-connect-core-1_0.html"
},
"nameIdFormats": {
"$ref": "#/definitions/nameIdFormats"
diff --git a/backend/src/main/resources/metadata-sources-ui-schema-saml.json b/backend/src/main/resources/metadata-sources-ui-schema-saml.json
index 28398dae4..73bb04aec 100644
--- a/backend/src/main/resources/metadata-sources-ui-schema-saml.json
+++ b/backend/src/main/resources/metadata-sources-ui-schema-saml.json
@@ -5,6 +5,11 @@
"entityId"
],
"properties": {
+ "protocol": {
+ "title": "label.source-protocol",
+ "description": "tooltip.source-protocol",
+ "type": "string"
+ },
"serviceProviderName": {
"title": "label.service-provider-name",
"description": "tooltip.service-provider-name",
@@ -110,15 +115,11 @@
},
"oneOf": [
{
- "enum": [
- "SAML 2"
- ],
+ "enum": ["SAML 2"],
"description": "SAML 2"
},
{
- "enum": [
- "SAML 1.1"
- ],
+ "enum": ["SAML 1.1"],
"description": "SAML 1.1"
}
]
diff --git a/ui/public/assets/schema/source/metadata-source-saml.json b/ui/public/assets/schema/source/metadata-source-saml.json
index 44bc9b963..005c2830b 100644
--- a/ui/public/assets/schema/source/metadata-source-saml.json
+++ b/ui/public/assets/schema/source/metadata-source-saml.json
@@ -34,23 +34,9 @@
"items": { "$ref": "#/definitions/Contact" }
},
"mdui": { "$ref": "#/definitions/MDUI" },
- "dependencies": {
- "securityInfo": {
- "oneOf": [
- {
- "properties": {
- "@type": {
- "enum": [
- "OIDC"
- ]
- }
- }
- }
- ]
- }
- },
"securityInfo": {
"type": "object",
+ "widget": { "id": "fieldset" },
"dependencies": {
"authenticationRequestsSigned": {
"oneOf": [
@@ -59,7 +45,7 @@
"authenticationRequestsSigned": {
"enum": [true]
},
- "keyDescriptors": { "minItems": 1 }
+ "x509Certificates": { "minItems": 1 }
}
},
{
@@ -67,7 +53,7 @@
"authenticationRequestsSigned": {
"enum": [false]
},
- "keyDescriptors": { "minItems": 0 }
+ "x509Certificates": { "minItems": 0 }
}
}
]
@@ -265,7 +251,7 @@
},
"Certificate": {
"type": "object",
- "required": ["type", "value"],
+ "required": ["type", "value", "elementType"],
"properties": {
"name": {
"title": "label.certificate-name-display-only",
@@ -354,6 +340,12 @@
"urn:oasis:names:tc:SAML:1.0:profiles:artifact-01"
],
"description": "urn:oasis:names:tc:SAML:1.0:profiles:artifact-01"
+ },
+ {
+ "enum": [
+ "https://tools.ietf.org/html/rfc6749#section-3.1.2"
+ ],
+ "description": "OIDC / OAUTH Binding"
}
]
},
@@ -487,28 +479,25 @@
"title": "label.organization-name",
"description": "tooltip.organization-name",
"type": "string",
- "minLength": 1,
"maxLength": 255
},
"displayName": {
"title": "label.organization-display-name",
"description": "tooltip.organization-display-name",
"type": "string",
- "minLength": 1,
"maxLength": 255
},
"url": {
"title": "label.organization-url",
"description": "tooltip.organization-url",
"type": "string",
- "minLength": 1,
"maxLength": 255
}
},
"dependencies": {
- "name": { "required": ["displayName", "url"] },
- "displayName": { "required": ["name", "url"] },
- "url": { "required": ["name", "displayName"] }
+ "url": ["name", "displayName"],
+ "name": ["displayName", "url"],
+ "displayName": ["name", "url"]
}
},
"nameIdFormats": {
diff --git a/ui/src/app/dashboard/view/SourcesTab.js b/ui/src/app/dashboard/view/SourcesTab.js
index b0d1352d3..dbeeb0a06 100644
--- a/ui/src/app/dashboard/view/SourcesTab.js
+++ b/ui/src/app/dashboard/view/SourcesTab.js
@@ -10,7 +10,7 @@ import { Spinner } from '../../core/components/Spinner';
import { NotificationContext, createNotificationAction, NotificationTypes } from '../../notifications/hoc/Notifications';
-const searchProps = ['serviceProviderName', 'entityId', 'createdBy'];
+const searchProps = ['serviceProviderName', 'entityId', 'createdBy', 'protocol'];
export function SourcesTab () {
diff --git a/ui/src/app/form/component/widgets/SelectWidget.js b/ui/src/app/form/component/widgets/SelectWidget.js
index 57f18b532..38c4374d8 100644
--- a/ui/src/app/form/component/widgets/SelectWidget.js
+++ b/ui/src/app/form/component/widgets/SelectWidget.js
@@ -94,13 +94,15 @@ const SelectWidget = ({
{schema.description &&