Création et activation d'une application client OAuth
Cette section fournit des exemples de demandes de création et d'activation d'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 : confidentielle, sécurisée et publique. Les applications client confidentielles et sécurisées sont spécifiées en utilisant CustomWebAppTemplateId comme valeur pour l'attribut basedOnTemplate. L'application client publique est indiqué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, l'application client doit disposer du rôle "Moi". 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 adresses pour effectuer des opérations en libre-service telles que /Me, /MyApps, etc. Utilisez l'adresse /Grants pour accorder une valeur AppRole à une application.
Si vous utilisez l'attribut facultatif
name dans votre demande, veillez à utiliser uniquement 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
De confiance
{
"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 lorsque vous créez une application client OAuth publique, reportez-vous à Opération autorisée onBehalfOf.
{
"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
|
Indique 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 elle est définie sur 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 OAuth Resource Server.
{
"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>