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.
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
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>