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.

Note

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

Note

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>