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.
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
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>