# Autenticação Baseada em Certificado para Entra ID

A autenticação baseada em certificados oferece uma alternativa de segurança robusta para aceder aos recursos do Entra ID. Este artigo fornece um passo a passo de como configurar este método, utilizando o SCEPman como Autoridade Certificadora para simplificar a gestão de certificados.

## Ativar CRL do SCEPman

{% content-ref url="../../../gerenciamento-de-certificados/manage-certificates/enabling-crl" %}
[enabling-crl](https://docs.scepman.com/pt/gerenciamento-de-certificados/manage-certificates/enabling-crl)
{% endcontent-ref %}

O Entra ID irá necessitar de uma CRL para validar os certificados. Certifique-se de que define as seguintes variáveis de ambiente no seu app service para que a CRL esteja disponível:

[AppConfig:CRL:RequestToken](https://docs.scepman.com/scepman-configuration/application-settings/crl#appconfig-crl-requesttoken)

Defina isto para uma string personalizada que será usada no URL para permitir que a CRL seja transferida.

[AppConfig:CRL:Source](https://docs.scepman.com/scepman-configuration/application-settings/crl#appconfig-crl-source)

Esta é a origem a partir da qual o SCEPman gera a CRL. Certifique-se de que isto está definido para `Storage`

## Configurar o Entra ID

{% stepper %}
{% step %}

### Criar PKI no Entra Security Center

No Entra ID, navegue até **Proteção** > **Security Center** > [**Infraestrutura de Chave Pública**](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/SecurityMenuBlade/~/PublicKeyInfrastructure/menuId/SecurityCenter/fromNav/)**,** clique em *Criar PKI* e selecione um nome de apresentação correspondente.
{% endstep %}

{% step %}

### Adicionar Autoridade Certificadora

Navegue até à PKI recém-criada e clique em *Adicionar autoridade certificadora* para carregar o certificado da CA da sua instância do SCEPman. Este certificado pode ser obtido na página inicial, no menu do lado direito (*Obter certificado da CA*).

Para o URL da lista de revogação de certificados, pode introduzir o URL no seguinte formato:

```
https://scepman.contoso.com/crl/pem/{YourCrlRequestToken}
```

{% hint style="warning" %}
Certifique-se de incluir o caminho `/pem/` no seu URL, uma vez que o Entra pode ter problemas de compatibilidade ao usar o formato DER predefinido.
{% endhint %}

Isto deverá agora deixá-lo com uma autoridade certificadora semelhante à seguinte:

<figure><img src="https://3802289327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FJ8NIUb0d7eyJ6VLQboOr%2Fimage.png?alt=media&#x26;token=9db3a6e0-f62a-4b5d-9225-3fd9df3d00cd" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Ativar CBA nos métodos de autenticação

Com a CA em vigor, podemos prosseguir e ativar a autenticação baseada em certificados em **Proteção** > **Métodos de autenticação** > [**Políticas**](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods/fromNav/)

Vá para a *Autenticação baseada em certificados* política, ative-a e permita que todos os utilizadores ou grupos específicos usem este método:

![](https://3802289327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FA5JQWoky2wn9xy7BK384%2Fimage.png?alt=media\&token=be93a02a-0a8d-4e54-a816-d003d6b05c41)
{% endstep %}

{% step %}

### Configurar autenticação baseada em certificados

Mude para o separador *Configurar* e percorra as opções:

**Exigir validação da CRL**: ✅

Esta é uma parte essencial da segurança que este método oferece, uma vez que a CRL indicará ao Entra ID quais certificados foram revogados e, por isso, não devem ser permitidos para autenticação.

**Dicas do emissor** : ✅

Ativar as dicas do emissor mostrará apenas, durante a autenticação, certificados emitidos pela CA configurada.

Deixe as definições predefinidas para a vinculação de autenticação e prossiga para criar uma regra que permita a autoridade certificadora criada anteriormente:

<figure><img src="https://3802289327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FE8UtFEErL3Into71bGui%2Fimage.png?alt=media&#x26;token=17f860ed-2f4d-492d-b574-dd56f7cff9b4" alt=""><figcaption></figcaption></figure>

**Força de autenticação**:

Isto define o peso da autenticação usando esta CA. Se selecionar *Autenticação de fator único*, poderá ser necessário outro método de autenticação dependendo da aplicação a que se pretende aceder.

**Vinculação de afinidade**:

A vinculação de afinidade define os detalhes necessários no certificado, que têm de corresponder aos dados correlacionados no objeto do utilizador, para que a autenticação seja permitida. Como o SCEPman atualmente não pode adicionar qualquer informação de certificado no objeto do utilizador, recomendamos defini-la para **Low** a menos que configure a informação necessária manualmente.

{% hint style="warning" %}
As definições de força de autenticação e vinculação de afinidade dependem muito do caso de utilização específico e do tipo de contas que pretende proteger com este método de autenticação. Caso pretenda proteger utilizadores com privilégios elevados, deve considerar adicionar manualmente as informações do certificado nas respetivas contas de utilizador para uma elevada afinidade.
{% endhint %}
{% endstep %}
{% endstepper %}

## Utilização

Com a configuração em vigor, um utilizador pode selecionar *Usar um certificado ou cartão inteligente*:

<figure><img src="https://3802289327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FadOI8hZm2kOoKAOvi0vq%2Fimage.png?alt=media&#x26;token=bba5bfbd-6577-48b6-adc7-66a49edbdf35" alt=""><figcaption></figcaption></figure>

O que, por sua vez, pedirá o certificado a ser utilizado para autenticação.

<figure><img src="https://3802289327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FsNh5rtPY52gnNZCkq9X4%2Fimage.png?alt=media&#x26;token=85568bc1-3daa-4691-827d-f002b0701bf2" alt=""><figcaption></figcaption></figure>

## Adicionar manualmente o mapeamento de certificados para vinculação de alta afinidade

Caso pretenda ativar CBA apenas usando vinculação de alta afinidade, pode introduzir manualmente os detalhes dos certificados nas informações autorizadas do utilizador.

Navegue até às propriedades dos utilizadores no Entra ID, edite-as e agora edite o **IDs de utilizador do certificado**:

<figure><img src="https://3802289327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FyGzQlmHC4nv6yzEKBwZG%2Fimage.png?alt=media&#x26;token=9ab1a272-df75-46c0-b2ca-51c18420e823" alt=""><figcaption></figcaption></figure>

O formato necessário destes IDs depende dos campos que foram configurados na vinculação de utilizador dos métodos de autenticação. Pode encontrar uma lista de formatos no correspondente [documentação da Microsoft](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-certificate-based-authentication-certificateuserids#supported-patterns-for-certificate-user-ids).

Exemplo para a *SHA1PublicKey* vinculação:

```
X509:<SHA1-PUKEY>9600e49d740011187e5c734bab4a3d5d18d2a87a
```

Isto utiliza a impressão digital do certificado para mapear de forma robusta a identidade do utilizador.
