Condividi tramite


Configurare l'app Azure per l'accesso a SharePoint

L'uso dell'entità Documenti di SharePoint in un'organizzazione Dynamics 365 all'esterno della griglia Documenti in un'app Dynamics 365 Customer Engagement (on-premises) richiede un'applicazione Azure per autorizzare l'accesso. Un esempio di questo accesso include l'uso all'interno di chiamate API Dynamics 365 Customer Engagement. La configurazione usa le identità gestite Power Platform con Azure per concedere l'accesso.

Importante

A partire da marzo 2025, l'accesso corrente verrà rimosso per migliorare la protezione del sistema. Per garantire l'accesso continuo, segui questi passaggi per creare un'applicazione Azure con le autorizzazioni SharePoint necessarie, imposta le identità nella tua organizzazione Dynamics 365 Customer Engagement (on-premises) e configura le credenziali federate.

Creare un'applicazione Azure con autorizzazioni SharePoint

Creare una registrazione dell'app con l'autorizzazione API a SharePoint. Ulteriori informazioni sulla registrazione e l'accesso di un'app SharePoint in App Registrazione Avvio rapido di Azure e accesso SharePoint solo tramite app Azure AD.

  1. Apri il portale di Azure.

  2. In Servizi Azure, seleziona Registrazioni app.

  3. Seleziona Nuova registrazione.

  4. Immetti un Nome per l'applicazione.

  5. In Tipi di account supportati seleziona Account solo in questa directory dell'organizzazione.

    Nota

    Altri tipi di account non sono attualmente supportati.

  6. Seleziona Registra per creare la Registrazione app.

  7. Notare ID applicazione (client) e ID directory (tenant).

    1. Nel riquadro di spostamento, seleziona Panoramica.
    2. In Essentials copia i valori di ID applicazione (client) e ID directory (tenant) da usare nella sezione successiva.
  8. Nell'elenco di spostamento, seleziona Gestisci>Autorizzazioni API.

  9. In Autorizzazioni configurate, seleziona Aggiungi un'autorizzazione per aprire il riquadro Richiedi autorizzazioni API.

    1. Selezionare SharePoint.
    2. In Che tipo di autorizzazioni richiede l'applicazione?, seleziona Autorizzazioni applicazione.
    3. In Seleziona autorizzazioni, seleziona Sites.FullControl.All.
    4. Seleziona Aggiungi autorizzazioni per creare l'autorizzazione SharePoint.
    5. Seleziona Concedi il consenso dell'amministratore per il <tenant name>.

Prerequisiti e configurazione del server

  1. Scarica il pacchetto NuGet per l'assembly "Microsoft.Identity.Client" versione 4.11.0.

    1. Apri https://www.nuget.org/packages/Microsoft.Identity.Client/4.11.0#readme-body-tab
    2. In Informazioni, seleziona Scarica pacchetto
  2. Rinomina il pacchetto scaricato da "microsoft.identity.client.4.11.0.nupkg" in microsoft.identity.client.4.11.0.zip.

  3. Esegui estrazione su microsoft.identity.client.4.11.0.zip.

  4. All'interno della directory estratta, apri la cartella lib/net45 e trova i file "Microsoft.Identify.Client.dll" e "Microsoft.Identify.Client.xml" da utilizzare in un passaggio successivo.

  5. Nel Windows Server in cui il ruolo di server applicazione Web Dynamics 365 Customer Engagement (on-premises) è in esecuzione, apri Gestione Internet Information Services.

    1. Apri il prompt Esegui dal menu Start della barra dei comandi di Windows.
    2. Digita inetmgr, quindi premi Invio.
  6. Espandi la sezione Siti nel riquadro Connessioni.

  7. Fai clic con il tasto destro del mouse sul sito Microsoft Dynamics CRM, seleziona Esplora, quindi apri la cartella CRMWeb.

  8. Apri la cartella bin.

  9. Copia i due file "Microsoft.Identity.Client.dll" e "Microsoft.Identity.Client.xml" dalla directory del pacchetto estratto NuGet, quindi incollali entrambi nella cartella bin.

Creare record dell'applicazione Azure nella tabella PartnerApplicationBase nel database dell'organizzazione Dynamics 365 Customer Engagement

  1. Apri SQL Server Management Studio e copia questo script SQL.
