Utilisation de l'opération onBehalfOf autorisée
L'opération autorisée onBehalfOf
permet de s'assurer que les privilèges d'accès peuvent être générés à partir des seuls privilèges de l'utilisateur, de sorte qu'une application client puisse accéder aux points d'extrémité auxquels l'utilisateur a accès, même si elle n'a normalement pas accès elle-même.
Lorsqu'une application client autorisée met en oeuvre une fonctionnalité qui la nécessite pour accéder aux points d'extrémité des domaines d'identité, ce client dispose des privilèges nécessaires pour ce faire. Un client d'application Web, quant à lui, implémente une fonctionnalité qui nécessite que l'application client accède aux points d'extrémité à l'aide des privilèges et des étendues acquis de l'utilisateur connecté. Avec le comportement d'autorisation par défaut des domaines d'identité, ce client doit toujours disposer de l'ensemble complet des privilèges requis pour accéder à ces points d'extrémité, sans égard aux privilèges accordés à l'utilisateur. L'opération onBehalfOf
autorisée fournit à un administrateur un moyen d'indiquer que les privilèges de l'utilisateur seuls doivent être utilisés plutôt qu'une intersection des étendues de l'utilisateur (si un utilisateur est présent) et des étendues du client.
Les applications publiques ou d'interface de ligne de commande disposent de privilèges très limités ou ne disposent d'aucun privilège pour accéder aux points d'extrémité. Ces types de clients dépendent de l'utilisateur qui accède à l'application pour déterminer les droits dont dispose l'application. Lorsqu'un utilisateur accède à une application publique, si un jeton d'accès créé à partir des privilèges de l'utilisateur lui a été émis, il peut accéder aux points d'extrémité tant que l'utilisateur dispose d'une autorisation.
L'opération onBehalfOf
autorisée vous permet de générer un tel jeton d'accès pour l'application client OAuth. Lors du calcul des étendues spécifiques des domaines d'identité (portées qui commencent par "urn:opc:idm:
") à définir dans le jeton d'accès, les domaines d'identité ignorent les privilèges du client et utilisent une portée égale ou inférieure à celle initialement accordée à l'utilisateur autorisé. Ainsi, seuls les privilèges de l'utilisateur (rôles d'administrateur, groupes, etc.) associés aux étendues demandées sont utilisés pour déterminer l'accès. Si la portée demandée "urn:opc:idm:_myscopes_"
est utilisée, toutes les portées qui sont accordées à l'utilisateur sont retournées.
Activation de l'opération onBehalfOf autorisée
Utilisez l'API REST des domaines d'identité pour créer ou mettre à jour une application OAuth et spécifiez onBehalfOfUser
comme opération autorisée. Lorsque vous créez une application OAuth à l'aide de l'interface utilisateur des domaines d'identité, dans la page Autorisation, cochez la case de l'opération autorisée Au nom de. Lorsque les utilisateurs accèdent à l'application, ils peuvent effectuer diverses fonctions en fonction de leurs autorisations.
Exemple
L'exemple montre comment créer une application et spécifier l'opération onBehalfOfUser
autorisée (en gras dans l'exemple).
cat</tmp/OAuthClientApp.json << __EOF__
{
"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://example.com:9090/demoapp/return",
"http://example.com:9090/IDCSPlayground"
],
"logoutUri": "http://example.com:9090/demoapp/logout.jsp",
"postLogoutRedirectUris": ["http://example.com:9090/demoapp/logout.jsp"],
"allowedScopes": [
{
"fqs": "http://example.com/photos"
},
{
"fqs": "http://example.com/presentations"
},
{
"fqs": "http://example.com/documents"
}
],
"allowedOperations": [
"onBehalfOfUser" ],
"allowedGrants": [
"authorization_code",
"implicit"
]
}
__EOF__
curl -X POST
-H "Content-type: application/json"
-H "Authorization: Bearer <access token value>"
--data @/tmp/OAuthClientApp.json http://<domainURL>/admin/v1/Apps