Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un rol es un conjunto de permisos asignados a un usuario. Además de los roles de plataforma, como Network Administración, también puede crear roles personalizados que solo tengan el conjunto de permisos que desee.
La forma en que la API concede permisos de usuario es conceder a un usuario acceso a los recursos.
En esta página se muestra cómo crear un rol personalizado mediante la API.
Paso 1: Determinar los recursos de rol
Al diseñar un rol personalizado, primero debe determinar a qué recursos tendrá acceso el rol. Por ejemplo, un rol podría tener acceso al identificador de recurso 157, "UI API Ad Profile Create", que permitirá a los usuarios de ese rol crear perfiles de anuncio.
Para ver la lista de recursos del sistema al que podrían tener acceso los usuarios de un miembro, consulte Ver recursos del sistema mediante la API.
En este ejemplo, nuestro rol personalizado tendrá acceso a los siguientes recursos:
| Id. | Role |
|---|---|
| 1 | Nivel de subasta de rendimiento de API Create |
| 2 | Lectura de la regla de pago de API |
Paso 2: JSON del rol Create
Para proporcionar a nuestro nuevo rol acceso a estos recursos, tendremos que cargar un objeto JSON como el siguiente.
Nota:
El name y la lista de resources son necesarios.
Este es un "primer borrador" del rol JSON, al que tendremos que agregar en el paso siguiente.
{
"access-member-role" : {
"description" : "Auction Tiers and Payment Rules Only",
"resources" : [
{
"id" : 1
},
{
"id" : 2
}
],
"name" : "[test] auction-tier-payment-rule"
}
}
Paso 3: Averiguar las dependencias de recursos
Un recurso determinado suele tener dependencias en otros orígenes más generales. Para conceder a su rol personalizado acceso a todos los recursos del sistema que necesita, debe especificar y agregar todas las dependencias manualmente.
Para facilitar esto, hay un servicio de API que puede usar para buscar las dependencias que necesita. Realice una GET llamada al servicio Access Resource Dependency List Service como se muestra a continuación. Debe incluir el parámetro de cadena de resource_id consulta.
$ curl -b /Users/username/.x-api-client/usor-env-cookies -X GET \
'https://api.appnexus.com/access-resource-dependency-list?resource_id=1'
Obtendrá una lista de identificadores de recursos en el children campo . Tendrá que agregar estos identificadores al rol JSON.
Nota:
Estas dependencias pueden tener sus propias dependencias.
{
"response" : {
"access-resource-dependency-list" : [
{
"children" : [
153,
163,
171
],
"resource_id" : 1,
"parents" : [
146
],
"dependencies" : [
153,
163,
171
]
}
],
"count" : 1,
"start_element" : 0,
"status" : "OK",
"num_elements" : 0
}
}
Sugerencia
Obtener más información sobre un recurso
Si desea obtener más información sobre cualquiera de las dependencias de un recurso, eche un vistazo a él mediante las instrucciones de Ver recursos del sistema mediante la API.
Paso 4: Actualizar json de rol con dependencias de recursos (si es necesario)
Si los recursos del rol personalizado tienen dependencias, agréguelos al json de rol. Debería ser similar al ejemplo siguiente.
{
"access-member-role" : {
"name" : "[test] auction-tier-payment-rule",
"resources" : [
{
"id" : 1
},
{
"id" : 2
},
{
"id" : 153
},
{
"id" : 163
},
{
"id" : 171
}
],
"description" : "Auction Tiers and Payment Rules Only"
}
}
Paso 5: POST ROL JSON
POST el json de rol para el servicio de rol de miembro de acceso.
$ curl -b cookies -X POST -d '@create-custom-role.json' \
'https://api.appnexus.com/access-member-role?member_id=1282'
Si todo va según el plan, verá una respuesta como la siguiente. Si olvidó especificar la lista completa de dependencias de un recurso, obtendrá un error con los identificadores de recurso de las dependencias que necesita.
{
"response" : {
"access-member-role" : [
{
"id" : 113,
"last_modified" : "2016-04-04 21:05:48",
"resources" : [
{
"name" : "hbapi-ym-auction-tier-post",
"id" : 1
},
{
"id" : 2,
"name" : "hbapi-payment-rule-get"
},
{
"id" : 153,
"name" : "hbapi-ym-auction-tier-get"
},
{
"id" : 163,
"name" : "hbapi-ym-profile-get"
},
{
"name" : "hbapi-publisher-get",
"id" : 171
}
],
"description" : "Auction Tiers and Payment Rules Only",
"member_id" : 1282,
"name" : "[test] auction-tier-payment-rule"
}
],
"start_element" : 0,
"status" : "OK",
"count" : 1,
"num_elements" : 1
}
}