From a51a7f7b622b720f1ab078117a310901003ce3a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rune=20T=C3=B8mmer=C3=A5s=20Larsen?= Date: Tue, 24 Sep 2024 08:22:02 +0200 Subject: [PATCH] Updates docs (#1798) --- .../smartcloud.drawio.svg | 97 + .../altinn-platform-authentication-v1.json | 1706 ++++++++++++++++- 2 files changed, 1753 insertions(+), 50 deletions(-) create mode 100644 content/authentication/guides/systemauthentication-for-systemproviders/smartcloud.drawio.svg diff --git a/content/authentication/guides/systemauthentication-for-systemproviders/smartcloud.drawio.svg b/content/authentication/guides/systemauthentication-for-systemproviders/smartcloud.drawio.svg new file mode 100644 index 00000000000..b1fb40b5916 --- /dev/null +++ b/content/authentication/guides/systemauthentication-for-systemproviders/smartcloud.drawio.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + +
+
+
+ SmartCloud +
+
+
+
+ + SmartCloud + +
+
+ + + + +
+
+
+ Altinn Authentisering +
+
+
+
+ + Altinn Auth... + +
+
+ + + + + + + + + + +
+
+
+ API Eier +
+
+
+
+ + API Eier + +
+
+ + + + + +
+
+
+ Altinn Authorisasjon +
+
+
+
+ + Altinn Auth... + +
+
+
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file diff --git a/static/swagger/altinn-platform-authentication-v1.json b/static/swagger/altinn-platform-authentication-v1.json index 70ec99e29fb..b7b426a8cde 100644 --- a/static/swagger/altinn-platform-authentication-v1.json +++ b/static/swagger/altinn-platform-authentication-v1.json @@ -4,16 +4,6 @@ "title": "Altinn Platform Authentication", "version": "v1" }, - "servers": [ - { - "url": "https://platform.tt02.altinn.no/authentication/api/v1", - "description": "TT02" - }, - { - "url": "https://platform.altinn.no/authentication/api/v1", - "description": "Production" - } - ], "paths": { "/authentication": { "get": { @@ -27,9 +17,7 @@ "in": "query", "description": "The url to redirect to if everything validates ok", "schema": { - "type": "string", - "description": "The url to redirect to if everything validates ok", - "nullable": true + "type": "string" } }, { @@ -37,14 +25,36 @@ "in": "query", "description": "Parameter to indicate disabling of reportee selection in Altinn Portal.", "schema": { - "type": "boolean", - "description": "Parameter to indicate disabling of reportee selection in Altinn Portal." - } - } + "type": "boolean" + } + } ], "responses": { - "200": { - "description": "Success" + "302": { + "description": "Found" + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "503": { + "description": "Service Unavailable" } } } @@ -57,7 +67,44 @@ "summary": "Refreshes JwtToken.", "responses": { "200": { - "description": "Success" + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } } } } @@ -74,8 +121,7 @@ "in": "path", "required": true, "schema": { - "type": "string", - "nullable": true + "type": "string" } }, { @@ -88,7 +134,67 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "429": { + "description": "Too Many Requests" } } } @@ -98,28 +204,29 @@ "tags": [ "Introspection" ], - "summary": "Validate token.", + "summary": "Validates provided token.", "requestBody": { + "description": "Gets or sets the token", "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "properties": { - "Token": { + "token": { "type": "string", - "description": "The JWT access token" + "description": "Gets or sets the token" }, - "TokenTypeHint": { + "token_type_hint": { "type": "string", - "description": "The token type hint" + "description": "Gets or sets the token type hint" } } }, "encoding": { - "Token": { + "token": { "style": "form" }, - "TokenTypeHint": { + "token_type_hint": { "style": "form" } } @@ -128,7 +235,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -140,6 +247,32 @@ } } }, + "/logout": { + "get": { + "tags": [ + "Logout" + ], + "summary": "Logs out user", + "responses": { + "302": { + "description": "Found" + } + } + } + }, + "/frontchannel_logout": { + "get": { + "tags": [ + "Logout" + ], + "summary": "Frontchannel logout for OIDC", + "responses": { + "200": { + "description": "OK" + } + } + } + }, "/openid/.well-known/openid-configuration": { "get": { "tags": [ @@ -148,7 +281,14 @@ "summary": "Returns a discovery document", "responses": { "200": { - "description": "Success" + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DiscoveryDocument" + } + } + } } } } @@ -161,29 +301,1495 @@ "summary": "Returns the JSON Web Key Set to use when validating a token.", "responses": { "200": { - "description": "Success" + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JwksDocument" + } + } + } } } } - } - }, - "components": { - "schemas": { - "IntrospectionResponse": { - "type": "object", - "properties": { - "active": { - "type": "boolean", - "description": "Gets or sects the active property indicating if the request token was valid" - }, - "iss": { - "type": "string", - "description": "Gets or sets the issuer of the validated request token.", - "nullable": true + }, + "/systemuser/request/vendor": { + "post": { + "tags": [ + "RequestSystemUser" + ], + "summary": "Creates a new Request based on a SystemId for a SystemUser.", + "requestBody": { + "description": "The request model", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUser" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUser" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUser" + } + } } }, - "additionalProperties": false, - "description": "Introspection response object" + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + } + } + } + } + } + }, + "/systemuser/request/vendor/{requestId}": { + "get": { + "tags": [ + "RequestSystemUser" + ], + "summary": "Retrieves the Status (Response model) for a Request\r\nbased only on the Request.Id GUID", + "parameters": [ + { + "name": "requestId", + "in": "path", + "description": "The UUID for the Request", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + } + } + } + } + } + }, + "/systemuser/request/vendor/byexternalref/{systemId}/{orgNo}/{externalRef}": { + "get": { + "tags": [ + "RequestSystemUser" + ], + "summary": "Retrieves the Status (Response model) for a Request\r\nbased on the SystemId, OrgNo and the ExternalRef \r\n( which is enforced as a unique combination )", + "parameters": [ + { + "name": "systemId", + "in": "path", + "description": "The Id for the chosen Registered System.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "externalRef", + "in": "path", + "description": "The chosen external ref the Vendor sent in to the Create Request", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orgNo", + "in": "path", + "description": "The organisation number for the customer", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + } + } + } + } + } + }, + "/systemuser/request/{party}/{requestId}": { + "get": { + "tags": [ + "RequestSystemUser" + ], + "summary": "Used by the BFF to authenticate the PartyId to retrieve the chosen Request by guid", + "parameters": [ + { + "name": "party", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requestId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + } + } + } + } + } + }, + "/systemuser/request/{party}/{requestId}/approve": { + "post": { + "tags": [ + "RequestSystemUser" + ], + "summary": "Approves the systemuser requet and creates a system user", + "parameters": [ + { + "name": "party", + "in": "path", + "description": "the partyId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requestId", + "in": "path", + "description": "The UUID of the request to be approved", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/CreateRequestSystemUserResponse" + } + } + } + } + } + } + }, + "/systemregister": { + "get": { + "tags": [ + "SystemRegister" + ], + "summary": "Retrieves the List of all the Registered Systems, except those marked as deleted.", + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RegisterSystemResponse" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RegisterSystemResponse" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RegisterSystemResponse" + } + } + } + } + } + } + } + }, + "/systemregister/system/{systemId}": { + "get": { + "tags": [ + "SystemRegister" + ], + "summary": "Retrieves a Registered System for the systemId.", + "parameters": [ + { + "name": "systemId", + "in": "path", + "description": "The Id of the Registered System", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/RegisterSystemResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegisterSystemResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/RegisterSystemResponse" + } + } + } + } + } + }, + "put": { + "tags": [ + "SystemRegister" + ], + "summary": "Replaces the entire registered system", + "parameters": [ + { + "name": "systemId", + "in": "path", + "description": "The Id of the Registered System", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The updated system model", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterUpdateResult" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterUpdateResult" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterUpdateResult" + } + } + } + } + } + }, + "delete": { + "tags": [ + "SystemRegister" + ], + "summary": "Set the registered system to be deleted.", + "parameters": [ + { + "name": "systemId", + "in": "path", + "description": "The human readable string id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterUpdateResult" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterUpdateResult" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterUpdateResult" + } + } + } + } + } + } + }, + "/systemregister/system/{systemId}/rights": { + "get": { + "tags": [ + "SystemRegister" + ], + "summary": "Retrieves a list of the predfined default rights for the Product type, if any", + "parameters": [ + { + "name": "systemId", + "in": "path", + "description": "The Id of the Product", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Right" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Right" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Right" + } + } + } + } + } + } + }, + "put": { + "tags": [ + "SystemRegister" + ], + "summary": "Updates the rights on a registered system", + "parameters": [ + { + "name": "systemId", + "in": "path", + "description": "The human readable string id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "A list of rights", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Right" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Right" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Right" + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterUpdateResult" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterUpdateResult" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterUpdateResult" + } + } + } + } + } + } + }, + "/systemregister/system": { + "post": { + "tags": [ + "SystemRegister" + ], + "summary": "Create a new System", + "requestBody": { + "description": "The descriptor model of a new Registered System", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SystemRegisterRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string", + "format": "uuid" + } + }, + "application/json": { + "schema": { + "type": "string", + "format": "uuid" + } + }, + "text/json": { + "schema": { + "type": "string", + "format": "uuid" + } + } + } + } + } + } + }, + "/systemuser/{party}": { + "get": { + "tags": [ + "SystemUser" + ], + "summary": "Returns the list of SystemUsers this PartyID has registered", + "parameters": [ + { + "name": "party", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "404": { + "description": "Not Found", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "post": { + "tags": [ + "SystemUser" + ], + "summary": "Creates a new SystemUser\r\nThe unique Id for the systemuser is handled by the db.\r\nBut the calling client may send a guid for the request of creating a new system user\r\nto ensure that there is no mismatch if the same partyId creates several new SystemUsers at the same time", + "parameters": [ + { + "name": "party", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemUserRequestDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SystemUserRequestDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SystemUserRequestDto" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemUser" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/systemuser/{party}/{systemUserId}": { + "get": { + "tags": [ + "SystemUser" + ], + "summary": "Return a single SystemUser by PartyId and SystemUserId", + "parameters": [ + { + "name": "party", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "systemUserId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "404": { + "description": "Not Found", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "delete": { + "tags": [ + "SystemUser" + ], + "summary": "Set the Delete flag on the identified SystemUser", + "parameters": [ + { + "name": "systemUserId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "party", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "404": { + "description": "Not Found", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/systemuser/byExternalId": { + "get": { + "tags": [ + "SystemUser" + ], + "summary": "Used by MaskinPorten, to find if a given systemOrg owns a SystemUser Integration for a Vendor's Product, by an ExternalId", + "parameters": [ + { + "name": "clientId", + "in": "query", + "description": "The unique id maintained by MaskinPorten tying their clients to the Registered Systems the ServiceProivders have created in our db.", + "schema": { + "type": "string" + } + }, + { + "name": "systemProviderOrgNo", + "in": "query", + "description": "The legal number (Orgno) of the Vendor creating the Registered System (Accounting system)", + "schema": { + "type": "string" + } + }, + { + "name": "systemUserOwnerOrgNo", + "in": "query", + "description": "The legal number (Orgno) of the party owning the System User Integration", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/systemuser": { + "put": { + "tags": [ + "SystemUser" + ], + "summary": "Replaces the values for the existing system user with those from the update", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemUserUpdateDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/SystemUserUpdateDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SystemUserUpdateDto" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + }, + "404": { + "description": "Not Found", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "AttributePair": { + "required": [ + "id", + "value" + ], + "type": "object", + "properties": { + "id": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "additionalProperties": false + }, + "CreateRequestSystemUser": { + "required": [ + "partyOrgNo", + "rights", + "systemId" + ], + "type": "object", + "properties": { + "externalRef": { + "type": "string", + "nullable": true + }, + "systemId": { + "minLength": 1, + "type": "string" + }, + "partyOrgNo": { + "minLength": 1, + "type": "string" + }, + "rights": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Right" + } + }, + "redirectUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "CreateRequestSystemUserResponse": { + "required": [ + "id", + "partyOrgNo", + "rights", + "status", + "systemId" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "externalRef": { + "type": "string", + "nullable": true + }, + "systemId": { + "minLength": 1, + "type": "string" + }, + "partyOrgNo": { + "minLength": 1, + "type": "string" + }, + "rights": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Right" + } + }, + "status": { + "minLength": 1, + "type": "string" + }, + "redirectUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DiscoveryDocument": { + "type": "object", + "properties": { + "issuer": { + "type": "string", + "description": "URL of the issuer", + "nullable": true + }, + "jwks_uri": { + "type": "string", + "description": "URL of the JSON Web Key Set document.", + "nullable": true + }, + "authorization_endpoint": { + "type": "string", + "description": "URL of the OAuth 2.0 Authorization Endpoint.", + "nullable": true + }, + "token_endpoint": { + "type": "string", + "description": "URL of the OAuth 2.0 Token Endpoint.", + "nullable": true + }, + "userinfo_endpoint": { + "type": "string", + "description": "Url of the UserInfo Endpoint.", + "nullable": true + }, + "end_session_endpoint": { + "type": "string", + "description": "URL of the end session Endpoint.", + "nullable": true + }, + "check_session_iframe": { + "type": "string", + "description": "URL for the session check Endpoint.", + "nullable": true + }, + "revocation_endpoint": { + "type": "string", + "description": "URL for the revocation endpoint.", + "nullable": true + }, + "introspection_endpoint": { + "type": "string", + "description": "URL for the introspection endpoint.", + "nullable": true + }, + "frontchannel_logout_supported": { + "type": "boolean", + "description": "Value indicating whether there is a front channel mechanism for logout.", + "nullable": true + }, + "frontchannel_logout_session_supported": { + "type": "boolean", + "description": "Value indicating wheter there is a front channel mechanism for session logout.", + "nullable": true + }, + "scopes_supported": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of supported scopes.", + "nullable": true + }, + "claims_supported": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of supported claims.", + "nullable": true + }, + "response_types_supported": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of supported response types.", + "nullable": true + }, + "response_modes_supported": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of supported response modes.", + "nullable": true + }, + "grant_types_supported": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of supported grant types.", + "nullable": true + }, + "subject_types_supported": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of supported subject types.", + "nullable": true + }, + "id_token_signing_alg_values_supported": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of supported signing algorithms.", + "nullable": true + }, + "token_endpoint_auth_methods_supported": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of supported authentication methods on the token endpoint.", + "nullable": true + }, + "code_challenge_methods_supported": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of supported code challenge methods.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Represents the well known discovery document described by \"OpenID Connect Discovery 1.0 incorporating errata set 1\"\r\nURL: https://openid.net/specs/openid-connect-discovery-1_0.html (and other specifications)" + }, + "IntrospectionResponse": { + "type": "object", + "properties": { + "active": { + "type": "boolean", + "description": "Gets or sects the active property indicating if the request token was valid" + }, + "iss": { + "type": "string", + "description": "Gets or sets the issuer of the validated request token.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Introspection response object" + }, + "JwkDocument": { + "type": "object", + "properties": { + "kty": { + "type": "string", + "description": "Gets or sets the type of key this is. E.g. RSA", + "nullable": true + }, + "use": { + "type": "string", + "description": "Gets or sets the type of use. E.g. sig", + "nullable": true + }, + "kid": { + "type": "string", + "description": "Gets or sets a unique id for the key.", + "nullable": true + }, + "e": { + "type": "string", + "description": "Gets or sets the RSA exponent value of the key.", + "nullable": true + }, + "n": { + "type": "string", + "description": "Gets or sets the RSA modulus value of the key.", + "nullable": true + }, + "x5c": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets a list of base64 encoded certificate where each new item is the parent certificate of the previous in a certificate chain.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Represents a Json Wen Key as described by \"JSON Web Key (JWK) draft-ietf-jose-json-web-key-41\"\r\nURL: https://tools.ietf.org/html/draft-ietf-jose-json-web-key-41" + }, + "JwksDocument": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JwkDocument" + }, + "description": "Gets or sets the list of keys in the key set.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Represents a Json Wen Key set as described by \"JSON Web Key (JWK) draft-ietf-jose-json-web-key-41\"\r\nURL: https://tools.ietf.org/html/draft-ietf-jose-json-web-key-41" + }, + "ProblemDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "status": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "detail": { + "type": "string", + "nullable": true + }, + "instance": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": { } + }, + "RegisterSystemResponse": { + "required": [ + "description", + "name", + "systemId", + "systemInternalId", + "systemName", + "systemVendorOrgName", + "systemVendorOrgNumber" + ], + "type": "object", + "properties": { + "systemInternalId": { + "type": "string", + "format": "uuid" + }, + "systemId": { + "minLength": 1, + "type": "string" + }, + "systemVendorOrgNumber": { + "minLength": 1, + "type": "string" + }, + "systemVendorOrgName": { + "minLength": 1, + "type": "string" + }, + "systemName": { + "minLength": 1, + "type": "string" + }, + "name": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "description": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "rights": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Right" + }, + "nullable": true + }, + "softDeleted": { + "type": "boolean" + }, + "isVisible": { + "type": "boolean" + }, + "allowedRedirectUrls": { + "type": "array", + "items": { + "type": "string", + "format": "uri" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Right": { + "type": "object", + "properties": { + "action": { + "type": "string", + "nullable": true + }, + "resource": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AttributePair" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SystemRegisterRequest": { + "required": [ + "clientId", + "description", + "id", + "name", + "vendor" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "vendor": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "name": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "description": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "singleRights": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Right" + }, + "nullable": true + }, + "isDeleted": { + "type": "boolean" + }, + "clientId": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "isVisible": { + "type": "boolean" + }, + "allowedRedirectUrls": { + "type": "array", + "items": { + "type": "string", + "format": "uri" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SystemRegisterUpdateResult": { + "type": "object", + "properties": { + "succeeded": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SystemUser": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "integrationTitle": { + "type": "string", + "nullable": true + }, + "systemId": { + "type": "string", + "nullable": true + }, + "productName": { + "type": "string", + "nullable": true + }, + "systemInternalId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "partyId": { + "type": "string", + "nullable": true + }, + "reporteeOrgNo": { + "type": "string", + "nullable": true + }, + "created": { + "type": "string", + "format": "date-time" + }, + "isDeleted": { + "type": "boolean" + }, + "supplierName": { + "type": "string", + "nullable": true + }, + "supplierOrgno": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SystemUserRequestDto": { + "type": "object", + "properties": { + "integrationTitle": { + "type": "string", + "nullable": true + }, + "systemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SystemUserUpdateDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "partyId": { + "type": "string", + "nullable": true + }, + "reporteeOrgNo": { + "type": "string", + "nullable": true + }, + "integrationTitle": { + "type": "string", + "nullable": true + }, + "systemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false } } }