Utilizzo dell'operazione onBehalfOf consentita

L'operazione consentita onBehalfOf fornisce un modo per garantire che i privilegi di accesso possano essere generati solo dai privilegi dell'utente, in modo che un'applicazione client possa accedere agli endpoint a cui l'utente ha accesso, anche se l'applicazione client stessa non avrebbe normalmente accesso.

Quando un'applicazione client autorizzata implementa la funzionalità che la richiede per accedere agli endpoint dei domini di Identity, a tale client vengono concessi i privilegi necessari a tale scopo. Un client applicazione Web, invece, implementa funzionalità che richiedono all'applicazione client di accedere agli endpoint utilizzando i privilegi e gli ambiti acquisiti dall'utente che ha eseguito il login. Con il funzionamento dell'autorizzazione predefinito dei domini di Identity, tale client deve comunque disporre del set completo di privilegi necessari per accedere a tali endpoint indipendentemente dai privilegi concessi all'utente. L'operazione consentita onBehalfOf fornisce a un amministratore un modo per indicare che i soli privilegi dell'utente devono essere utilizzati anziché un'intersezione degli ambiti dell'utente (se è presente un utente) e degli ambiti del client.

Le applicazioni pubbliche o CLI dispongono di privilegi molto limitati oppure non dispongono di privilegi per accedere agli endpoint. Questi tipi di client si basano sull'utente che accede all'applicazione per determinare i diritti di cui dispone l'applicazione. Quando un utente accede a un'applicazione pubblica, se all'utente è stato emesso un token di accesso creato esclusivamente dai privilegi dell'utente, tale utente sarà in grado di accedere agli endpoint finché l'utente è autorizzato.

L'operazione consentita onBehalfOf consente di generare un token di accesso di questo tipo per l'applicazione client OAuth. Quando si calcolano gli ambiti specifici dei domini di Identity (scopi che iniziano con "urn:opc:idm:") da impostare nel token di accesso, i domini di Identity ignorano i privilegi del client e utilizzano un ambito uguale o inferiore all'ambito originariamente concesso all'utente autorizzato. Pertanto, per determinare l'accesso vengono utilizzati solo i privilegi dell'utente (ruoli di amministrazione, gruppi e così via) insieme agli ambiti richiesti. Se si utilizza l'ambito richiesto "urn:opc:idm:_myscopes_", vengono restituiti tutti gli ambiti concessi all'utente.

Abilitazione dell'operazione onBehalfOf consentita

Utilizzare l'API REST dei domini di Identity per creare o aggiornare un'applicazione OAuth e specificare onBehalfOfUser come operazione consentita. Quando si crea un'applicazione OAuth utilizzando l'interfaccia utente dei domini di Identity, nella pagina Autorizzazione selezionare la casella di controllo per l'operazione consentita Per conto di. Quando gli utenti accedono all'applicazione, possono eseguire varie funzioni in base alle loro autorizzazioni.

Esempio

L'esempio mostra come creare un'applicazione e specificare l'operazione consentita onBehalfOfUser (in grassetto nell'esempio).

cat</tmp/OAuthClientApp.json << __EOF__
{
  "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://example.com:9090/demoapp/return",
    "http://example.com:9090/IDCSPlayground"
  ],
  "logoutUri": "http://example.com:9090/demoapp/logout.jsp",
  "postLogoutRedirectUris": ["http://example.com:9090/demoapp/logout.jsp"],
  "allowedScopes": [
    {
      "fqs": "http://example.com/photos"
    },
    {
      "fqs": "http://example.com/presentations"
    },
    {
      "fqs": "http://example.com/documents"
    }
  ],
  "allowedOperations": [
    "onBehalfOfUser"   ],
  "allowedGrants": [
    "authorization_code",
    "implicit"
  ]
}
__EOF__
   
curl -X POST 
-H "Content-type: application/json" 
-H "Authorization: Bearer <access token value>" 
--data @/tmp/OAuthClientApp.json http://<domainURL>/admin/v1/Apps