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, Sicuro 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 ogni tipo 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". Concedere al client questo ruolo garantisce che il token di accesso generato contenga 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 si sta utilizzando l'attributo name facoltativo nella richiesta, 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

Pubblica

Nota

Per ulteriori informazioni sull'utilizzo di questa operazione consentita quando si crea 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. Il nome visualizzato è intuitivo 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 riportato di seguito per creare una richiesta di attivazione di un'applicazione OAuth Resource Server.

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