Schémas d’authentification de point de terminaison de service

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Lorsque vous définissez un type de point de terminaison de service personnalisé dans votre extension, vous spécifiez un schéma d’authentification qui indique à Azure DevOps comment définir des informations d’identification dans l’en-tête de requête HTTP. Azure DevOps prend en charge les schémas d’authentification suivants pour les points de terminaison personnalisés.

Conseil

Pour obtenir les dernières instructions de développement d’extension, notamment les thèmes et la migration à partir de VSS. Sdk, consultez le portail du kit de développement logiciel (SDK) d’extension Azure DevOps.

Authentification de base

Utilise un nom d’utilisateur et un mot de passe envoyés en tant qu’en-tête codé en Authorization base64.

Important

Si possible, utilisez des principaux de service et des identités managées au lieu de l’authentification de base. Pour plus d’informations, veuillez consulter Utiliser des principaux de service et des identités managées.

Le type de schéma intégré est ms.vss-endpoint.endpoint-auth-scheme-basic. Vous n’avez pas besoin de le déclarer dans votre manifeste d’extension : référencez-le dans le tableau du type d'endpoint authenticationSchemes.

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

Azure DevOps invite l’utilisateur à entrer le nom d’utilisateur et le mot de passe et les envoie en tant qu’en-tête HTTP Basic Authorization standard.

Authentification basée sur les jetons

Prend une entrée confidentielle unique : un jeton d’API. La valeur du jeton est envoyée dans l’en-tête Authorization .

{
    "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
                        }
                    }
                ]
            }
        ]
    }
}

Le {{endpoint.apitoken}} espace réservé se résout en la valeur que l’utilisateur entre dans le champ Jeton d’API à l’exécution.

Authentification basée sur un certificat

Prend une entrée confidentielle unique : le contenu du certificat, entré dans une zone de texte.

{
    "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"
                        }
                    }
                ]
            }
        ]
    }
}

Aucune authentification

Utilisez ce schéma lorsque le service externe prend en charge l’accès anonyme et qu’aucune information d’identification n’est nécessaire.

{
    "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"
    }
}