Udostępnij za pośrednictwem


Konfigurowanie aplikacji Azure w celu uzyskania dostępu do programu SharePoint

Korzystanie z encji Dokumenty programu SharePoint w organizacji usługi Dynamics 365 poza siatką dokumentów w aplikacji Dynamics 365 Customer Engagement (on-premises) wymaga aplikacji platformy Azure w celu udzielenia dostępu. Przykładem użycia tego dostępu są wywołania interfejsu API Dynamics 365 Customer Engagement. Konfiguracja wykorzystuje Power Platform Managed Identities z Azure do przyznawania dostępu.

Ważne

Od marca 2025 r. bieżący dostęp zostanie usunięty w celu zwiększenia ochrony systemu. Aby zapewnić ciągły dostęp, wykonaj następujące kroki, aby utworzyć aplikację platformy Azure z niezbędnymi uprawnieniami programu SharePoint, skonfigurować tożsamości zarządzane w organizacji Dynamics 365 Customer Engagement (on-premises) i skonfigurować poświadczenia federacyjne.

Utwórz aplikację Azure z uprawnieniami SharePoint

Utwórz rejestrację aplikacji z uprawnieniami interfejsu API do programu SharePoint. Więcej informacji na temat rejestrowania aplikacji i dostępu do SharePoint można znaleźć w Aplikacja Rejestr szybkiego startu platformy Azure oraz Dostęp do SharePoint za pośrednictwem Azure AD App-Only.

  1. Otwórz portal Azure.

  2. W obszarze Usługi Azure wybierz pozycję Rejestracje aplikacji.

  3. Wybierz opcję Nowa rejestracja.

  4. Wprowadź nazwę aplikacji.

  5. Pod Obsługiwane typy kont wybierz Konta tylko w tym katalogu organizacyjnym.

    Uwaga / Notatka

    Inne typy kont nie są obecnie obsługiwane.

  6. Wybierz pozycję Zarejestruj, aby utworzyć rejestrację Aplikacji.

  7. Zanotuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawcy).

    1. W liście nawigacyjnej wybierz Przegląd.
    2. W sekcji Podstawy skopiuj wartości Identyfikator aplikacji (klienta) iIdentyfikator katalogu (dzierżawy) do wykorzystania w następnej sekcji.
  8. Z listy nawigacyjnej wybierz Zarządzaj>Uprawnienia API.

  9. W sekcji Skonfigurowane uprawnienia wybierz Dodaj uprawnienie, aby otworzyć panel Zażądaj uprawnień API.

    1. Wybierz programu SharePoint.
    2. W sekcji Jakiego typu uprawnień wymaga Twoja aplikacja? wybierz Uprawnienia aplikacji.
    3. W sekcji Wybierz uprawnienia wybierz opcję Sites.FullControl.All.
    4. Wybierz Dodaj uprawnienia, aby utworzyć uprawnienie SharePoint.
    5. Wybierz Udziel zgody administratora dla <tenant name>.

Wymagania wstępne dotyczące konfiguracji serwera

  1. Pobierz pakiet NuGet dla zestawu "Microsoft.Identity.Client" w wersji 4.11.0.

    1. Otwórz https://www.nuget.org/packages/Microsoft.Identity.Client/4.11.0#readme-body-tab
    2. W obszarze Informacje wybierz pozycję Pobierz pakiet
  2. Zmień nazwę pobranego pakietu z "microsoft.identity.client.4.11.0.nupkg" na microsoft.identity.client.4.11.0.zip.

  3. Uruchom ekstrakcję na microsoft.identity.client.4.11.0.zip.

  4. W wyodrębnionym katalogu otwórz folder lib/net45 i znajdź pliki "Microsoft.Identify.Client.dll" i "Microsoft.Identify.Client.xml", aby użyć ich w późniejszym kroku.

  5. W systemie Windows Server, w którym jest uruchomiona rola serwera aplikacji sieci Web Dynamics 365 Customer Engagement (on-premises), otwórz Menedżera internetowych usług informacyjnych.

    1. Otwórz polecenie Uruchom z menu Start znajdującego się na pasku zadań systemu Windows.
    2. Wpisz inetmgr, a następnie naciśnij Enter.
  6. Rozwiń sekcję Lokacje w okienku Połączenia .

  7. Kliknij prawym przyciskiem myszy witrynę programu Microsoft Dynamics CRM , wybierz polecenie Eksploruj, a następnie otwórz folder CRMWeb .

  8. Otwórz folder bin .

  9. Skopiuj dwa pliki "Microsoft.Identity.Client.dll" i "Microsoft.Identity.Client.xml" z wyodrębnionego katalogu pakietów NuGet, a następnie wklej je do folderu bin .

Tworzenie rekordu aplikacji Azure w tabeli PartnerApplicationBase w bazie danych organizacji Dynamics 365 Customer Engagement

  1. Otwórz SQL Server Management Studio i skopiuj ten skrypt 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. W skrypcie zaktualizuj zmienne @byoaAppId i @tenantId przy użyciu wartości identyfikatora aplikacji i identyfikatora dzierżawy skopiowanych wcześniej z portalu Microsoft Azure w sekcji Tworzenie aplikacji platformy Azure z uprawnieniami programu SharePoint w tym artykule.

  2. Sprawdź bazę danych, a następnie wykonaj skrypt.

  3. Potwierdź, uruchamiając kwerendę SELECT * FROM [PartnerApplicationBase]wybierającą i weryfikując pola PartnerApplicationId i TenantId .

Przesyłanie certyfikatu w certyfikatach aplikacji Azure

Pobierz istniejący certyfikat Dynamics 365 Customer Engagement (on-premises) przy użyciu tego skryptu.

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

Przekazywanie istniejącego certyfikatu do certyfikatów aplikacji platformy Azure

  1. Otwórz przeglądarkę internetową i przejdź do Azure Portal dla aplikacji Azure AD, która została utworzona w pierwszej sekcji.

  2. Rozwiń Zarządzaj, a następnie wybierz Certyfikaty i Sekrety.

  3. Przekaż utworzony plik certyfikatu.

    1. W sekcji Certyfikaty wybierz pozycję Przekaż certyfikat.

    2. Użyj opcji Przekaż certyfikat, aby wybrać plik certyfikatu, który został utworzony na podstawie skryptu programu PowerShell.

    3. Dodaj opis, a następnie wybierz pozycję Dodaj.

Nowo utworzony certyfikat zostanie wyświetlony na liście Certyfikaty .