Configurar a autenticação OIDC no SharePoint Server com chaves públicas RSA
APLICA-SE A:2013 2016 2019 Subscription Edition SharePoint no Microsoft 365
O OIDC é um protocolo de autenticação que utiliza JSON Web Tokens (JWTs) para verificar a identidade dos utilizadores e conceder-lhes acesso a recursos protegidos. Os JWTs são assinados digitalmente com chaves simétricas (partilhadas entre o emissor e o consumidor) ou chaves assimétricas (pares de chaves públicas/privadas).
Atualmente, o SharePoint Server suporta o fluxo de autenticação OIDC com chaves x5c, que são certificados que contêm a chave pública e outros metadados. No entanto, alguns fornecedores de OIDC podem não utilizar chaves x5c, mas sim chaves públicas RSA que são representadas diretamente com o módulo RSA e o expoente público RSA. Para suportar estes fornecedores, o SharePoint Server adicionou a capacidade de analisar e validar chaves públicas RSA em JWTs.
Este artigo explica as novas melhorias da Versão 24H2 que o ajudarão a configurar a autenticação OIDC no SharePoint Server com chaves públicas RSA.
Descrição geral da configuração do OIDC com chaves públicas RSA
- Configure o OIDC com Microsoft Entra ID através de credenciais de Administrador Global ao efetuar os passos mencionados aqui.
- Modifique as propriedades do farm do SharePoint Server com base na versão do farm do SharePoint Server. Para obter mais informações, veja Alterar as propriedades do farm do SharePoint.
- Configure o SharePoint para confiar no fornecedor de identidade ao criar
SPTrustedIdentityTokenIssuer
com chaves públicas RSA com os passos mencionados neste artigo. - Configure uma aplicação Web no SharePoint para ser federada com o Microsoft Entra OIDC, utilizando o
SPTrustedIdentityTokenIssuer
criado no passo anterior. Para obter mais informações, veja Criar uma nova aplicação Web. - Certifique-se de que a aplicação Web está configurada com o certificado SSL. Para configurar a aplicação Web, execute os passos para definir o certificado.
- Crie uma coleção de sites de equipa como administrador do Windows e administrador federado (Microsoft Entra ID). Para obter mais informações, consulte Criar a coleção de sites.
- Configure um Seletor de Pessoas com um Fornecedor de Afirmações Personalizadas ou o novo fornecedor de afirmações suportado pela UPA incluído no Edição de Assinatura do SharePoint Server. Consulte Configurar Pessoas Picker.
Passo 3: Configurar o SharePoint para confiar no fornecedor de identidade com chaves públicas RSA
Para chaves públicas RSA, crie ou configure uma SPTrustedTokenIssuer
para armazenar a configuração em que o SharePoint precisa de confiar como fornecedor OIDC. Pode configurar o SharePoint para confiar no fornecedor de identidade manualmente ou através do ponto final de metadados.
Configurar o OIDC do SharePoint com chaves públicas RSA com o ponto final de metadados
Um administrador pode seguir o mesmo comando do PowerShell que é utilizado para chaves x5c ao utilizar um ponto final de metadados para chaves públicas RSA. O SharePoint descobre que tipo de chave é utilizada a partir da resposta do ponto final de metadados e cria o SPTrustedIdentityTokenIssuer
adequado. Para obter mais informações, veja configurar o SharePoint para confiar Microsoft Entra ID ao utilizar um ponto final de metadados para obter um exemplo.
Configurar o OIDC do SharePoint com chaves públicas RSA manualmente
Ao criar ou configurar manualmente o SPTrustedIdentityTokenIssuer
para chaves públicas RSA, tem de especificar um novo -PublicKey
parâmetro durante a execução dos New-SPTrustedIdentityTokenIssuer
cmdlets ou Set-SPTrustedIdentityTokenIssuer
para definir o módulo e o expoente da chave pública RSA.
New-SPTrustedIdentityTokenIssuer
Pode executar o seguinte cmdlet do PowerShell com o -PublicKey
parâmetro :
New-SPTrustedIdentityTokenIssuer -Name "RSA-Manual" -Description "RSA Manually Created" -PublicKey $publicKeyXML -ClaimsMappings $emailClaimMap -IdentifierClaim $emailClaimMap.InputClaimType -DefaultClientIdentifier $clientIdentifier -RegisteredIssuerName $registeredissuernameurl -AuthorizationEndPointUri $authendpointurl -SignOutUrl $signouturl -Scope "openid profile"
O New-SPTrustedIdentityTokenIssuer
cmdlet do PowerShell utiliza os seguintes parâmetros:
Parâmetro | Descrição |
---|---|
Nome | Dá um nome ao novo emissor de tokens. |
Descrição | Fornece uma descrição para o novo emissor de tokens. |
Chave Pública | Especifica que o valor deve ser uma cadeia XML que define o módulo e o expoente da chave pública RSA Exemplo de $publicKeyXML valor: |
ClaimsMappings | Um SPClaimTypeMapping objeto, que é utilizado para identificar que afirmação no id_token é considerado identificador no SharePoint. |
IdentifierClaim | Especifica o tipo de identificador. |
DefaultClientIdentifier | Especifica o client_id do servidor do SharePoint, que é atribuído pelo fornecedor de identidade OIDC. Isto é validado relativamente à afirmação aud no id_token . |
RegisteredIssuerName | Especifica o identificador do emissor, que emite o id_token . É utilizado para validar o id_token . |
AuthorizationEndPointUrl | Especifica o ponto final de autorização do fornecedor de identidade OIDC. |
SignoutUrl | Especifica o ponto final de fim de sessão do fornecedor de identidade OIDC. |
Para extrair o valor correto $publicKeyXML
de um certificado x509, pode executar o seguinte comando do PowerShell:
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cert.Import("c:\certs\YourSigningCertificateHere.cer")
$publicKeyXml = $cert.PublicKey.Key.ToXmlString($false)
Set-SPTrustedIdentityTokenIssuer
O Set-SPTrustedIdentityTokenIssuer
cmdlet suporta o novo -PublicKey
parâmetro para chaves públicas RSA e utiliza a mesma <RSAKeyValue><Modulus>modulus</Modulus><Exponent>exponent</Exponent></RSAKeyValue>
cadeia XML que New-SPTrustedIdentityTokenIssuer
utiliza. Exemplo:
Set-SPTrustedIdentityTokenIssuer -Identity "RSA-Manual" -PublicKey $publicKeyXml -IsOpenIDConnect
Melhorias na configuração do OIDC
Com a Versão 24H2, os administradores podem esperar as seguintes melhorias ao configurar o SharePoint Server para confiar no fornecedor de identidade.
Permitir a configuração de vários identificadores de cliente no OIDC
A configuração de vários identificadores de cliente é agora permitida através do comutador -ScopedClientIdentifier num OIDC SPTrustedIdentityTokenIssuer
. Execute o seguinte comando:
Set-SPTrustedIdentityTokenIssuer -Identity <name> -ScopedClientIdentifier Dictionary<Uri,string> -IsOpenIDConnect
Ativar a capacidade de edição ClaimsMappings no Set-SPTrustedIdentityTokenIssuer
Em versões anteriores do SharePoint Server, ao criar SPTrustedIdentityTokenIssuer
o , tem de fornecer a lista de mapeamentos de afirmações, que é utilizada para mapear a afirmação do token de IdP para o token emitido do SharePoint. Depois de SPTrustedIdentityTokenIssuer
criado, só pode remover o mapeamento de afirmações existente ou adicionar o mapeamento de afirmações removido de volta, que é idêntico ao que removeu. No entanto, não pode adicionar um novo mapeamento de afirmações, que não está originalmente na lista ou alterar um mapeamento de afirmações existente.
A nova atualização da compilação versão 24H2 permite que os utilizadores adicionem um novo parâmetro para Set-SPTrustedIdentityTokenIssuer
que possam alterar a lista de mapeamentos de afirmações. Com este novo parâmetro seguinte, pode até modificar a lista de mapeamentos de afirmações do emissor de tokens.
Novo parâmetro: -ClaimsMappings <SPClaimMappingPipeBind[]>
Suportar IdPs OIDC que não podem funcionar com carateres universais no URL de redirecionamento
Alguns IdPs OIDC, como o Azure Active Directory B2C, não conseguem trabalhar com carateres universais no URL de redirecionamento. Isto faz com que o SharePoint não consiga redirecionar novamente para o recurso original que está a ser pedido após a autenticação. Nesta versão, adicionámos uma propriedade de estado no cabeçalho da resposta para preservar o URL de redirecionamento para que o SharePoint possa saber para que URL redirecionar.
Pode utilizar o seguinte cmdlet do PowerShell para o ativar no token que criou:
Set-SPTrustedIdentityTokenIssuer -Identity <name> -UseStateToRedirect:$True -IsOpenIDConnect
Atualizar certificado por tarefa de temporizador
É criada uma nova tarefa de temporizador (RefreshMetadataFeed) para obter automaticamente as definições de configuração mais recentes do ponto final de metadados OIDC configurado diariamente e atualizar o emissor de tokens fidedignos OIDC em conformidade. Inclui os certificados utilizados para encriptação e assinatura de tokens, emissor de tokens, ponto final de autorização e SignoutUrl. Pode alterar a frequência de atualização ao alterar o agendamento da tarefa de temporizador. Por exemplo, pode alterar a agenda da tarefa de temporizador para "5:00 todos os sábados" com o PowerShell:
Get-SPTimerJob refreshmetadafeed | Set-SPTimerJob -Schedule "weekly at sat 5:00"
Esta tarefa de temporizador é ativada quando configura um emissor de tokens fidedignos OIDC com o ponto final de metadados. Se tiver uma configuração do emissor de tokens fidedignos OIDC antes de aplicar esta atualização, terá de repor este emissor de tokens novamente para que a tarefa de temporizador possa ser ativada para este emissor de tokens. Pode repor o emissor de tokens com o PowerShell
Set-SPTrustedIdentityTokenIssuer -Identity <OIDCtokenissuer> -MetadataEndPoint <URL>