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