Configure Astra para que utilice un servidor LDAP
Debe seleccionar un servidor LDAP y configurar Astra para utilizar el servidor como proveedor de autenticación. La tarea de configuración consta de los pasos descritos a continuación. Cada paso incluye una única llamada API DE REST.
1. Añadir un certificado de CA
Realice la siguiente llamada a la API DE REST para añadir un certificado de CA a Astra.
Este paso es opcional y solo es necesario si desea que Astra y LDAP se comuniquen a través de un canal seguro mediante LDAPS. |
Método HTTP | Ruta |
---|---|
PUBLICAR |
/accounts/{account_id}/core/v1/certificates |
Ejemplo de entrada JSON
{
"type": "application/astra-certificate",
"version": "1.0",
"certUse": "rootCA",
"cert": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMyVEN",
"isSelfSigned": "true"
}
Tenga en cuenta lo siguiente acerca de los parámetros de entrada:
-
cert
Es una cadena JSON que contiene un certificado con formato PKCS-11 codificado en base64 (codificado en PEM). -
isSelfSigned
se debe establecer entrue
si el certificado está autofirmado. El valor predeterminado esfalse
.
Ejemplo de curl
curl --location -i --request POST --data @JSONinput 'https://astra.example.com/accounts/<ACCOUNT_ID>/core/v1/certificates' --header 'Content-Type: application/astra-certificate+json' --header 'Accept: */*' --header 'Authorization: Bearer <API_TOKEN>'
Ejemplo de respuesta JSON
{
"type": "application/astra-certificate",
"version": "1.0",
"id": "a5212e7e-402b-4cff-bba0-63f3c6505199",
"certUse": "rootCA",
"cert": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMyVEN",
"cn": "adldap.example.com",
"expiryTimestamp": "2023-07-08T20:22:07Z",
"isSelfSigned": "true",
"trustState": "trusted",
"trustStateTransitions": [
{
"from": "untrusted",
"to": [
"trusted",
"expired"
]
},
{
"from": "trusted",
"to": [
"untrusted",
"expired"
]
},
{
"from": "expired",
"to": [
"untrusted",
"trusted"
]
}
],
"trustStateDesired": "trusted",
"trustStateDetails": [],
"metadata": {
"creationTimestamp": "2022-07-21T04:16:06Z",
"modificationTimestamp": "2022-07-21T04:16:06Z",
"createdBy": "8a02d2b8-a69d-4064-827f-36851b3e1e6e",
"modifiedBy": "8a02d2b8-a69d-4064-827f-36851b3e1e6e",
"labels": []
}
}
2. Añada las credenciales de enlace
Ejecute la siguiente llamada API de REST para añadir las credenciales de enlace.
Método HTTP | Ruta |
---|---|
PUBLICAR |
/accounts/{account_id}/core/v1/credenciales |
Ejemplo de entrada JSON
{
"name": "ldapBindCredential",
"type": "application/astra-credential",
"version": "1.1",
"keyStore": {
"bindDn": "dWlkPWFkbWluLG91PXN5c3RlbQ==",
"password": "cGFzc3dvcmQ="
}
}
Tenga en cuenta lo siguiente acerca de los parámetros de entrada:
-
bindDn
y..password
Son las credenciales de enlace codificadas base64 del usuario administrador LDAP que puede conectarse y buscar en el directorio LDAP.bindDn
Es la dirección de correo electrónico del usuario LDAP.
Ejemplo de curl
curl --location -i --request POST --data @JSONinput 'https://astra.example.com/accounts/<ACCOUNT_ID>/core/v1/credentials' --header 'Content-Type: application/astra-credential+json' --header 'Accept: */*' --header 'Authorization: Bearer <API_TOKEN>'
Ejemplo de respuesta JSON
{
"type": "application/astra-credential",
"version": "1.1",
"id": "3bd9c8a7-f5a4-4c44-b778-90a85fc7d154",
"name": "ldapBindCredential",
"metadata": {
"creationTimestamp": "2022-07-21T06:53:11Z",
"modificationTimestamp": "2022-07-21T06:53:11Z",
"createdBy": "527329f2-662c-41c0-ada9-2f428f14c137"
}
}
Tenga en cuenta los siguientes parámetros de respuesta:
-
La
id
de la credencial se utiliza en los pasos posteriores del flujo de trabajo.
3. Recupere el UUID de la configuración LDAP
Realice la siguiente llamada API DE REST para recuperar el UUID del astra.account.ldap
Ajuste que se incluye con Astra Control Center.
El ejemplo curl que se muestra a continuación utiliza un parámetro de consulta para filtrar la colección de ajustes. En su lugar, puede quitar el filtro para obtener todos los ajustes y, a continuación, buscar astra.account.ldap .
|
Método HTTP | Ruta |
---|---|
OBTENGA |
/accounts/{account_id}/core/v1/settings |
Ejemplo de curl
curl --location -i --request GET 'https://astra.example.com/accounts/<ACCOUNT_ID>/core/v1/settings?filter=name%20eq%20'astra.account.ldap'&include=name,id' --header 'Accept: */*' --header 'Authorization: Bearer <API_TOKEN>'
Ejemplo de respuesta JSON
{
"items": [
["astra.account.ldap",
"12072b56-e939-45ec-974d-2dd83b7815df"
]
],
"metadata": {}
}
4. Actualice la configuración de LDAP
Realice la siguiente llamada a la API DE REST para actualizar la configuración de LDAP y completar la configuración. Utilice la id
Valor de la llamada de API anterior para <SETTING_ID>
Valor en la ruta de dirección URL a continuación.
Puede emitir primero una solicitud GET para la configuración específica para ver el esquema configSchema. Esto proporcionará más información acerca de los campos requeridos en la configuración. |
Método HTTP | Ruta |
---|---|
PUESTO |
/accounts/{account_id}/core/v1/settings/{setting_id} |
Ejemplo de entrada JSON
{
"type": "application/astra-setting",
"version": "1.0",
"desiredConfig": {
"connectionHost": "myldap.example.com",
"credentialId": "3bd9c8a7-f5a4-4c44-b778-90a85fc7d154",
"groupBaseDN": "OU=groups,OU=astra,DC=example,DC=com",
"isEnabled": "true",
"port": 686,
"secureMode": "LDAPS",
"userBaseDN": "OU=users,OU=astra,DC=example,dc=com",
"userSearchFilter": "((objectClass=User))",
"vendor": "Active Directory"
}
}
Tenga en cuenta lo siguiente acerca de los parámetros de entrada:
-
isEnabled
se debe establecer entrue
o se puede producir un error. -
credentialId
es el id de la credencial de enlace creada anteriormente. -
secureMode
se debe establecer enLDAP
o.LDAPS
según la configuración del paso anterior. -
Sólo se admite "Active Directory" como proveedor.
Ejemplo de curl
curl --location -i --request PUT --data @JSONinput 'https://astra.example.com/accounts/<ACCOUNT_ID>/core/v1/settings/<SETTING_ID>' --header 'Content-Type: application/astra-setting+json' --header 'Accept: */*' --header 'Authorization: Bearer <API_TOKEN>'
Si la llamada se realiza correctamente, se devuelve la respuesta HTTP 204.
5. Recupere el ajuste LDAP
De forma opcional, puede realizar la siguiente llamada API DE REST para recuperar la configuración de LDAP y confirmar la actualización.
Método HTTP | Ruta |
---|---|
OBTENGA |
/accounts/{account_id}/core/v1/settings/{setting_id} |
Ejemplo de curl
curl --location -i --request GET 'https://astra.example.com/accounts/<ACCOUNT_ID>/core/v1/settings/<SETTING_ID>' --header 'Accept: */*' --header 'Authorization: Bearer <API_TOKEN>'
Ejemplo de respuesta JSON
{
"items": [
{
"type": "application/astra-setting",
"version": "1.0",
"metadata": {
"creationTimestamp": "2022-06-17T21:16:31Z",
"modificationTimestamp": "2022-07-21T07:12:20Z",
"labels": [],
"createdBy": "system",
"modifiedBy": "00000000-0000-0000-0000-000000000000"
},
"id": "12072b56-e939-45ec-974d-2dd83b7815df",
"name": "astra.account.ldap",
"desiredConfig": {
"connectionHost": "10.193.61.88",
"credentialId": "3bd9c8a7-f5a4-4c44-b778-90a85fc7d154",
"groupBaseDN": "ou=groups,ou=astra,dc=example,dc=com",
"isEnabled": "true",
"port": 686,
"secureMode": "LDAPS",
"userBaseDN": "ou=users,ou=astra,dc=example,dc=com",
"userSearchFilter": "((objectClass=User))",
"vendor": "Active Directory"
},
"currentConfig": {
"connectionHost": "10.193.160.209",
"credentialId": "3bd9c8a7-f5a4-4c44-b778-90a85fc7d154",
"groupBaseDN": "ou=groups,ou=astra,dc=example,dc=com",
"isEnabled": "true",
"port": 686,
"secureMode": "LDAPS",
"userBaseDN": "ou=users,ou=astra,dc=example,dc=com",
"userSearchFilter": "((objectClass=User))",
"vendor": "Active Directory"
},
"configSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "astra.account.ldap",
"type": "object",
"properties": {
"connectionHost": {
"type": "string",
"description": "The hostname or IP address of your LDAP server."
},
"credentialId": {
"type": "string",
"description": "The credential ID for LDAP account."
},
"groupBaseDN": {
"type": "string",
"description": "The base DN of the tree used to start the group search. The system searches the subtree from the specified location."
},
"groupSearchCustomFilter": {
"type": "string",
"description": "Type of search that controls the default group search filter used."
},
"isEnabled": {
"type": "string",
"description": "This property determines if this setting is enabled or not."
},
"port": {
"type": "integer",
"description": "The port on which the LDAP server is running."
},
"secureMode": {
"type": "string",
"description": "The secure mode LDAPS or LDAP."
},
"userBaseDN": {
"type": "string",
"description": "The base DN of the tree used to start the user search. The system searches the subtree from the specified location."
},
"userSearchFilter": {
"type": "string",
"description": "The filter used to search for users according a search criteria."
},
"vendor": {
"type": "string",
"description": "The LDAP provider you are using.",
"enum": ["Active Directory"]
}
},
"additionalProperties": false,
"required": [
"connectionHost",
"secureMode",
"credentialId",
"userBaseDN",
"userSearchFilter",
"groupBaseDN",
"vendor",
"isEnabled"
]
},
"state": "valid",
}
],
"metadata": {}
}
Localice el state
en el campo de respuesta que tendrá uno de los valores de la tabla siguiente.
Estado | Descripción |
---|---|
pendiente |
El proceso de configuración sigue activo y aún no se ha completado. |
válido |
La configuración se ha completado correctamente y. |
error |
Error en el proceso de configuración de LDAP. |