Usando a Operação Permitida onBehalfOf

A operação permitida onBehalfOf fornece uma maneira de garantir que os privilégios de acesso possam ser gerados apenas com base nos privilégios do usuário, para que um aplicativo cliente possa acessar pontos finais aos quais o usuário tem acesso, mesmo que o aplicativo cliente normalmente não tenha acesso.

Quando um aplicativo cliente autorizado implementa a funcionalidade que exige que ele acesse pontos finais de domínios de identidade, esse cliente recebe os privilégios necessários para fazer isso. Um cliente de aplicativo Web, por outro lado, implementa a funcionalidade que exige que o aplicativo cliente acesse pontos finais usando os privilégios e escopos adquiridos do usuário conectado. Com o comportamento de autorização padrão dos domínios de identidades, esse cliente ainda deve ter o conjunto completo de privilégios necessários para acessar esses pontos finais sem considerar os privilégios concedidos ao usuário. A operação permitida onBehalfOf fornece a um administrador uma maneira de indicar que os privilégios do usuário sozinhos devem ser usados em vez de uma interseção dos escopos do usuário (se um usuário estiver presente) e dos escopos do cliente.

Os aplicativos públicos ou CLI têm privilégios muito limitados ou nenhum privilégio para acessar pontos finais. Esses tipos de clientes dependem do usuário que está acessando o aplicativo para determinar quais direitos o aplicativo possui. Quando um usuário está acessando um aplicativo público, se o usuário receber um token de acesso construído apenas com base nos privilégios do usuário, ele poderá acessar os pontos finais enquanto o usuário estiver autorizado.

A operação permitida por onBehalfOf permite gerar esse token de acesso para o aplicativo Cliente OAuth. Ao calcular os escopos específicos dos domínios de identidade (escopos que começam com "urn:opc:idm:") a serem definidos no token de acesso, os domínios de identidade ignoram os privilégios do cliente e usam um escopo igual ou inferior ao escopo originalmente concedido ao usuário autorizado. Portanto, somente os privilégios do usuário (atribuições administrativas, grupos e assim por diante) em conjunto com os escopos solicitados são usados para determinar o acesso. Se o escopo solicitado "urn:opc:idm:_myscopes_" for usado, todos os escopos concedidos ao usuário serão retornados.

Ativando a Operação Permitida onBehalfOf

Use a API REST dos domínios de identidades para criar ou atualizar um aplicativo OAuth e especifique onBehalfOfUser como uma operação permitida. Quando você criar um aplicativo OAuth usando a IU dos domínios de identidade, na página Autorização, marque a caixa de seleção da operação permitida Em nome de. Quando os usuários acessam o aplicativo, eles podem executar várias funções com base em suas permissões.

Exemplo

O exemplo mostra como criar um aplicativo e especificar a operação permitida onBehalfOfUser (em negrito no exemplo).

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