Напомена
Приступ овој страници захтева ауторизацију. Можете покушати да се пријавите или промените директоријуме.
Приступ овој страници захтева ауторизацију. Можете покушати да промените директоријуме.
Белешка
Нови и побољшани Power Platform админ центар је сада у јавном прегледу! Дизајнирали смо нови админ центар да буде лакши за коришћење, са навигацијом оријентисаном на задатке која вам помаже да брже постигнете одређене резултате. Објављиваћемо нову и ажурирану документацију како се нови Power Platform административни центар помера на општу доступност.
Коришћење табеле SharePoint Документи у окружењу Динамицс КСНУМКС изван мреже докумената у апликацији заснованој на моделу захтева Азуре апликацију за одобравање приступа. Примери овог приступа укључују употребу унутар Power Automate или са Dataverse АПИ позивима. Подешавање користи Power Platform Манагед Идентитиес са Азуре да одобри приступ.
Почевши од марта 2025. године, тренутни приступ је уклоњен како би се побољшала заштита система. Да бисте осигурали континуирани приступ, следите ове кораке да бисте креирали Азуре апликацију са потребним SharePoint дозволама, поставили управљане идентитете и Dataverse конфигурисали федералне акредитиве.
Креирајте Азуре апликацију са дозволама SharePoint
Креирајте регистрацију апликације са дозволом АПИ-ја SharePoint. Сазнајте више о регистрацији апликације и SharePoint приступу у Азуре Куицкстарт Региструјте апликацију и приступите SharePoint преко Azure AD Апп-Онли.
Отворите Азуре портал.
У одјељку Азуре услуге изаберите Регистрације апликација.
Изаберите Нова регистрација.
Унесите име апликације.
Под Подржани типови налога изаберите Рачуни само у овом организационом директоријуму.
Белешка
Остали типови нису подржани у овом тренутку.
Изаберите Региструј се да бисте креирали регистрацију апликације.
Обратите пажњу на ИД апликације (клијента) и ИД директоријума (станара):
На листи за навигацију изаберите Преглед .
Под Ессентиалс , копирајте ИД апликације (клијента) и ИД директоријума (станара) вредности за употребу у следећем одељку.
На листи за навигацију изаберите Управљање > АПИ дозволама.
У одјељку Конфигурисане дозволе изаберите Додај дозволу да бисте отворили панел Захтев за дозволе АПИ-ја.
Изабери SharePoint.
Под Коју врсту дозвола захтева ваша апликација? , изаберите Дозволе апликације.
У одјељку Изабери дозволе изаберите Ситес.ФуллЦонтрол.Алл.
Изаберите Додај дозволе да бисте креирали дозволу SharePoint .
Изаберите Одобри сагласност администратора за
<tenant name>
.
Креирајте управљане идентитете у Dataverse
Креирајте управљане евиденције идентитета у Dataverse. Сазнајте више о управљаним идентитетима у Подешавање Dataverse управљаних идентитета.
Додајте запис у табели управљаних идентитета
Убаците ред у табелу managedidentities
користећи вредности из следеће табеле.
Поље табеле | Value |
---|---|
applicationid |
Користите ИД вредност апликације (клијента) из првог одељка |
tenantid |
Користите ИД вредност директоријума (станара) из првог одељка |
managedidentityid |
Креирајте нови ГУИД |
credentialsource |
2. |
subjectscope |
1. |
Пример коришћења ПОСТ-а:
Захтев:
https://contoso.crm.dynamics.com/api/data/v9.0/managedidentities
Тело:
{ "applicationid": "<appId>", "managedidentityid": "<newGuid>", "credentialsource": 2, "subjectscope": 1, "tenantid": "<tenantId>" }
Додајте запис у табели SharePoint управљаних идентитета
Убаците ред у табелу sharepointmanagedidentity
користећи вредности из следеће табеле.
Поље табеле | Value |
---|---|
sharepointmanagedidentityid |
Креирајте нови ГУИД |
uniquename |
"мсфт_ппмифорсхарепоинтаутх" |
name |
"Управљани идентитет за SharePoint Аутх" |
ManagedIdentity@odata.bind |
/managedidentities(<managedidentityid>) Замена <managedidentityid> са вредношћу из претходног одељка |
Пример коришћења ПОСТ-а:
Захтев:
https://contoso.crm.dynamics.com/api/data/v9.0/sharepointmanagedidentities
Тело:
{ "sharepointmanagedidentityid": "<newGuid>", "uniquename": "msft_ppmiforsharepointauth", "name": "Managed Identity For SharePoint Auth", "ManagedIdentityId@odata.bind": "/managedidentities(<managedIdentityId>)" }
Креирајте федералне акредитиве
Креирајте федералну акредитиву за регистрацију апликације. Сазнајте више о акредитивима федералног идентитета у Конфигуришите апликацију за акредитиве федеративног идентитета.
Белешка
Федерални акредитиви идентитета путем Power Platform управљаног идентитета су генерално доступни и у потпуности подржани за интеграцију SharePoint докумената. Управљани Power Platform идентитет се користи за многе сценарије, али нису сви генерално доступни. Међутим, овај случај је у потпуности подржан.
Отворите Азуре портал.
Изаберите Microsoft Entra ИД.
На листи за навигацију изаберите Управљање > регистрацијама апликација.
На листи апликација изаберите име за регистрацију апликације креирано у претходном одељку.
На листи за навигацију изаберите Управљање > сертификатима и тајнама.
Изаберите картицу Федератед акредитиви .
Изаберите Додај акредитив.
У пољу Федератед акредитивни сценарио изаберите Други издавач.
У поље Издавач унесите УРЛ издавача:
- Формат вредности:
https://login.microsoftonline.com/<tenantId>/v2.0
- Замените
<tenantId>
са Директоријум (тенант) ИД ГУИД вредност из претходног одељка.
- Формат вредности:
У поље Вредност унесите идентификатор предмета:
- Формат вредности:
/eid1/c/pub/t/<base64-encoded-tenantId>/a/<base64-encoded-appid>/Env/<orgid>/sharepointmanagedidentity/<sharepointmanagedidentityid>
- Замените
<base64-encoded-tenantId>
са based64 кодираним ИД-ом станара. - Замените
<base64-encoded-appid>
са base64 кодираним ИД клијента апликације. - Замените
<orgid>
са ИД организације. - Замените
<sharepointmanagedidentityid>
са ГУИД-ом који је раније креиран са схарепоинтманагедидентитиес записом.
[НАПОМЕНА!] Користите скрипту у Генеришите идентитет субјекта да бисте генерисали вредност идентификатора предмета са басеКСНУМКС кодираним вредностима.
- Формат вредности:
Изаберите Додај да креирате акредитив.
Пратећи ове кораке, конфигуришете Азуре апликацију са потребним SharePoint дозволама, подесите управљане идентитете и Dataverse конфигуришете федералне акредитиве.
Генеришите идентитет субјекта
Ова скрипта генерише вредност идентификатора субјекта на основу вредности датих у ЈаваСцрипт-у.
Отворите апликацију Динамицс КСНУМКС у претраживачу.
Отворите алате претраживача на конзоли.
Копирајте следећи ЈаваСцрипт и подесите вредност за променљиву схареПоинтМанагедИдентитyИд.
// Replace with the id for SharePoint Managed Identity that was created attribute name: sharepointmanagedidentityid. // Refer to the following documentation for configuring an aad app for SharePoint access: // https://learn.microsoft.com/en-us/power-platform/admin/configure-azure-app-with-sharepoint-access // For the SharePoint Managed Identity creation, refer to the following documentation: // https://learn.microsoft.com/en-us/power-platform/admin/configure-azure-app-with-sharepoint-access#add-record-in-sharepoint-managed-identities-table const sharePointManagedIdentityId = ""; const prefixForFICIssuer = "https://login.microsoftonline.com/"; const suffixForFICIssuer = "/v2.0"; const prefixForFICSubject = "/eid1/c/pub"; const tenantIdentifierForFICSubject = "/t/"; const appIdentifierForFICSubject = "/a/"; const environmentIdentifierForFICSubject = "/Env/"; const sharePointManagedIdentityIdentifierForFICSubject = "/sharepointmanagedidentity/"; // This is the AAD App Id to be used for Power Platform Managed Identity: 58e835ab-2e39-46a9-b797-accce6633447 const powerPlatformManagedIdentityAppId = "58e835ab-2e39-46a9-b797-accce6633447"; /** * Represents a request for retrieving the current organization. * @param {number} accessType - The access type (0 for Default, 1 for Internet, 2 for Intranet). */ var RetrieveCurrentOrganizationRequest = function (accessType) { this.AccessType = accessType; }; /** * Gets metadata for the request. * @returns {Object} The metadata for the request. */ RetrieveCurrentOrganizationRequest.prototype.getMetadata = function() { return { boundParameter: null, parameterTypes: { "AccessType": { "typeName": "Microsoft.Dynamics.CRM.EndpointAccessType", "structuralProperty": 3, // Enum Type "enumProperties": [ { "name": "Default", "value": 0 }, { "name": "Internet", "value": 1 }, { "name": "Intranet", "value": 2 } ] } }, operationType: 1, // This is a function operationName: "RetrieveCurrentOrganization" }; }; /** * Encodes a GUID to a Base64 URL-safe string. * * @param {string} guid - The GUID to encode. * @returns {string} The Base64 URL-safe encoded string. * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/btoa} */ function encodeToBase64Url(guid) { const buffer = []; const regex = /.{1,2}/g; guid.split('-').forEach((number, index) => { const bytesInChar = number.match(regex); if (index < 3) bytesInChar.reverse(); bytesInChar.forEach(byte => buffer.push(parseInt(byte, 16))); }); const base64String = btoa(String.fromCharCode.apply(null, new Uint8Array(buffer))); // Make the Base64 string URL-safe by replacing '+' with '-' and '/' with '_' // Remove any trailing '=' characters return base64String.slice(0, 22).replace(/=+$/, '').replace(/\+/g, '-').replace(/\//g, '_'); } /** * Construct the issuer URL using the tenant ID. * This is needed for the issuer url in FIC configuration. * @param {string} tenantId - The tenant ID. * @returns {string} The constructed issuer URL. * @example * // Example for output * // https://login.microsoftonline.com/your-tenant-id/v2.0 */ function constructIssuerUrlForFIC(tenantId) { return `${prefixForFICIssuer}${tenantId}${suffixForFICIssuer}`; } /** * Constructs the subject url using the encoded tenant ID, encoded app ID, environment ID, and SharePoint managed identity ID. * This is needed for the subject url in FIC configuration. * @param {string} encodedTenantId - The encoded tenant ID. * @param {string} encodedAppId - The encoded app ID. * @param {string} environmentId - The environment ID. * @param {string} sharePointManagedIdentityId - The SharePoint managed identity ID. * @returns {string} The constructed subject string. * @example * // Example output: /eid1/c/pub/t/<EncodedTenantId>/a/<EncodedDV1PAppId>/Env/<EnvironmentId>/sharepointmanagedidentity/<sharePointManagedIdentityId> */ function constructSubjectUrlForFIC(encodedTenantId, encodedAppId, environmentId, sharePointManagedIdentityId) { return `${prefixForFICSubject}${tenantIdentifierForFICSubject}${encodedTenantId}${appIdentifierForFICSubject}${encodedAppId}${environmentIdentifierForFICSubject}${environmentId}${sharePointManagedIdentityIdentifierForFICSubject}${sharePointManagedIdentityId}`; } (async () => { try { // Check if sharePointManagedIdentityId is null or undefined if (!sharePointManagedIdentityId) { console.error("SharePoint Managed Identity ID is null or undefined. Please ensure that the SharePoint Managed Identity ID is set."); return; } const accessType = 0; const retrieveCurrentOrganizationRequest = new RetrieveCurrentOrganizationRequest(accessType); // Execute the request to retrieve the current organization details // https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/xrm-webapi/online/execute // https://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/web-api-functions-actions-sample#section-4-unbound-function-retrievecurrentorganization const response = await Xrm.WebApi.online.execute(retrieveCurrentOrganizationRequest); const result = await response.json(); if (result.Detail) { const { EnvironmentId: environmentId, TenantId: tenantId } = result.Detail; const encodedTenantId = encodeToBase64Url(tenantId); const encodedPowerPlatformManagedIdentityAppId = encodeToBase64Url(powerPlatformManagedIdentityAppId); const issuerUrlForFederatedCredentialConfig = constructIssuerUrlForFIC(tenantId); const subjectUrlForFederatedCredentialConfig = constructSubjectUrlForFIC(encodedTenantId, encodedPowerPlatformManagedIdentityAppId, environmentId, sharePointManagedIdentityId); console.log(`SharePoint Managed Identity ID: ${sharePointManagedIdentityId}, Tenant ID: ${tenantId}, Encoded Tenant ID: ${encodedTenantId}, Power Platform Managed Identity App ID: ${powerPlatformManagedIdentityAppId}, Encoded App ID: ${encodedPowerPlatformManagedIdentityAppId}, Issuer URL for Federated Credential Configuration: ${issuerUrlForFederatedCredentialConfig}, Subject URL for Federated Credential Configuration: ${subjectUrlForFederatedCredentialConfig}`); } else { console.error("RetrieveCurrentOrganization response is missing detail."); } } catch (error) { console.error(`Error executing request: ${error.message}`); } })();
Налепите у конзолу да изврши.
Копирајте идентификатор предмета и налепите га у поље Вредност у Додај акредитив.