Création et activation d'une application client OAuth
Cette section fournit des exemples de demandes pour créer et activer une application client OAuth à l'aide de l'API REST des domaines d'identité.
Créer une application client OAuth
Une application client OAuth est un client HTTP qui peut acquérir, puis utiliser un jeton d'accès. Vous pouvez créer trois types d'application client OAuth : Confidentiel, Approuvé et Public. Les applications client confidentielles et approuvées sont spécifiées en utilisant CustomWebAppTemplateId
comme valeur pour l'attribut basedOnTemplate
. L'application client publique est spécifiée en utilisant CustomBrowserMobileTemplateId
comme valeur pour l'attribut basedOnTemplate
. Les exemples suivants montrent comment créer une demande pour créer chacun des types d'application client.
Si vous créez une application client OAuth qui prend en charge les opérations en libre-service, le rôle "Moi" doit être accordé à l'application client. L'octroi de ce rôle au client garantit que le jeton d'accès généré contient la portée "urn:opc:idm:t.user.me"
. Cette portée permet au client d'accéder aux points d'extrémité pour effectuer des opérations en libre-service telles que /Me,
/MyApps
, etc. Utilisez le point d'extrémité /Grants
pour accorder une valeur AppRole à une application.
Si vous utilisez l'attribut
name
facultatif dans votre demande, veillez à n'utiliser que des caractères alphanumériques et le trait de soulignement ( _ ) dans la valeur.Confidentiel
{
"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
Approuvé
{
"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
Public
Pour plus d'informations sur l'utilisation de cette opération autorisée lors de la création d'une application client OAuth publique, voir onBehalfOf Allowed Operation.
{
"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
Attributs d'application requis pour une application client OAuth
Attribut d'application obligatoire | Description |
---|---|
displayName
|
Identifie le nom d'affichage de l'application. Le nom d'affichage est conçu pour être convivial et un administrateur peut modifier la valeur à tout moment. |
basedOnTemplate
|
Indique le modèle d'application sur lequel l'application est basée. |
isOAuthClient
|
Si la valeur est réglée à true , indique que cette application agit en tant que client OAuth. |
clientType
|
Indique le type d'accès dont dispose cette application lorsqu'elle agit en tant que client OAuth. Les valeurs possibles sont confidential, trusted et public. |
Activer une application client OAuth
Utilisez l'exemple suivant pour créer une demande d'activation d'une application de serveur de ressources 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>