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