Bagikan melalui


Skema autentikasi titik akhir layanan

Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Saat Anda menentukan jenis titik akhir layanan kustom di ekstensi Anda, Anda menentukan skema autentikasi yang memberi tahu Azure DevOps cara mengatur kredensial di header permintaan HTTP. Azure DevOps mendukung skema autentikasi berikut untuk titik akhir kustom.

Ujung

Untuk panduan pengembangan ekstensi terbaru, termasuk tema dan migrasi dari VSS. SDK, lihat portal pengembang Azure DevOps Extension SDK.

Otentikasi dasar

Menggunakan nama pengguna dan kata sandi yang dikirim sebagai header Authorization yang dikodekan Base64.

Penting

Jika memungkinkan, gunakan perwakilan layanan dan identitas terkelola alih-alih autentikasi dasar. Untuk informasi selengkapnya, lihat Menggunakan perwakilan layanan & identitas terkelola.

Jenis skema bawaan adalah ms.vss-endpoint.endpoint-auth-scheme-basic. Anda tidak perlu mendeklarasikannya dalam manifes ekstensi Anda — referensikan dalam array jenis authenticationSchemes titik akhir Anda:

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

Azure DevOps meminta pengguna untuk Nama Pengguna dan Kata Sandi dan mengirimkannya sebagai header HTTP Basic Authorization standar.

Autentikasi berbasis token

Mengambil satu data input yang bersifat rahasia — sebuah token API. Nilai token dikirim di Authorization header.

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

Placeholder {{endpoint.apitoken}} menghasilkan nilai yang dimasukkan pengguna di bidang Token API pada saat runtime.

Autentikasi berbasis sertifikat

Memproses satu masukan rahasia — konten sertifikat, dimasukkan ke dalam area teks.

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

Tidak ada autentikasi

Gunakan skema ini saat layanan eksternal mendukung akses anonim dan tidak diperlukan kredensial.

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