Partilhar via


Esquemas de autenticação de ponto de extremidade de serviço

Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022

Quando defines um tipo de endpoint de serviço personalizado na tua extensão, especificas um esquema de autenticação que diz ao Azure DevOps como definir credenciais no cabeçalho do pedido HTTP. O Azure DevOps suporta os seguintes esquemas de autenticação para endpoints personalizados.

Dica

Para as mais recentes orientações de desenvolvimento de extensões, incluindo tema e migração do VSS. SDK, consulte o portal para programadores do Azure DevOps Extension SDK.

autenticação Básica

Utiliza um nome de utilizador e palavra-passe enviados como um cabeçalho codificado Authorization em Base64.

Importante

Sempre que possível, utilize princípios de serviço e identidades geridas em vez de autenticação básica. Para obter mais informações, consulte Usar entidades de serviço & identidades gerenciadas.

O tipo de esquema incorporado é ms.vss-endpoint.endpoint-auth-scheme-basic. Não precisa de o declarar no seu manifesto de extensão — referencie-o no array do tipo de endpoint authenticationSchemes.

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

O Azure DevOps solicita ao utilizador o nome de utilizador e a palavra-passe e envia-os como cabeçalho HTTP Basic Authorization padrão.

Autenticação baseada em tokens

Aceita uma única entrada confidencial — um token da API. O valor do token é enviado no Authorization cabeçalho.

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

O {{endpoint.apitoken}} marcador resolve-se no valor que o utilizador insere no campo API Token no momento de execução.

Autenticação baseada em certificado

Recebe uma única entrada confidencial — o conteúdo do certificado, inserido numa á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"
                        }
                    }
                ]
            }
        ]
    }
}

Sem autenticação

Use este esquema quando o serviço externo suporta acesso anónimo e não são necessárias credenciais.

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