Esquemas de autenticación de punto de conexión de servicio

Servicios de Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Cuando se define un tipo de punto de conexión de servicio personalizado en la extensión, se especifica un esquema de autenticación que indica a Azure DevOps cómo establecer credenciales en el encabezado de solicitud HTTP. Azure DevOps admite los siguientes esquemas de autenticación para puntos de conexión personalizados.

Sugerencia

Para obtener las instrucciones de desarrollo de extensiones más recientes, incluidas las temáticas y la migración desde VSS. SDK, consulte el portal para desarrolladores del SDK de extensión de Azure DevOps.

Autenticación básica

Usa un nombre de usuario y una contraseña enviados como encabezado codificado Authorization en Base64.

Importante

Siempre que sea posible, use entidades de servicio e identidades administradas en lugar de la autenticación básica. Para obtener más información, consulte Uso de entidades de servicio & identidades administradas.

El tipo de esquema integrado es ms.vss-endpoint.endpoint-auth-scheme-basic. No es necesario declararlo en el manifiesto de extensión; haga referencia a él en la matriz de tipos del punto de conexión authenticationSchemes:

"authenticationSchemes": [
    {
        "type": "ms.vss-endpoint.endpoint-auth-scheme-basic"
    }
]

Azure DevOps solicita al usuario el nombre de usuario y la contraseña y los envía como encabezado HTTP Básico Authorization estándar.

Autenticación basada en tokens

Toma una única entrada confidencial: un token de API. El valor del token se envía en el Authorization encabezado .

{
    "id": "endpoint-auth-scheme-token",
    "description": "i18n:Token based endpoint authentication scheme",
    "type": "ms.vss-endpoint.service-endpoint-type",
    "targets": [
        "ms.vss-endpoint.endpoint-types"
    ],
    "properties": {
        "name": "Token",
        "displayName": "i18n:Token Based Authentication",
        "authenticationSchemes": [
            {
                "type": "ms.vss-endpoint.endpoint-auth-scheme-token",
                "headers": [
                    {
                        "name": "Authorization",
                        "value": "{{endpoint.apitoken}}"
                    }
                ],
                "inputDescriptors": [
                    {
                        "id": "apitoken",
                        "name": "i18n:API Token",
                        "description": "i18n:API Token for connection to endpoint",
                        "inputMode": "textbox",
                        "isConfidential": true,
                        "validation": {
                            "isRequired": true,
                            "dataType": "string",
                            "maxLength": 300
                        }
                    }
                ]
            }
        ]
    }
}

El {{endpoint.apitoken}} marcador de posición se resuelve en el valor que el usuario escribe en el campo Token de API en tiempo de ejecución.

Autenticación basada en certificados

Toma una única entrada confidencial: el contenido del certificado, escrito en un área de texto.

{
    "id": "endpoint-auth-scheme-cert",
    "description": "i18n:Creates a certificate-based endpoint authentication scheme",
    "type": "ms.vss-endpoint.service-endpoint-type",
    "targets": [
        "ms.vss-endpoint.endpoint-types"
    ],
    "properties": {
        "name": "Certificate",
        "displayName": "i18n:Certificate Based",
        "authenticationSchemes": [
            {
                "type": "ms.vss-endpoint.endpoint-auth-scheme-cert",
                "inputDescriptors": [
                    {
                        "id": "certificate",
                        "name": "i18n:Certificate",
                        "description": "Content of the certificate",
                        "inputMode": "TextArea",
                        "isConfidential": true,
                        "validation": {
                            "isRequired": true,
                            "dataType": "string"
                        }
                    }
                ]
            }
        ]
    }
}

Sin autenticación

Use este esquema cuando el servicio externo admita el acceso anónimo y no se necesiten credenciales.

{
    "id": "endpoint-auth-scheme-none",
    "description": "i18n:Creates an endpoint authentication scheme with no authentication.",
    "type": "ms.vss-endpoint.endpoint-auth-scheme-none",
    "targets": [
        "ms.vss-endpoint.endpoint-auth-schemes"
    ],
    "properties": {
        "name": "None",
        "displayName": "i18n:No Authentication"
    }
}