Identity Confidence Score API
23 days ago

Summary 

This article explains how to use specific endpoints to request and update a user's identity confidence score when developing a custom authentication agent or portal. These endpoints are not required when using RSA My Page or RSA Web-Based Agents.    


Important Note:

  • RISK AI is an optional ID Plus feature and may not be available to all ID Plus customers.
  • The endpoints described in this article are not enabled by default for RISK AI users. To use these endpoints, contact RSA for assistance.

         

Identity Confidence Score API

Use this public API endpoint to request a user's identity confidence score based on the information included in the request. Invoke this endpoint before or during the associated authentication event.

The response returns a transactionId, which is required when submitting a subsequent update request to update the user's identity confidence score.

       

Score Request URL 

https://example.auth-dev.securid.com/mfa/v1_1/identityconfidence/score

    

Request Headers 

Connection: keep-alive
Content-Type: application/json; charset=utf-8
Accept: application/json
client-key: dff4e77689bd118d01427ead7b092fe61f86b2ca

     

JSON Payload 

{
  "subjectName": "johnsmith@example.com", 
  "initiatingIp": "128.221.224.77",
  "html5Latitude": 47.61070354245329,
  "html5Longitude": -122.2028987590239,
  "geoLocationCollTimestamp": 1602008314509,
  "uniqueIdentifyingId": "73d03f80-877e-4e7f-8388-daa89176bd39",
  "tenantId": "example",
  "clientId": "client-ex",
  "httpHeaders": {
    "content-type": "application/x-www-form-urlencoded",
    "accept-language": "en-us",
    "connection": "keep-alive",
    "accept-encoding": "gzip, deflate",
    "Origin": "https://portal.example.com",
   },
"riskFingerprint":"version%3D%3D1%2E0%2E0%2E0%2E0%26rsa%5Frisk%5FuserAgent%3D%3DNaviUA%3Dmozilla%2F5%2E0%20%28x11%3B%20linux%20x86%5F64%29%20applewebkit%2F537%2E36%20%28khtml%2C%20like%20gecko%29%20chrome%2F84%2E0%2E4147%2E135%20safari%2F537%2E36%7CNaviAppVer%3D5%2E0%20%28X11%3B%20Linux%20x86%5F64%29%20AppleWebKit%2F537%2E36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F84%2E0%2E4147%2E135%20Safari%2F537%2E36%7CNaviPlatform%3DLinux%20x86%5F64%7CNaviProduct%3DGecko%7CNaviVendor%3DGoogle%20Inc%2E%7CNaviProductSub%3D20030107%7CNaviVendorSub%3D%26rsa%5Frisk%5FscreenInfo%3D%3D24%7C1920%7C1080%7C1920%7C1055%26rsa%5Frisk%5Ftimezone%3D%3D%2D5%26rsa%5Frisk%5Flanguage%3D%3Dlang%3Den%2DUS%7Csyslang%3D%7Cuserlang%3D%26rsa%5Frisk%5Fjava%3D%3D0%26rsa%5Frisk%5FcookieEnabled%3D%3D1%26rsa%5Frisk%5FgeoLocationEnabled%3D%3D1%26rsa%5Frisk%5FallSoftware%3D%3Dinternal%2Dpdf%2Dviewer%7Cmhjfbmdgcfjbbpaeojofohoefgiehjai%7Cinternal%2Dnacl%2Dplugin%26rsa%5Frisk%5FnaviAppName%3D%3DNetscape%26rsa%5Frisk%5FappCodeName%3D%3DMozilla%26rsa%5Frisk%5Fonline%3D%3Dtrue%26rsa%5Frisk%5FosProfile%3D%3D%26rsa%5Frisk%5FuserProfile%3D%3D%26rsa%5Frisk%5FscreenPixelDepth%3D%3D24%26rsa%5Frisk%5FscreenBufferDepth%3D%3D%26rsa%5Frisk%5FscreenDeviceXPI%3D%3D%26rsa%5Frisk%5FscreenDeviceYDPI%3D%3D%26rsa%5Frisk%5FscreenLogicalXDPI%3D%3D%26rsa%5Frisk%5FscreenLogicalYDPI%3D%3D%26rsa%5Frisk%5FscreenSystemXDPI%3D%3D%26rsa%5Frisk%5FscreenSystemYDPI%3D%3D%26rsa%5Frisk%5FwindowDevicePixelRatio%3D%3D0%2E8999999761581421%26rsa%5Frisk%5Fwindow%5FpositionXY%3D%3D0%7C0%26rsa%5Frisk%5FwindowOuterWH%3D%3D1920%7C1055%26rsa%5Frisk%5FwindowInnerWH%3D%3D2133%7C1056%26rsa%5Frisk%5FscreenFontSmoothingEnabled%3D%3D%26rsa%5Frisk%5FscreenUpdateInterval%3D%3D%26rsa%5Frisk%5Ffonts%3D%3DArial%7CCourier%20New%7CLoma%7CRachana%7CSawasdee%7CTimes%20New%20Roman%7CTlwgMono%7CUbuntu%7CUmpush%26rsa%5Frisk%5Flatency%3D%3D10401%7C10413%26rsa%5Frisk%5Fcanvas%3D%3D9815bb5b3e8f63d75c8a101dd351d6a6948a2e5894f3878ec66508f1ef537ea6"
}

    

Include the following parameters in the JSON payload when making the request. 

