Création et activation d'une application client OAuth

Cette section fournit des exemples de demande de création et d'activation d'une application client OAuth à l'aide de l'API REST des domaines d'identité.

Création d'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, De confiance et Public. Les applications client confidentielles et sécurisées sont indiqué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.

Remarque

Si vous utilisez l'attribut facultatif name 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

Sécurisé

{
    "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

Remarque

Pour plus d'informations sur l'utilisation de cette opération autorisée lors de la création d'une application client OAuth publique, reportez-vous à 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 est basée l'application.
isOAuthClient Si elle est définie sur true, indique que cette application agit en tant que client OAuth.
clientType Spécifie 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.

Activation d'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>