Criando e Ativando um Aplicativo Cliente OAuth

Esta seção fornece exemplos de solicitações para criar e ativar um Aplicativo Cliente OAuth usando a API REST dos domínios de identidade.

Criar um Aplicativo Cliente OAuth

Um aplicativo cliente OAuth é um cliente HTTP que pode adquirir e, em seguida, usar um token de acesso. Há três tipos de aplicativos cliente OAuth que você pode criar: Confidencial, Confiável e Público. Os aplicativos clientes confidenciais e confiáveis são especificados usando CustomWebAppTemplateId como o valor do atributo basedOnTemplate. O aplicativo cliente público é especificado usando CustomBrowserMobileTemplateId como o valor do atributo basedOnTemplate. Os exemplos a seguir mostram como criar uma solicitação para criar cada um dos tipos de aplicativo cliente.

Se você estiver criando um Aplicativo Cliente OAuth que suporte operações de autoatendimento, o aplicativo cliente deverá receber a atribuição "Eu". A concessão ao cliente dessa atribuição garante que o token de acesso gerado contenha o escopo "urn:opc:idm:t.user.me". Esse escopo permite que o cliente acesse pontos finais para executar operações de autoatendimento, como /Me, /MyApps, etc. Use o ponto final /Grants para conceder um AppRole a um aplicativo.

Observação

Se você estiver usando o atributo name opcional em sua solicitação, certifique-se de usar apenas caracteres alfanuméricos e o caractere de sublinhado ( _ ) no valor.

Confidencial

{
     "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

Confiável

{
    "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

Público

Observação

Consulte onBehalfOf Operação Permitida para obter mais informações sobre o uso dessa operação permitida ao criar um aplicativo Cliente OAuth público.
{
    "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

Atributos de Aplicativo Obrigatórios para um Aplicativo Cliente OAuth

Atributo de Aplicativo Obrigatório Descrição
displayName Identifica o nome para exibição do aplicativo. O nome de exibição deve ser amigável e um administrador pode alterar o valor a qualquer momento.
basedOnTemplate Indica o modelo de aplicativo no qual o aplicativo se baseia.
isOAuthClient Se definido como true, indica que esse aplicativo atua como um Cliente OAuth.
clientType Especifica o tipo de acesso que este Aplicativo tem quando atua como um Cliente OAuth. Os valores possíveis são confidential, trusted e public.

Ativar um Aplicativo Cliente OAuth

Use o exemplo a seguir para criar uma solicitação para ativar um aplicativo do Servidor de Recursos 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>