Safewhere Identify 5.15 REST API Release Notes
This document summarizes all changes made to Identify REST API in version 5.15.
The default message template is selected when the REST API does not include the "Accept-Language" header
In previous versions, when using the REST API with mail delivery, such as creating a user with mail delivery, the default message template was not selected if the API request did not include the additional "Accept-Language" header.
In version 5.15, the default message template is now selected when the REST API request does not include the "Accept-Language" header or when its value is "*" in the "Accept-Language" header.
Users endpoint
The request URL parameter of a HTTPRequest configuration section has a new attribute:
{
"userId": "string",
"firstFactorConnectionName": "string",
"firstFactorConnectionDescription": "string", (*)
"secondFactorConnectionName": "string",
"secondFactorConnectionDescription": "string",
"enabledAuthenticator": true,
"secretCode": "string"
}
New configuration fields:
- firstFactorConnectionDescription.
Affected operations:
GET /authenticators
.Behaviors:
Name Data type Require? Default value Description firstFactorConnectionDescription string ⬜️ N/A The detailed description of a first-factor connection.
SMS configuration endpoint
The request URL parameter of a HTTPRequest configuration section has a new attribute:
{
"parameters": {
"requestUrlParameters": [
{
"sensitive": true,
"isHeaderParameter": false, (*)
"key": "username",
"value": "usernamevalue"
}
],
...,
"httpMethod": "GET"
},
"name": "HTTPRequestSmsGatewayConfiguration",
"displayName": "HTTPRequestSmsGatewayConfiguration",
"url": "http://path_to_the_server_endpoint/sendsms",
"providerType": "HTTPRequest",
"isDefault": true,
"smsTemplateName": "DefaultSMSOTPCodeTemplate"
}
New configuration fields:
- isHeaderParameter:
- Supported value:
true
orfalse
- Default value:
false
- Supported value:
- isHeaderParameter:
Affected operations:
GET /smsgateway
,POST /smsgateway
,PUT /smsgateway
.Behaviors:
Name Data type Require? Default value Description isHeaderParameter boolean ⬜️ false When isHeaderParameter is true, the parameter is added to the request's header list instead of request URL
Connections endpoint
The find criterion of a certificate reference configuration section model has some new attributes:
{
"isSelfSigned": false,
"revocationCheck": "None",
"storeReference": {
"storeName": "TrustedPeople",
"storeLocation": "CurrentUser"
},
"findCriterion": {
"findType": "FindByThumbprint",
"value": "3C1FD735A4035E3B78D33444DE5327C393AA282E",
"validOnly": true (*)
},
"keyName": "" (*)
},
New configuration fields:
- validOnly:
- Supported value:
true
orfalse
- Default value:
true
- Supported value:
- keyName: Its value is extracted from the KeyName field within the KeyDescriptor of the SAML metadata.
- validOnly:
Affected operations:
POST /connections
,PUT /connections
.Behaviors:
Name Data type Require? Default value Description validOnly string ⬜️ true It allows accepting and saving a WSFED/WSTrust application that has expired or revoked certificates when configuring the Received Security Token Encryption certificate
settingkeyName string ⬜️ N/A If the KeyDescriptor of the uploaded metadata contains a KeyName value, it will be preserved in this field
The OAuth authentication connection configuration section model has some new attributes:
"configurations": [
{
"clientId": "clientid",
"clientSecret": "cliensecret",
...,
"allowSamlBearerFlow": false, (*)
"allowJwtBearerFlow": false, (*)
"bootstrapTokenTrustedIssuers": [ (*)
{
"certificateReference": {
"isSelfSigned": false,
"revocationCheck": "None",
"storeReference": {
"storeName": "TrustedPeople",
"storeLocation": "CurrentUser"
},
"findCriterion": {
"findType": "FindByThumbprint",
"value": "",
"validOnly": false
}
},
"issuer": "https://path.to/token.idp"
}
],
"receivedSecurityTokenEncryptionCertificate": { (*)
"isSelfSigned": false,
"revocationCheck": "None",
"storeReference": {
"storeName": "TrustedPeople",
"storeLocation": "LocalMachine"
},
"findCriterion": {
"findType": "FindByThumbprint",
"value": "",
"validOnly": false
}
},
"receivedSecurityTokenAzureKeyVault": { (*)
"azureKeyVaultEnable": false,
"useManagedIdentity": false,
"azureTenantId": "",
"azureClientId": "",
"azureClientSecret": "",
"azureKeyVaultUrl": "",
"azureKeyVaultKeyName": "",
"base64Certificate": "",
"keyVaultMode": "Certificate"
},
"validateTargetAudience": false, (*)
"detectReplayAttackWhenDoingTokenExchange": false, (*)
"signingCertificateRevocationCheck": "None", (*)
...
}
],
New configuration fields:
- allowSamlBearerFlow
- Supported value:
true
orfalse
- Default value:
false
- Supported value:
- allowJwtBearerFlow:
- Supported value:
true
orfalse
- Default value:
false
- Supported value:
- bootstrapTokenTrustedIssuers.
- receivedSecurityTokenEncryptionCertificate.
- receivedSecurityTokenAzureKeyVault.
- validateTargetAudience
- Supported value:
true
orfalse
- Default value:
false
- Supported value:
- detectReplayAttackWhenDoingTokenExchange
- Supported value:
true
orfalse
- Default value:
false
- Supported value:
- signingCertificateRevocationCheck:
- Supported modes:
None
,CheckEndCert
,CheckEndCertCacheOnly
,CheckChain
,CheckChainCacheOnly
,CheckChainExcludeRoot
, andCheckChainExcludeRootCacheOnly
- Default value:
None
- Supported modes:
- allowSamlBearerFlow
Affected operations:
POST /connections
,PUT /connections
.Behaviors:
Name Data type Require? Default value Description allowSamlBearerFlow boolean ⬜️ false Allow SAML bearer flow allowJwtBearerFlow boolean ⬜️ false Allow JWT bearer flow bootstrapTokenTrustedIssuers list of objects ⬜️ N/A Bootstrap token trusted issuers receivedSecurityTokenEncryptionCertificate object ⬜️ N/A Received security token encryption certificate receivedSecurityTokenAzureKeyVault object ⬜️ N/A Received security token Azure key vault validateTargetAudience boolean ⬜️ false Validate target audience detectReplayAttackWhenDoingTokenExchange boolean ⬜️ false Detect replay attack when doing token exchange signingCertificateRevocationCheck enum = {Node, CheckEndCert, CheckEndCertCacheOnly,
CheckChain, CheckChainCacheOnly,
CheckChainExcludeRoot or CheckChainExcludeRootCacheOnly.}⬜️ None Specifies the signing certificate revocation check mode