Creación y activación de una aplicación de cliente OAuth

En esta sección se proporcionan solicitudes de ejemplo para crear y activar una aplicación de cliente OAuth mediante la API de REST de dominios de identidad.

Crear una aplicación de cliente OAuth

Una aplicación cliente OAuth es un cliente HTTP que puede adquirir y, a continuación, utilizar un token de acceso. Hay tres tipos de aplicaciones cliente OAuth que puede crear: confidencial, de confianza y pública. Las aplicaciones de cliente confidenciales y de confianza se especifican mediante CustomWebAppTemplateId como valor para el atributo basedOnTemplate. La aplicación de cliente público se especifica mediante CustomBrowserMobileTemplateId como valor para el atributo basedOnTemplate. Los siguientes ejemplos muestran cómo crear una solicitud para crear cada uno de los tipos de aplicación cliente.

Si está creando una aplicación cliente OAuth que soporta operaciones de autoservicio, la aplicación cliente debe tener el rol "Yo". Al otorgar al cliente este rol, se garantiza que el token de acceso generado contenga el ámbito "urn:opc:idm:t.user.me". Este ámbito permite al cliente acceder a los puntos finales para realizar operaciones de autoservicio como /Me, /MyApps, etc. Utilice el punto final /Grants para otorgar un valor AppRole a una aplicación.

Nota

Si utiliza el atributo name opcional en la solicitud, asegúrese de utilizar solo caracteres alfanuméricos y el carácter de subrayado ( _ ) en el 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

De confianza

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

Nota

Consulte onBehalfOf Operación permitida para obtener más información sobre el uso de esta operación permitida al crear una aplicación cliente OAuth pública.
{
    "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 aplicación necesarios para una aplicación de cliente OAuth

Atributo de aplicación necesario Descripción
displayName identifica el nombre mostrado de la aplicación. El nombre mostrado está pensado para que sea fácil de utilizar y un administrador puede cambiar el valor en cualquier momento.
basedOnTemplate Indica la plantilla de aplicación en la que se basa la aplicación.
isOAuthClient Si se define en true, indica que esta aplicación actúa como cliente OAuth.
clientType Especifica el tipo de acceso que tiene esta aplicación cuando actúa como cliente OAuth. Los valores posibles son confidential, trusted y public.

Activar una aplicación de cliente OAuth

Utilice el siguiente ejemplo para crear una solicitud para activar una aplicación del 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>