API REST de contrôle d'accès au portail
Vous pouvez accéder et modifier à distance les informations de contrôle d'accès pour des ressources via le protocole HTTP à l'aide des API REST de contrôle d'accès au portail.
- Flux Member
ac:member:oid:<principalID>@role:<roleTypeName>@oid:<resourceID>- Flux Member Collection
ac:member:<roleTypeName>@oid:<resourceID>- Flux Role
ac:role:<roleTypeName>@oid:<resourceID>- Flux Role Collection
ac:role:oid:<resourceID>- Flux Resource Config
ac:resourceconfig:oid:<resourceID>- Flux Allowed Access
ac:access:oid:<resourceID>
- Le flux Member Collection est défini en tant que collection.
- Le flux Role Collection est défini en tant que collection.
- Le flux Member Collection autorise la méthode HTTP
POST. - Les valeurs
<roleTypeName>disponibles sont répertoriées dans le tableau présenté dans la rubrique Rôles.
Méthodes HTTP prises en charge
| Nom du flux | méthode GET | POST | PUT | DELETE |
|---|---|---|---|---|
| Membre | 405 | 405 | 405 | Supprime un membre du rôle indiqué. |
| Member Collection | Renvoie tous les membre d'un rôle. | Ajoute un principal au rôle indiqué. | 405 | 405 |
| Rôle | Renvoie un rôle. | 405 | 405 | 405 |
| Role Collection | Renvoie tous les rôles d'une ressource. | 405 | 405 | 405 |
| Resource Config | Renvoie la configuration d'une ressource. | 405 | Modifie la configuration d'une ressource. | 405 |
| Allowed Access | Renvoie tous les niveaux d'accès qui ont été accordés à l'utilisateur actif ou dont celui-ci a hérité. | 405 | 405 | 405 |
Eléments de réponse communs
atom:feed qui inclut des éléments opensearch. Pour les autres flux, le premier élément est un élément atom:entry.<?xml version="1.0" encoding="UTF-8"?>
<atom:feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:model="http://www.ibm.com/xmlns/prod/websphere/portal/v6.0.1/portal-model-elements"
xmlns:ac="http://www.ibm.com/xmlns/prod/lotus/access-control/v1.0"
xmlns:portal="http://www.ibm.com/xmlns/prod/websphere/portal/v6.0.1/portal-model"
xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"
xmlns:base="http://www.ibm.com/xmlns/prod/websphere/portal/v6.0/ibm-portal-composite-base"
xml:base="http://localhost:10039/wps/mycontenthandler/!ut/p/digest!F4eOOrdKv7QXA2o0iUT9A/T9A
/ac/member:User@oid:ibm.portal.Home">
<atom:author>
<atom:name>HCL Digital Experience Portal/6.1.0.3</atom:name>
</atom:author>
<atom:title>MemberCollection</atom:title>
<atom:id>ac:member:User@oid:ibm.portal.Home</atom:id>
<atom:link href="/wps/mycontenthandler/!ut/p/digest!F4eOOrdKv7QXA2o0iUT9A/ac/member:User@oid:ibm.portal.Home"
rel="self"
type="application/atom+xml"/>
<opensearch:startIndex>0</opensearch:startIndex>
<opensearch:itemsPerPage>2147483647</opensearch:itemsPerPage>
<opensearch:totalResults>0</opensearch:totalResults>
<atom:updated>2009-10-01T06:03:51.850Z</atom:updated>
</atom:feed>Eléments de réponse communs pour les flux de collection
atom:entry. Chaque entrée contient les informations supplémentaires suivantes : l'ID de l'entrée, son URI, des liens supplémentaires, et un objet de contenu qui contient les informations proprement dites.<atom:entry>
<atom:id>ac:member:oid:8eAe13RO6G4CL3TGMIPDKBQ6MGHE53P02OTDI3T26M14LRSA6PDE@role:User@oid:
6_CGAH47L00GN960I4GOF1G510I3</atom:id>
<atom:title>MemberCollection</atom:title>
<atom:updated>2009-10-01T05:56:58.341Z</atom:updated>
<atom:link href="/wps/mycontenthandler/!ut/p/digest!F4eOOrdKv7QXA2o0iU-T9A
/ac/member:oid:8eAe13RO6G4CL3TGMIPDKBQ6MGHE53P02OTDI3T26M14LRSA6PDE@role
:User@oid:6_CGAH47L00GN960I4GOF1G510I3" rel="edit" type="application/atom+xml"/>
<atom:content type="application/xml">
<ac:member ac:id="8eAe13RO6G4CL3TGMIPDKBQ6MGHE53P02OTDI3T26M14LRSA6PDE"
ac:DN="all authenticated portal users" ac:type="virtual"/>
</atom:content>
</atom:entry>Variables d'URI et intervalles de valeurs
- <roleTypeName>
- Nom insensible à la casse d'un type de rôle défini, par exemple, Manager, EDitor, usEr.
- <resourceID>
ObjectIDouuniqueNamed'une ressource, par exemple,ibm.portal.Homeor8eAe13RO6G4CL3TGMIPDKBQ6MGHE53P02OTDI3T26M14LRSA6PDE.- <principalID>
ObjectIDd'un principal (utilisateur ou groupe), par exemple,8eAe13RO6G4CL3TGMIPDKBQ6MGHE53P02OTDI3T26M14LRSA6PDE.
Flux Member et méthode DELETE
URI - ac:member:oid:<principalID>@role:<roleTypeName>@oid:<resourceID>
Paramètres - Aucun.
DELETE - Supprime le principal à partir du type de rôle
RoleTypesur la ressource indiquée. - API Java™ de contrôle d'accès au portail équivalente
.accessControlHome.getRoleDataController(resourceID) - Renvoie 200 si la conversion aboutit.
- Renvoie 404 si la conversion de
resourceIDéchoue. - Renvoie 400 si
roleTypeNamen'est pas applicable.- Le rôle n'existe pas.
- La résolution de
principalIDest impossible. - L'utilisateur en cours ne dispose pas des droits d'accès requis.
Flux Member Collection et méthode GET
URI - ac:member:<roleTypeName>@oid:<resourceID>
- start-index=n
- Indique que le membre n-th du rôle figure en premier dans la liste de résultats.
- max-results=m
- Demande d'inclure au moins m membres dans la liste des résultats.
GET - Indique tous les membres mappés à un rôle unique pour une ressource.
- Equivalent dans l'API Java™ de Portal Access Control : accessControlHome.getRoleData(resourceID).getMappedPrincipals(roleType)
- Returns 200 if successful.
- Returns 404 if
resourceIDcannot be resolved. - Renvoie 400 si
roleTypeNamene s'applique pas.
GET. Chaque élément d'entrée de la collection de membres contient un unique élément de membre qui spécifie l'identité du membre. Vous pouvez utiliser le lien d'édition pour supprimer le membre du rôle (DELETE sur le flux Member).<atom:entry ...>
...
<atom:title>MemberCollection</atom:title>
<atom:entry>
<atom:id>ac:member:oid:8eAe13RO6G4CL3TGMIPDKBQ6MGHE53P02OTDI3T26M14LRSA6PDE@role:User@oid:
6_CGAH47L00GN960I4GOF1G510I3</atom:id>
<atom:title>MemberCollection</atom:title>
<atom:updated>2009-10-01T05:56:58.341Z</atom:updated>
<atom:link href="/wps/mycontenthandler/!ut/p/digest!F4eOOrdKv7QXA2o0iUT9A
/ac/member:oid:8eAe13RO6G4CL3TGMIPDKBQ6MGHE53P02OTDI3T26M14LRSA6PDE@role:
Privileged%25252520User@oid:6_CGAH47L00GN960I4GOF1G510I3"
rel="edit" type="application/atom+xml"/>
<atom:content type="application/xml">
<ac:member ac:id="8eAe13RO6G4CL3TGMIPDKBQ6MGHE53P02OTDI3T26M14LRSA6PDE"
ac:DN="all authenticated portal users" ac:type="virtual"/>
</atom:content>
</atom:entry>Flux Member Collection et méthode POST
URI - ac:member: <roleTypeName>@oid:<resourceID>
Paramètres - Aucun.
POST - Ajoute le principal indiqué dans le contenu au type de rôle
RoleTypeindiqué sur la ressource indiquée. - Equivalent Portal Access Control Java™ API
accessControlHome.getRoleDataController(resourceID).addPrincipalsToRole(RoleType, Collection<Principal>) - Renvoie 201 si la conversion aboutit.
- Renvoie 404 si
- La résolution de
resourceIDest impossible. - La résolution du principal indiqué est impossible à partir de son nom distinctif (DN) ou de son adresse électronique.
- La résolution de
- Returns 400 if
roleTypeNamen'est pas applicable.- Le principal spécifié ne peut pas être résolu à partir de son
oid. - L'utilisateur en cours ne dispose pas des droits d'accès requis.
Le contenu de la méthode POST pour le flux Member Collection se présente comme suit :
UID - ac:member: <roleTypeName>@oid:<resourceID>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom">
<atom:content type="application/xml">
<ac:member xmlns:ac="http://www.ibm.com/xmlns/prod/lotus/access-control/v1.0"
ac:id="9eAe6BD86PGCHPD6JMCCG1D8MMG63JD0JM4C3BDAJMK66BC46O"/>
</atom:content>
</atom:entry>ac:id, qui est utilisé pour identifier un principal à l'aide de l'ObjectID, vous pouvez utiliser les identificateurs suivants : ac:DN="uid=wpsadmin,o=defaultWIMFileBasedRealm"- Indique le principal à l'aide du nom distinctif. Le type peut être user, group ou virtual (pour un principal virtuel). La valeur par défaut est user. Les principaux virtuels valides sont définis dans les documents Javadoc suivants : com.ibm.portal.um.PumaEnvironment.VirtualPrincipalNames. Actuellement, il s'agit de all authenticated portal users, all portal user groups et anonymous portal user.
ac:email="wpsadmin@de.ibm.com"- Identifie les utilisateurs via leur adresses électronique.
Flux Role et méthode GET
URI - ac:role:<roleTypeName>@oid:<resourceID>
- resolve-membership
- Spécifiez la valeur true ou false. Si la valeur est true, les membres sont inclus. La valeur par défaut est false.
GET - Renvoie des informations sur un rôle disponible pour une ressource donnée.
- Le rôle est disponible si au moins un principal y est mappé, sinon la méthode renvoie 404.
- API Java™ de contrôle d'accès au portail équivalente : accessControlHome.getRoleData(resourceID).getRole(RoleType).
- Returns 200 if successful.
- Returns 404 if
- La résolution de
resourceIDest impossible. - Le rôle pour l'élément
roleTypeNamespécifié n'est pas disponible.
- La résolution de
- Returns 400 if
roleTypeNameis not applicable.
GET renvoie le résultat suivant : <atom:entry ...>
...
<atom:title>Role</atom:title>
<atom:id>ac:role:User@oid:myPage</atom:id>
<atom:link href="/wps/mypoc/!ut/p/digest!TSVlGy5DI0S5vyp5i;yTw
/ac/role:User@oid:myPage?mode=download&resolve-membership=true"
rel="self" type="application/atom+xml"/>
<atom:updated>2009-10-01T12:35:05.442Z</atom:updated>
<atom:link ac:rel="members" href="/wps/mycontenthandler/!ut/p/digest!TSVlGy5DI0S5vyp5i;yTw
/ac/member:User@oid:6_M8768B1A00FT20I480O8A53000?
resolve-membership=true" rel="related" type="application/atom+xml"/>
<atom:content type="application/xml">
<ac:role ac:type="User">
<ac:member
ac:id="8eAeI9EE3J5C63C8JM064RD2JMG613C2MM4C6BP4MM072JD6MI17P9E03R86H1"ac:display-name="wpsadmins"
ac:DN="cn=wpsadmins,o=defaultWIMFileBasedRealm" ac:type="group"/>
</ac:role>
</atom:content>
</atom:entry>Flux Role Collection et méthode GET
URI - ac:role:oid:<resourceID>
- filter
- Indiquez l'une des valeurs suivantes :
- type=<roleTypeName> pour renvoyer le rôle indiqué, s'il est disponible.
- inUse pour renvoyer les rôles disponibles. Il s'agit de la valeur par défaut.
- all pour renvoyer tous les types de rôles applicables.
- start-index=n
- Demande que le membre n-th du rôle figure en premier dans la liste des résultats.
- max-results=m
- Specifies that at most m members are included.
ac:role:oid:<resourceID>GET - Fournit des informations sur tous les rôles disponibles pour une ressource.
- Un rôle est disponible si au moins un principal y est mappé.
- Equivalent Portal Access Control Java™ API
accessControlHome.getRoleData(resourceID).getRoles() - Returns 200 if successful.
- Returns 404 if
resourceIDcannot be resolved. - Renvoie 400 si l'élément
roleTypeNamespécifié ne s'applique pas.
GET renvoie le résultat suivant : <atom:feed ...>
...
<atom:title>RoleCollection</atom:title>
<atom:id>ac:role:oid:myPage</atom:id>
<atom:link href="/wps/mypoc/!ut/p/digest!TSVlGy5DI0S5vyp5i;yTw/ac/role:oid:myPage?mode=download"
rel="self" type="application/atom+xml"/>
<opensearch:startIndex>0</opensearch:startIndex>
<opensearch:itemsPerPage>2147483647</opensearch:itemsPerPage>
<opensearch:totalResults>1</opensearch:totalResults>
<atom:updated>2009-10-01T12:46:16.509Z</atom:updated>
<atom:entry>
<atom:id>ac:role:User@oid:6_M8768B1A00FT20I480O8A53000</atom:id>
<atom:title>RoleCollection</atom:title>
<atom:updated>2009-10-01T12:46:16.509Z</atom:updated>
<atom:link ac:rel="members" href="/wps/mycontenthandler/!ut/p/digest!TSVlGy5DI0S5vyp5i;yTw
/ac/member:User@oid:6_M8768B1A00FT20I480O8A53000"
rel="related" type="application/atom+xml"/>
<atom:link href="/wps/mypoc/!ut/p/digest!TSVlGy5DI0S5vyp5i;yTw
/ac/role:User@oid:6_M8768B1A00FT20I480O8A53000?mode=download"
rel="self" type="application/atom+xml"/>
<atom:content type="application/xml">
<ac:role ac:type="User"/>
</atom:content>
</atom:entry>
</atom:feed>Flux Resource Config et méthode GET
UID - ac:resourceconfig:oid:<resourceID>
Paramètres - Aucun.
GET - Renvoie des informations sur la configuration des ressources suivantes :
- Propriétaire
- Blocs de rôles
- IsPrivate
- Equivalent Portal Access Control Java™ API
accessControlHome.getManagedProtectedResource(resourceID) - Returns 200 if successful.
- Returns 404 if
resourceIDcannot be resolved.
GET renvoie le résultat suivant : <atom:entry ...>
...
<atom:title>ResourceConfig</atom:title>
<atom:id>ac:resourceconfig:oid:myPage</atom:id>
<atom:link href="/wps/mycontenthandler/!ut/p/digest!TSVlGy5DI0S5vyp5i;yTw
/ac/resourceconfig:oid:myPage" rel="self" type="application/atom+xml"/>
<atom:updated>2009-10-01T12:15:59.683Z</atom:updated>
<atom:content type="application/xml">
<ac:resource-config>
<ac:ownerac:id="9eAePPC2JP8C2ROIJMG6M1D8JMG6PPD0JM0723P8JM06KPOC6IH66BOCMQC6N1"
ac:display-name="wpsadmin"
ac:DN="uid=wpsadmin,o=defaultWIMFileBasedRealm" ac:type="user"/>
<ac:role-block ac:block-type="inheritance" ac:type="Privileged User"/>
<ac:role-block ac:block-type="propagation" ac:type="Delegator"/>
</ac:resource-config>
</atom:content>
</atom:entry>Flux Resource Config et méthode PUT
UID - ac:resourceconfig:oid:<resourceID>
- mode
- Indiquez l'une des valeurs suivantes :
- merge pour ajouter des blocs de rôles aux blocs de rôles existants. Le propriétaire change si vous définissez cette valeur.
- update pour remplacer des propriétaires et des blocs de rôles existants. Les propriétaires et les blocs de rôles sont supprimés si vous ne les indiquez pas. Il s'agit de la valeur par défaut.
PUT - Mettre à jour la configuration des ressources suivantes :
- Propriétaire
- Blocs de rôles
- Equivalent Portal Access Control Java™ API
accessControlHome.getManagedProtectedResource(resourceID) - Returns 200 if successful.
- Returns 404 if
resourceIDcannot be resolved. - Renvoie 400 si l'utilisateur actif n'a pas les droits d'accès requis.
Le contenu de la méthode PUT pour le flux Resource Config se présente comme suit :
URI - ac:resourceconfig:oid:<resourceID>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:ac="http://www.ibm.com/xmlns/prod/lotus/access-control/v1.0" >
<atom:content type="application/xml">
<ac:resource-config>
<ac:owner ac:id="9eAe6BD86PGCHPD6JMCCG1D8MMG63JD0JM4C3BDAJMK6"/>
<ac:role-block ac:block-type="inheritance" ac:type="MANAger"/>
<ac:role-block ac:block-type="propagation" ac:type="Editor"/>
<ac:role-block ac:block-type="propagation" ac:type="user"/>
</ac:resource-config>
</atom:content>
</atom:entry>Les éléments owner et role-block sont facultatifs.
ac:id, qui permet d'identifier le propriétaire à l'aide de l'ObjectID, utiilsez les identificateurs suivants : ac:DN="uid=wpsadmin,o=defaultWIMFileBasedRealm" ac:type=user- Indique le principal à l'aide du nom distinctif. Le type peut être user, group ou virtual (pour un principal virtuel). La valeur par défaut est user.
ac:email="wpsadmin@de.ibm.com"- Identifie les utilisateurs via leur adresses électronique.
Flux Allowed Access et méthode GET
UID - ac:access:oid:<resourceID>
Paramètres - Aucun.
GET - Renvoie des informations d'exécution sur la ressource pour l'utilisateur en cours, notamment tous les niveaux d'accès que l'utilisateur en cours possède sur la ressource.
- API de contrôle d'accès au portail Java™ équivalente : il n'existe pas de correspondance exacte avec l'API Java™. Toutefois, l'API suivante est appelée pour tous les
roleTypesapplicables :accessControlHome.getAccessControlRuntimeModel(resourceID).hasPermission(roleType) - Returns 200 if successful.
- Returns 404 if
resourceIDcannot be resolved.
GET renvoie le résultat suivant : <atom:entry...>
...
<atom:title>allowed-access</atom:title>
<atom:id>ac:access:oid:ibm.portal.Home</atom:id>
<atom:link href="/wps/mycontenthandler/!ut/p/digest!TSVlGy5DI0S5vyp5i;yTw
/ac/access:oid:ibm.portal.Home" rel="self" type="application/atom+xml"/>
<atom:updated>2009-10-01T12:55:16.620Z</atom:updated>
<atom:content type="application/xml">
<ac:allowed-access xmlns:ac="http://www.ibm.com/xmlns/prod/lotus/access-control/v1.0"
ac:user-owned="false">
<ac:access-level ac:type="Administrator"/>
<ac:access-level ac:type="Security Administrator"/>
<ac:access-level ac:type="Delegator"/>
<ac:access-level ac:type="Manager"/>
<ac:access-level ac:type="Editor"/>
<ac:access-level ac:type="Contributor"/>
<ac:access-level ac:type="Privileged User"/>
<ac:access-level ac:type="User"/>
</ac:allowed-access>
</atom:content>
</atom:entry>