Abläufe von Aktualisierungstoken aktualisieren

Aktualisierungstoken enthalten die Informationen, die zum Abrufen eines neuen Zugriffstokens erforderlich sind. Mit anderen Worten: Wenn ein Zugriffstoken für den Zugriff auf eine bestimmte Ressource erforderlich ist, kann ein Client ein Aktualisierungstoken verwenden, um ein neues Zugriffstoken zu erhalten, das vom Authentifizierungsserver ausgegeben wird.

Ein häufiger Anwendungsfall ist das Abrufen neuer Zugriffstoken, nachdem alte Token abgelaufen sind, wie z.B. ein Zugriffstoken, das in einer App abläuft. Die App sendet das Aktualisierungstoken, um ein neues Zugriffstoken abzurufen, ohne dass das Benutzerkennwort im Cache gespeichert werden muss.

Aktualisierungstoken laufen ab, sind jedoch in der Regel langlebig.

Gehen Sie folgendermaßen vor, um zu sehen, wie lange das Aktualisierungstoken gültig ist oder wann Sie den Wert des Aktualisierungstokens aktualisieren müssen.
Hinweis

Der Standardwert für das Attribut refreshTokenExpiry ist sieben Tage. Der Wert wird in Sekunden angegeben: 604800.

Ablaufwert für aktuelles Aktualisierungstoken abrufen

Stellen Sie eine GET-Anforderung an den Endpunkt /Apps, indem Sie eine bestimmte App-ID anfordern, und geben Sie dann das Attribut refreshTokenExpiry an.

Anforderungsbeispiel

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

Antwortbeispiel

Das Attribut refreshTokenExpiry wird in der Antwort zurückgegeben (im Beispiel fett formatiert).

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

Alternativ können Sie eine GET-Anforderung an den Endpunkt /Apps senden und eine bestimmte App-ID anfordern, um alle anwendungsspezifischen Attribute zurückzugeben, einschließlich des Attributs refreshTokenExpiry.

Anforderungsbeispiel

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

Antwortbeispiel

Das Attribut refreshTokenExpiry wird in der Antwort zurückgegeben (im Beispiel fett formatiert).

{
    "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
        }
    ]
}

Wert für Aktualisierungstoken ändern

Um den Attributwert refreshTokenExpiry zu aktualisieren, erstellen Sie eine PATCH-Anforderung an den Endpunkt /Apps, indem Sie die App-ID angeben, und definieren Sie dann den aktualisierten Attributwert refreshTokenExpiry in der Payload.

Anforderungsbeispiel

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

Antwortbeispiel

Die zurückgegebene Antwort enthält den aktualisierten Attributwert refreshTokenExpiry (im Beispiel fett formatiert).

{
    "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
        }
    ]
}