Creazione e attivazione di un'applicazione client OAuth

In questa sezione vengono fornite richieste di esempio per creare e attivare un'applicazione client OAuth utilizzando l'API REST dei domini di Identity.

Creare un'applicazione client OAuth

Un'applicazione client OAuth è un client HTTP che può acquisire e quindi utilizzare un token di accesso. Esistono tre tipi di applicazioni client OAuth che è possibile creare: Riservato, Affidabile e Pubblico. Le applicazioni client riservate e sicure vengono specificate utilizzando CustomWebAppTemplateId come valore per l'attributo basedOnTemplate. L'applicazione client pubblica viene specificata utilizzando CustomBrowserMobileTemplateId come valore per l'attributo basedOnTemplate. Gli esempi riportati di seguito mostrano come creare una richiesta per creare ciascuno dei tipi di applicazione client.

Se si sta creando un'applicazione client OAuth che supporta le operazioni self-service, all'applicazione client deve essere concesso il ruolo "Io". Concedendo al client questo ruolo, il token di accesso generato contiene l'ambito "urn:opc:idm:t.user.me". Questo ambito consente al client di accedere agli endpoint per eseguire operazioni self-service quali /Me, /MyApps e così via. Utilizzare l'endpoint /Grants per concedere un AppRole a un'applicazione.

Nota

Se nella richiesta si utilizza l'attributo facoltativo name, assicurarsi di utilizzare solo caratteri alfanumerici e il carattere di sottolineatura (_ ) nel valore.

Riservato

{
     "schemas": [
          "urn:ietf:params:scim:schemas:oracle:idcs:App"
        ],
     "displayName": "demoapp",
     "isOAuthClient" : true,
     "description": "demoapp",
     "active": true,
     "clientType": "confidential",
     "basedOnTemplate": {
          "value": "CustomWebAppTemplateId"
     },
     "redirectUris": [
          "http://<fully qualified url>/demoapp/return"
        ],
     "logoutUri": "http://<fully qualified url>/demoapp/logout.jsp",
     "postLogoutRedirectUris": ["http://<fully qualified url>/demoapp/logout.jsp"],
     "allUrlSchemesAllowed": true,
     "allowedScopes": [
                {
                     "fqs": "http://example.com/photos"
                },
                {
                     "fqs": "http://example.com/presentations"
                },
                {
                     "fqs": "http://example.com/documents"
                }
          ],
     "allowedGrants": [
          "authorization_code",
          "client_credentials",
          "password",
          "refresh_token",
          "urn:ietf:params:oauth:grant-type:jwt-bearer"
      ],
    "certificates":[ 
      {
      "certAlias":"SampleOAuthClient_1"
      }
   ]
}
curl -X POST
-H "Content-type: application/json"
-H "Authorization: Bearer <access token value>"
--data @/tmp/OAuthClientApp.json http://<domainURL>/admin/v1/Apps

Sicuro

{
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:App"
    ],
    "displayName": "trustedClientApp",
    "isOAuthClient" : true,
    "description": "trusted client",
    "active": true,
    "clientType": "trusted",
     "basedOnTemplate": {
        "value": "CustomWebAppTemplateId"
     },
    "redirectUris": [     
        "http://`hostname -f`:9090/demoapp/return",     
        "http://`hostname -f`:9090/IDCSExample"     
    ],
    "logoutUri": "http://`hostname -f`:9090/demoapp/logout.jsp",
    "postLogoutRedirectUris": ["http://`hostname -f`:9090/demoapp/logout.jsp"],
    "allowedScopes": [
                {
                    "fqs": "http://example.com/photos"
                },
                {
                    "fqs": "http://example.com/presentations"
                },
                {
                    "fqs": "http://example.com/documents"
                }
        ],
    "allowedGrants": [
        "authorization_code",
        "client_credentials",
        "password",
        "refresh_token",
        "urn:ietf:params:oauth:grant-type:jwt-bearer"
    ],
    "certificates":[ 
      {
      "certAlias":"SampleOAuthClient_2"
      }
   ]
}
curl -X POST
-H "Content-type: application/json"
-H "Authorization: Bearer <access token value>"
--data @/tmp/OAuthClientApp.json http://<domainURL>/admin/v1/Apps

Pubblico

Nota

Per ulteriori informazioni sull'utilizzo di questa operazione consentita durante la creazione di un'applicazione client OAuth pubblica, vedere onBehalfOf Operazione consentita.
{
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:App"
    ],
    "displayName": "publicClientApp",
    "isOAuthClient" : true,
    "description": "public client",
    "active": true,
    "clientType": "public",
     "basedOnTemplate": {
        "value": "CustomBrowserMobileTemplateId"
     },
    "redirectUris": [     
        "http://`hostname -f`:9090/demoapp/return",     
        "http://`hostname -f`:9090/IDCSPlayground"     
    ],
    "logoutUri": "http://`hostname -f`:9090/demoapp/logout.jsp",
    "postLogoutRedirectUris": ["http://`hostname -f`:9090/demoapp/logout.jsp"],
    "allowedScopes": [
                {
                    "fqs": "http://example.com/photos"
                },
                {
                    "fqs": "http://example.com/presentations"
                },
                {
                    "fqs": "http://example.com/documents"
                }
        ],
    "allowedGrants": [
        "authorization_code",
        "implicit"
    ]
} 
   curl -X POST
   -H "Content-type: application/json"
   -H "Authorization: Bearer <access token value>"
   --data @/tmp/OAuthClientApp.json http://<domainURL>/admin/v1/Apps

Attributi applicazione obbligatori per un'applicazione client OAuth

Attributo applicazione obbligatorio Descrizione
displayName Identifica il nome visualizzato dell'applicazione corrente. Il nome visualizzato deve essere di facile utilizzo e un amministratore può modificare il valore in qualsiasi momento.
basedOnTemplate Indica il modello di applicazione su cui si basa l'applicazione.
isOAuthClient Se impostato su true, indica che questa applicazione funge da client OAuth.
clientType Specifica il tipo di accesso di questa applicazione quando funge da client OAuth. I valori possibili sono confidential, trusted e public.

Attivare un'applicazione client OAuth

Utilizzare l'esempio seguente per creare una richiesta per attivare un'applicazione Resource Server OAuth.

{
        "active" : true,
        "schemas": [
             "urn:ietf:params:scim:schemas:oracle:idcs:AppStatusChanger"
        ]
}
   curl -X PUT 
   -H "Content-type: application/json"
   -H "Authorization: Bearer <access token value>"
   --data @/tmp/OAuthClientApp.json http://<domainURL>/admin/v1/AppStatusChanger/<appID>