Mise à jour des expirations de jeton d'actualisation

Les jetons d'actualisation contiennent les informations nécessaires pour obtenir un nouveau jeton d'accès. En d'autres termes, chaque fois qu'un jeton d'accès est requis pour accéder à une ressource spécifique, un client peut utiliser un jeton d'actualisation pour obtenir un nouveau jeton d'accès émis par le serveur d'authentification.

Un cas d'utilisation courant consiste à obtenir de nouveaux jetons d'accès après l'expiration des anciens, par exemple un jeton d'accès expirant sur une application mobile. L'application mobile envoie le jeton d'actualisation pour obtenir un nouveau jeton d'accès sans qu'il soit nécessaire de mettre en mémoire cache le mot de passe de l'utilisateur.

Les jetons d'actualisation expirent, mais sont généralement de longue durée.

Suivez les étapes ci-dessous pour savoir combien de temps le jeton d'actualisation est valide ou quand vous devez mettre à jour la valeur du jeton d'actualisation.
Note

La valeur par défaut de l'attribut refreshTokenExpiry est de sept jours. La valeur est indiquée en secondes : 604800.

Obtenir la valeur d'expiration du jeton d'actualisation courant

Faites une demande GET au point d'extrémité /Apps, en demandant un ID application spécifique, puis spécifiez l'attribut refreshTokenExpiry.

Exemple de demande

GET <domainURL>/admin/v1/Apps/{{appID}}?attributes=refreshTokenExpiry

Exemple de réponse

L'attribut refreshTokenExpiry est retourné dans la réponse (en gras dans l'exemple).

{
    "isAliasApp": false,
    "displayName": "ResourceOwner",
    "refreshTokenExpiry": 604800,
    "id": "{{appID}}",
    "basedOnTemplate": {
        "value": "CustomWebAppTemplateId"
    }
}

Vous pouvez également faire une demande GET au point d'extrémité /Apps, en demandant un ID application spécifique pour retourner tous les attributs propres à l'application, y compris l'attribut refreshTokenExpiry.

Exemple de demande

GET <domainURL>/admin/v1/Apps/{{appID}}

Exemple de réponse

L'attribut refreshTokenExpiry est retourné dans la réponse (en gras dans l'exemple).

{
    "accessTokenExpiry": 3600,
    "clientType": "confidential",
    "isAliasApp": false,
    "audience": "<domainURL>",
    "meta": {
        "created": "2022-06-25T16:10:26.953Z",
        "lastModified": "2022-06-25T20:37:14.039Z",
        "resourceType": "App",
        "location": "https://<domainURL>/admin/v1/Apps/9fc12da9eecd4927a9ef88512ce5612e"
    },
    "active": true,
    "isLoginTarget": true,
    "idcsCreatedBy": {
        "display": "admin opc",
        "type": "User",
        "value": "855344f8015347e1a26c1ac9b2a2898e",
        "$ref": "https://<domainURL>/admin/v1/Users/855344f8015347e1a26c1ac9b2a2898e"
    },
    "displayName": "ResourceOwner",
    "showInMyApps": false,
    "isMobileTarget": false,
    "allowOffline": true,
    "isUnmanagedApp": false,
    "idcsLastModifiedBy": {
        "display": "OAuthClient",
        "type": "App",
        "value": "66efab799b084c21bf84edcf1f587380",
        "$ref": "https://<domainURL>/admin/v1/Apps/66efab799b084c21bf84edcf1f587380"
    },
    "isOPCService": false,
    "refreshTokenExpiry": 604800,
    "name": "3fd7476a48a94381bd5e1bc88cc92021",
    "isOAuthClient": true,
    "isManagedApp": false,
    "isSamlServiceProvider": false,
    "infrastructure": false,
    "allUrlSchemesAllowed": true,
    "trustScope": "Explicit",
    "id": "9fc12da9eecd4927a9ef88512ce5612e",
    "isWebTierPolicy": false,
    "loginMechanism": "OIDC",
    "allowAccessControl": false,
    "isOAuthResource": true,
    "migrated": false,
    "isKerberosRealm": false,
    "attrRenderingMetadata": [
        {
            "name": "aliasApps",
            "visible": false
        }
    ],
    "basedOnTemplate": {
        "lastModified": "2022-05-04T10:47:12Z",
        "value": "CustomWebAppTemplateId",
        "$ref": "https://<domainURL>/admin/v1/AppTemplates/CustomWebAppTemplateId"
    },
    "redirectUris": [
        "http://localhost:8943"
    ],
    "allowedGrants": [
        "client_credentials",
        "refresh_token",
        "authorization_code"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:App"
    ],
    "clientSecret": "this-is-not-the-secret",
    "grantedAppRoles": [
        {
            "value": "29722be952c14f9fac5237e5dd088660",
            "$ref": "https://<domainURL>/admin/v1/AppRoles/29722be952c14f9fac5237e5dd088660",
            "appId": "IDCSAppId",
            "display": "identity domain administrator",
            "type": "direct",
            "appName": "IDCSApp",
            "adminRole": true
        },
        {
            "value": "6aa28be4b79143099e90e5dcdd820844",
            "$ref": "https://<domainURL>/admin/v1/AppRoles/6aa28be4b79143099e90e5dcdd820844",
            "appId": "IDCSAppId",
            "display": "Me",
            "type": "direct",
            "appName": "IDCSApp",
            "adminRole": true
        },
        {
            "value": "99224c8907d84560b9621dcda9ecb8b4",
            "$ref": "https://<domainURL>/admin/v1/AppRoles/99224c8907d84560b9621dcda9ecb8b4",
            "appId": "IDCSAppId",
            "display": "Cloud Gate",
            "type": "direct",
            "appName": "IDCSApp",
            "adminRole": true
        }
    ]
}

