wso2 / product-is

Welcome to the WSO2 Identity Server source code! For info on working with the WSO2 Identity Server repository and contributing code, click the link below.
http://wso2.github.io/
Apache License 2.0
748 stars 728 forks source link

Application Management API #18882

Open sanjana0190 opened 10 months ago

sanjana0190 commented 10 months ago

Issue while creating service provider: Unable to create service provider using REST API. Endpoint - https://localhost:9443/t/carbon.super/api/server/v1/applications

How to reproduce: Ran WSO2is-6.1.0 Copied the curl command of the create application with the basic auth as admin in postman curl -X 'POST' \ 'https://localhost:9443/t/carbon.super/api/server/v1/applications' \ -H 'accept: /' \ -H 'Authorization: Basic YWRtaW46YWRtbWlu' \ -H 'Content-Type: application/json' \ -d '{ "name": "pickup", "description": "This is the configuration for Pickup application.", "imageUrl": "https://example.com/logo/my-logo.png", "accessUrl": "https://example.com/login", "templateId": "980b8tester24c64a8a09a0d80abf8c337bd2555", "isManagementApp": false, "claimConfiguration": { "dialect": "LOCAL", "claimMappings": [ { "applicationClaim": "firstname", "localClaim": { "uri": "http://wso2.org/claims/username" } } ], "requestedClaims": [ { "claim": { "uri": "http://wso2.org/claims/username" }, "mandatory": false } ], "subject": { "claim": { "uri": "http://wso2.org/claims/username" }, "includeUserDomain": false, "includeTenantDomain": false, "useMappedLocalSubject": false }, "role": { "mappings": [ { "localRole": "admin", "applicationRole": "Administrator" } ], "includeUserDomain": true, "claim": { "uri": "http://wso2.org/claims/username" } } }, "inboundProtocolConfiguration": { "saml": { "metadataFile": "Base64 encoded metadata file content", "metadataURL": "https://example.com/samlsso/meta", "manualConfiguration": { "issuer": "string", "serviceProviderQualifier": "string", "assertionConsumerUrls": [ "string" ], "defaultAssertionConsumerUrl": "string", "idpEntityIdAlias": "string", "singleSignOnProfile": { "bindings": [ "HTTP_POST" ], "enableSignatureValidationForArtifactBinding": false, "enableIdpInitiatedSingleSignOn": false, "assertion": { "nameIdFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "audiences": [ "https://app.example.com/saml" ], "recipients": [ "https://app.example.com/saml" ], "digestAlgorithm": "http://www.w3.org/2000/09/xmldsig#sha1", "encryption": { "enabled": false, "assertionEncryptionAlgorithm": "http://www.w3.org/2001/04/xmlenc#aes256-cbc", "keyEncryptionAlgorithm": "http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" } } }, "attributeProfile": { "enabled": false, "alwaysIncludeAttributesInResponse": false }, "singleLogoutProfile": { "enabled": true, "logoutRequestUrl": "string", "logoutResponseUrl": "string", "logoutMethod": "BACKCHANNEL", "idpInitiatedSingleLogout": { "enabled": false, "returnToUrls": [ "string" ] } }, "requestValidation": { "enableSignatureValidation": true, "signatureValidationCertAlias": "string" }, "responseSigning": { "enabled": true, "signingAlgorithm": "string" }, "enableAssertionQueryProfile": false } }, "oidc": { "clientId": "string", "clientSecret": "string", "grantTypes": [ "authorization_code", "password" ], "callbackURLs": [ "regexp=(https://app.example.com/callback1|https://app.example.com/callback2)" ], "allowedOrigins": [ "https://app.example.com" ], "publicClient": false, "pkce": { "mandatory": false, "supportPlainTransformAlgorithm": true }, "accessToken": { "type": "JWT", "userAccessTokenExpiryInSeconds": 3600, "applicationAccessTokenExpiryInSeconds": 3600, "bindingType": "cookie", "revokeTokensWhenIDPSessionTerminated": true, "validateTokenBinding": true }, "refreshToken": { "expiryInSeconds": 86400, "renewRefreshToken": true }, "idToken": { "expiryInSeconds": 3600, "audience": [ "http://idp.xyz.com", "http://idp.abc.com" ], "encryption": { "enabled": false, "algorithm": "RSA-OAEP", "method": "A128CBC+HS256" } }, "logout": { "backChannelLogoutUrl": "https://app.example.com/backchannel/callback", "frontChannelLogoutUrl": "https://app.example.com/frontchannel/callback" }, "validateRequestObjectSignature": false, "scopeValidators": [ "Role based scope validator", "XACML Scope Validator" ] }, "passiveSts": { "realm": "string", "replyTo": "string" }, "wsTrust": { "audience": "https://wstrust.endpoint.com", "certificateAlias": "wso2carbon" }, "custom": [ { "name": "cas", "configName": "cas", "properties": [ { "key": "app-identifier", "value": "http://app.wso2.com/employeeApp", "friendlyName": "Application Identifier" } ] } ] }, "authenticationSequence": { "type": "DEFAULT", "steps": [ { "id": 1, "options": [ { "idp": "LOCAL", "authenticator": "basic" } ] } ], "requestPathAuthenticators": [ "string" ], "script": "string", "subjectStepId": 1, "attributeStepId": 1 }, "advancedConfigurations": { "saas": false, "discoverableByEndUsers": false, "certificate": { "type": "string", "value": "string" }, "skipLoginConsent": false, "skipLogoutConsent": false, "returnAuthenticatedIdpList": false, "enableAuthorization": true, "additionalSpProperties": [ { "name": "isInternalApp", "value": "true", "displayName": "Internal Application" } ] }, "provisioningConfigurations": { "inboundProvisioning": { "proxyMode": false, "provisioningUserstoreDomain": "PRIMARY" }, "outboundProvisioningIdps": [ { "idp": "Google", "connector": "googleapps", "blocking": false, "rules": false, "jit": false } ] } }'

Expected behavior: Create a service provider with response of 200 ok

Environment information (Please complete the following information; remove any unnecessary fields) :


Optional Fields

Related issues:

image
DMHP commented 10 months ago

This error is expected as the payload contains "additionalSpProperties". This property contains some internal application data which we can not modify and is allowed only in the 'GET' requests not in the other types. This property needs to be documented properly.

@sanjana0190 Please make sure to remove the following part from the payload and re-try.

"additionalSpProperties": [ { "name": "isInternalApp", "value": "true", "displayName": "Internal Application" } ]