AttributeRequired/OptionalExample ValueComments
tenantIdOptionalexampleValid Company ID. This is also provided in the request URL. If provided, this value must match the Company ID derived from the request URL, or the call may be rejected.
clientIdOptionalclient-ex
Client identifier. This can be a logical client ID (for example, RADIUS or Chrome) or the fully qualified host name (FQHN) of the client system. The server may use this value for access control decisions. If no clientId is provided, a default value may be derived from the HTTP request headers.
subjectName
Required johnsmith@example.com
User/Account identifier. This contains the login ID of the principal requesting authentication. The format depends on the context. This value can be an AD samAccountName or an email address.
riskFingerprint
Required 

RSA Risk Fingerprint. Obtained from rsa-1.0.0.0.0.min.js and sha256.js via the browser. Contact RSA to obtain these files.

Use the rsa-1.0.0.0.0.min.js and sha256.js libraries to generate the riskFingerprint value in the browser. 

var rsa_tp = encode_deviceprint();
var rsa_tp_canvas = urlEncode("&rsa_risk_canvas==" + sha256.hash(deviceprint_canvas()));
riskFingerprint = rsa_tp + rsa_tp_canvas;
html5Latitude
Optional47.61075728855224
Obtained from browser geolocation. Providing this value returns a more accurate identity confidence score. If provided, html5Longitude and geoLocationCollTimestamp should also be provided.
html5Longitude
Optional-122.20280563982418
Obtained from browser geolocation. Providing this value returns a more accurate identity confidence score. If provided, html5Latitude and geoLocationCollTimestamp should also be provided.
geoLocationCollTimestamp
Optional1500107850434
The EPOCH time (in milliseconds) obtained from browser geolocation when html5Latitude and html5Longitude are collected. Providing this value returns a more accurate identity confidence score. If provided, html5Latitude and html5Longitude should also be provided.
uniqueIdentifyingId
Required649dc11b-00ec-4c36-b4fd-86b1e0ad8824
A Unique Identifying Cookie (UUID) to identify the User/Account device. For a request originating from the same device, use the same cookie/ID. For a new device, use a new cookie/ID.
initiatingIp
Required1.2.3.4
IP address of the user.
header.XXXX
Required

"content-type":"application/json;charset=UTF-8",

"accept-language":"en-US,en;q=0.8" and so on.

Key/value list of all HTTP Request Headers.

     

Expected Response 

{
 "transactionId": "8d8464f7-9aaf-4621-adee-9b75a975ded7",
 "score": 0.20448663494348018,
 "scoreThreshold": 0.37,
 "normalizedScore": "LOW",
 "miniScores": {
   "deviceConfidence": 0.37224438513720404,
   "behaviorConfidence": 0.4432296864706946,
   "locationConfidence": 0.17309866349362057
 },
 "contributingFactors": {
   "New cookie or multiple cookies": 0,
   "Region or state changed": 0.0010233335866157711,
   "ISP changed": 0.008350620812921594,
   "Device language changed": 0.011702074050407907
 },
 "scoreResponseCode": "SUCCESS",
 "scoreReasonCode": null
}

        

Identity Confidence Update API

Use this public API endpoint to update a user's identity confidence score associated with a previously submitted scoring request. The update must be submitted within 15 minutes of the original score request and requires the transactionId returned in the score response. This is critical for the learning capability of the risk engine.

     

Update Request URL

https://example.auth-dev.securid.com/mfa/v1_1/identityconfidence/update

     

Request Headers 

Connection: keep-alive
Content-Type: application/json; charset=utf-8
Accept: application/json
client-key: dff4e77689bd118d01427ead7b092fe61f86b2ca

    

JSON Payload 

{
"tenantId": "example", 
"clientId": "client-ex",
"transactionId": "e8d8464f7-9aaf-4621-adee-9b75a975ded7",
"authenticationResult": "SUCCESS",
"satisfiedMethods": ["FIDO", "APPROVE"],
"failedMethods": null
}

    

Include the following parameters in the JSON payload when making the request. 

AttributeRequired/OptionalExample ValueComments
tenantIdOptionalexampleValid Company ID. This is also provided in the request URL. If provided, this value must match the Company ID derived from the request URL, or the call may be rejected.
clientIdOptionalclient-ex
Client identifier. This can be a logical client ID (for example, RADIUS or Chrome) or the fully qualified host name (FQHN) of the client system. The server may use this value for access control decisions. If no clientId is provided, a default value may be derived from the HTTP request headers.
transactionId
Requirede8d8464f7-9aaf-4621-adee-9b75a975ded7
Used to update the identity confidence score obtained in a previous score call. The value is from the ScoreResponse#transactionId obtained from the score call.
authenticationResult
Required
One of "SUCCESS", "FAILED", "ABANDONED", "ACCESS_DENIED", "NOCHALLENGE"
Used to update the identity confidence score obtained from a score call. SUCCESS and NOCHALLENGE are positive conditions. Other values are failure conditions. 
satisfiedMethods
Optional
["FIDO", "APPROVE"]
Provides a list of MethodIds that were successfully completed. For example, "APPROVE", "SECURID", "FINGERPRINT".
failedMethods
Optional
["SECURID"]
Provides a list of MethodIds that failed authentication. For example, "FIDO", "PASSWORD".

     

Expected Response 

{  
  "updateResponseCode":"SUCCESS",  
  "updateReasonCode":null
}