Modifier la valeur du jeton d'actualisation

Pour mettre à jour la valeur de l'attribut refreshTokenExpiry, effectuez une demande PATCH au point d'extrémité /Apps en spécifiant l'ID application, puis définissez la valeur de l'attribut refreshTokenExpiry mise à jour dans les données utiles.

Exemple de demande

PATCH <domainURL>/admin/v1/Apps/{{appid}}
{
  "schemas": [
    "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [{
      "op": "replace",
      "path": "refreshTokenExpiry",
      "value": 904800 
   }
]
}

Exemple de réponse

La réponse retournée inclut la valeur d'attribut refreshTokenExpiry mise à jour (en gras dans l'exemple).

{
    "accessTokenExpiry": 3600,
    "clientType": "confidential",
    "isAliasApp": false,
    "audience": "https://<domainURL>",
    "meta": {
        "created": "2022-06-25T16:10:26.953Z",
        "lastModified": "2022-06-25T20:37:14.039Z",
        "resourceType": "App",
        "location": "https://<domainURL>/admin/v1/Apps/9fc12da9eecd4927a9ef88512ce5612e"
    },
    "active": true,
    "isLoginTarget": true,
    "idcsCreatedBy": {
        "display": "admin opc",
        "type": "User",
        "value": "855344f8015347e1a26c1ac9b2a2898e",
        "$ref": "https://<domainURL>/admin/v1/Users/855344f8015347e1a26c1ac9b2a2898e"
    },
    "displayName": "ResourceOwner",
    "showInMyApps": false,
    "isMobileTarget": false,
    "allowOffline": true,
    "isUnmanagedApp": false,
    "idcsLastModifiedBy": {
        "display": "OAuthClient",
        "type": "App",
        "value": "66efab799b084c21bf84edcf1f587380",
        "$ref": "https://<domainURL>/admin/v1/Apps/66efab799b084c21bf84edcf1f587380"
    },
    "isOPCService": false,
    "refreshTokenExpiry": 904800,
    "name": "3fd7476a48a94381bd5e1bc88cc92021",
    "isOAuthClient": true,
    "isManagedApp": false,
    "isSamlServiceProvider": false,
    "infrastructure": false,
    "allUrlSchemesAllowed": true,
    "trustScope": "Explicit",
    "id": "9fc12da9eecd4927a9ef88512ce5612e",
    "isWebTierPolicy": false,
    "loginMechanism": "OIDC",
    "allowAccessControl": false,
    "isOAuthResource": true,
    "migrated": false,
    "isKerberosRealm": false,
    "attrRenderingMetadata": [
        {
            "name": "aliasApps",
            "visible": false
        }
    ],
    "basedOnTemplate": {
        "lastModified": "2022-05-04T10:47:12Z",
        "value": "CustomWebAppTemplateId",
        "$ref": "https://<domainURL>/admin/v1/AppTemplates/CustomWebAppTemplateId"
    },
    "redirectUris": [
        "http://localhost:8943"
    ],
    "allowedGrants": [
        "client_credentials",
        "refresh_token",
        "authorization_code"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:App"
    ],
    "clientSecret": "this-is-not-the-secret",
    "grantedAppRoles": [
        {
            "value": "29722be952c14f9fac5237e5dd088660",
            "$ref": "https://<domainURL>/admin/v1/AppRoles/29722be952c14f9fac5237e5dd088660",
            "appId": "IDCSAppId",
            "display": "identity domain administrator",
            "type": "direct",
            "appName": "IDCSApp",
            "adminRole": true
        },
        {
            "value": "6aa28be4b79143099e90e5dcdd820844",
            "$ref": "https://<domainURL>/admin/v1/AppRoles/6aa28be4b79143099e90e5dcdd820844",
            "appId": "IDCSAppId",
            "display": "Me",
            "type": "direct",
            "appName": "IDCSApp",
            "adminRole": true
        },
        {
            "value": "99224c8907d84560b9621dcda9ecb8b4",
            "$ref": "https://<domainURL>/admin/v1/AppRoles/99224c8907d84560b9621dcda9ecb8b4",
            "appId": "IDCSAppId",
            "display": "Cloud Gate",
            "type": "direct",
            "appName": "IDCSApp",
            "adminRole": true
        }
    ]
}