Freigeben über


Authentifizierungsschemas für Dienstendpunkte

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

Wenn Sie einen benutzerdefinierten Dienstendpunkttyp in Ihrer Erweiterung definieren, geben Sie ein Authentifizierungsschema an, das Azure DevOps angibt, wie Anmeldeinformationen im HTTP-Anforderungsheader festgelegt werden. Azure DevOps unterstützt die folgenden Authentifizierungsschemas für benutzerdefinierte Endpunkte.

Tipp

Für die neuesten Anleitungen zur Erweiterungsentwicklung, einschließlich Themengestaltung und Migration von VSS.SDK, besuchen Sie das Entwicklerportal des Azure DevOps Extension SDK.

Standardauthentifizierung

Verwendet einen Benutzernamen und ein Kennwort, das als Base64-codierter Authorization Header gesendet wird.

Von Bedeutung

Verwenden Sie nach Möglichkeit Dienstprinzipale und verwaltete Identitäten anstelle der Standardauthentifizierung. Weitere Informationen finden Sie unter Verwenden von Dienstprinzipalen & verwaltete Identitäten.

Der integrierte Schematyp ist ms.vss-endpoint.endpoint-auth-scheme-basic. Sie müssen sie nicht im Erweiterungsmanifest deklarieren – verweisen Sie darauf im Array Ihres Endpunkttyps authenticationSchemes :

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

Azure DevOps fordert den Benutzer zur Eingabe von Benutzername und Kennwort auf und sendet sie als standardmäßigen HTTP Basic-Header Authorization .

Tokenbasierte Authentifizierung

Akzeptiert eine einzelne vertrauliche Eingabe – ein API-Token. Der Tokenwert wird in der Authorization Kopfzeile gesendet.

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

Der {{endpoint.apitoken}} Platzhalter wird in den Wert aufgelöst, den der Benutzer zur Laufzeit im FELD "API-Token " eingibt.

Zertifikatbasierte Authentifizierung

Akzeptiert eine einzelne vertrauliche Eingabe – den Zertifikatinhalt, der in einen Textbereich eingegeben wurde.

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

Keine Authentifizierung

Verwenden Sie dieses Schema, wenn der externe Dienst anonymen Zugriff unterstützt und keine Anmeldeinformationen erforderlich sind.

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