IF (SELECT COUNT(*)
FROM OrganizationBase WITH (NOLOCK)) <> 1
	THROW 51000, 'Organization records does not equal 1', 1
 
DECLARE @organizationId UNIQUEIDENTIFIER  = (SELECT OrganizationId
FROM OrganizationBase WITH (NOLOCK));
DECLARE @utcNow DATETIME = GetUtcDate();
DECLARE @principalId UNIQUEIDENTIFIER = '00000003-0000-0ff1-ce00-000000000000';
DECLARE @applicationName NVARCHAR(100) = 'Microsoft SharePoint Online';
DECLARE @byoaAppId UNIQUEIDENTIFIER = '<appId>';
--Customer need to provide the app id.
DECLARE @tenantId UNIQUEIDENTIFIER = '<tenantId';
 
BEGIN TRANSACTION InsertRows
 
INSERT INTO [dbo].[PartnerApplicationBase]
	([PrincipalId]
	,[StateCode]
	,[Name]
	,[UseAuthorizationServer]
	,[PartnerApplicationId]
	,[StatusCode]
	,[ApplicationRole]
	,[OrganizationId]
	,[CreatedOn]
	,[ModifiedOn]
	,[TenantId])
VALUES
	(@principalId
	, 0
	, @applicationName
	, 1
	, @byoaAppId
	, 1
	, 1
	, @organizationId
	, @utcNow
	, @utcNow
	, @tenantId)
 
COMMIT TRANSACTION InsertRows
  1. Nello script, aggiorna le variabili @byoaAppId e @tenantId con i valori ID applicazione e ID tenant copiati in precedenza dal portale di Microsoft Azure nella sezione Crea un'applicazione Azure con autorizzazioni SharePoint di questo articolo.

  2. Verifica il database e quindi esegui lo script.

  3. Conferma eseguendo la query di selezione SELECT * FROM [PartnerApplicationBase] e verificando i campi PartnerApplicationId e TenantId.

Carica certificato nei certificati dell'app Azure

Recupera il certificato esistente Dynamics 365 Customer Engagement (on-premises) usando questo script.

cd $PSScriptRoot 

$OutputFilePath = $PSScriptRoot + "\certificates\existing_crmsharepoints2s.cer" 
$RemoveSnapInWhenDone = $False 

if (-not (Get-PSSnapin -Name Microsoft.Crm.PowerShell -ErrorAction SilentlyContinue)) { 
    Add-PSSnapin Microsoft.Crm.PowerShell 
    $RemoveSnapInWhenDone = $True 
} 

try { 
    # Ensure the directory exists 
    $directory = [System.IO.Path]::GetDirectoryName($OutputFilePath) 
    if (-not (Test-Path -Path $directory)) { 
        New-Item -ItemType Directory -Path $directory | Out-Null 
    }

    # Fetch existing certificate using Get-CrmCertificate and filter by CertificateType 
    $existingCert = Get-CrmCertificate | Where-Object { $_.CertificateType -eq "S2STokenIssuer" } 

    if ($null -eq $existingCert) { 
        Write-Error "No certificate found with CertificateType 'S2STokenIssuer'." 
        return 
    } 

    # Store the certificate in the specified path 
    $certBytes = [Convert]::FromBase64String($existingCert.Data) 
    [System.IO.File]::WriteAllBytes($OutputFilePath, $certBytes) 
    Write-Output "Certificate saved to $OutputFilePath" 
} 
catch { 
    Write-Error "An error occurred: $_" 
} 
finally { 
    if ($RemoveSnapInWhenDone) { 
        Remove-PSSnapin Microsoft.Crm.PowerShell 
    } 
} 

Carica il certificato esistente nei certificati dell'applicazione Azure

  1. Apri un Web browser e passa al portale di Azure per l'app Azure AD creata nella prima sezione.

  2. Espandi Gestisci e seleziona Certificati e segreti.

  3. Carica il file del certificato creato.

    1. Nella sezione Certificati seleziona Carica certificato.

    2. Utilizza Carica un certificato per selezionare il file del certificato creato dallo script PowerShell.

    3. Aggiungi la Descrizione, quindi seleziona Aggiungi.

Il certificato appena creato viene visualizzato nell'elenco Certificati.