Creación y activación de una aplicación cliente OAuth
En esta sección se proporcionan solicitudes de ejemplo para crear y activar una aplicación cliente OAuth mediante la API de REST de los dominios de identidad.
Crear una aplicación 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. Tanto las aplicaciones cliente confidenciales como las de confianza se especifican mediante CustomWebAppTemplateId como valor para el atributo basedOnTemplate. La aplicación de cliente pública 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 admite 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 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.
Si utiliza el atributo opcional
name 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
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 cliente OAuth
| Atributo de aplicación necesario | Descripción |
|---|---|
displayName
|
Identifica el nombre mostrado de la aplicación. El nombre mostrado está diseñado para ser fácil de usar 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 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>