Usando a Operação onBehalfOf Permitida

A operação permitida pelo onBehalfOf fornece uma maneira de garantir que privilégios de acesso possam ser gerados somente a partir dos privilégios do usuário, para que um aplicativo cliente possa acessar pontos finais aos quais o usuário tenha acesso, mesmo se o aplicativo cliente por si só não tivesse acesso.

Quando um aplicativo cliente autorizado implementa a funcionalidade que o exige para acessar pontos finais de domínios de identidades, esse cliente recebe os privilégios necessários para 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 identidade, 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 da 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 direcionar quais direitos o aplicativo tem. Quando um usuário estiver acessando um aplicativo público, se o usuário tiver recebido um token de acesso que é construído com base apenas nos privilégios do usuário, ele poderá acessar os pontos finais, desde que o usuário esteja autorizado.

A operação permitida pelo 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 de administrador, grupos etc.) 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 de domínios de identidades para criar ou atualizar um aplicativo OAuth e especifique onBehalfOfUser como uma operação permitida. Quando você cria um aplicativo OAuth usando a IU de domínios de identidades, 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