Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
Edukien Segurtasun Politika (CSP) gaur egun ereduetan oinarritutako aplikazioetan, mihiseetan eta kodean onartzen da. Artikulu honetan azaltzen da nola konfiguratu CSP eredu gidatutako eta mihise-aplikazioetarako. Kode-aplikazioen CSPari dagokionez, ikus kode-aplikazioen dokumentazioa. Administratzaileek CSP goiburua bidaltzen den eta, neurri batean, zer daukan kontrola dezakete. Ezarpenak ingurune mailan daude, hau da, inguruneko aplikazio guztiei aplikatzen zaizkie aktibatu ondoren.
Oharra
Edukiaren segurtasun politika hauek erabiltzen dituzten inguruneetan bakarrik aplikatzen da Dataverse.
CSP goiburuaren balioaren osagai bakoitzak deskargatu daitezkeen aktiboak kontrolatzen ditu. Mozilla Developer Network (MDN) deskribapen zehatzagoak eskaintzen ditu. Lehenespenez, balioak hauek dira:
| Zuzentaraua | Balio lehenetsia | Pertsonalizagarria |
|---|---|---|
| script-src | * 'unsafe-inline' 'unsafe-eval' blob: |
No |
| langile-iturria | 'self' blob: |
No |
| estilo-iturria | * 'unsafe-inline' |
No |
| letra-tipoaren iturria | * data: |
No |
| marko-arbasoak | 'self' https://*.powerapps.com |
Yes |
Konfigurazio honek script-src * 'unsafe-inline' 'unsafe-eval' blob: ; worker-src 'self' blob:; style-src * 'unsafe-inline'; font-src * data:; frame-ancestors 'self' https://*.powerapps.com; CSP lehenetsia sortzen du.
Modu zorrotza
CSP zorrotzak CSP bat sortzen du, gehienetan komodinak edo seguruak ez diren zuzentarauak barne hartzen ez dituena, adibidez unsafe-inline. CSP zorrotzak aktibatzen dituzunean, aurreko jarraibideak atal honetan azaltzen diren jarraibide hauek bihurtzen dira. Notazioak esan nahi <platform> du plataformaren domeinuak produktuak eskatzen duen moduan ematen direla. Atal honetako domeinuak denboran zehar alda daitezke produktua hazten den heinean.
| Zuzentaraua | Balio lehenetsia (ereduan oinarritua) | Balio lehenetsia (mihisea) | Pertsonalizagarria |
|---|---|---|---|
| script-src | 'self' blob: <platform>' |
'self' <platform>' |
Yes |
| langile-iturria | 'self' blob: |
'self' blob: |
No |
| estilo-iturria | 'self' 'unsafe-inline' <platform> |
'self' 'unsafe-inline' <platform> |
Yes |
| letra-tipoaren iturria | 'self' data: <platform> |
'self' data: <platform> |
Yes |
| marko-arbasoak | 'self' https://*.powerapps.com |
'self' https://*.powerapps.com |
Yes |
| img-src | 'self' blob: data: <platform> |
'self' data: <platform> |
Yes |
| konektatu - src | 'self' blob: data: wss: <platform> |
'self' blob: <platform> |
Yes |
| fotograma-src | 'self' blob: <platform> |
'self' <platform> |
Yes |
| base-uria | 'none' |
E/E | No |
| inprimaki-ekintza | <platform> |
E/E | Yes |
| lehenetsia-src | 'self' |
'self' |
No |
Aurrebaldintzak
Dynamics 365 bezeroen konpromiso aplikazioetarako eta beste ereduetan oinarritutako aplikazioetarako, CSP lineako inguruneetan eta Dynamics 365 bezeroen konpromisoa (on-premises), 9.1 bertsioa edo berriagoa duten erakundeetan bakarrik dago eskuragarri.
Konfiguratu CSP
CSP txandakatu eta konfigura dezakezu administrazio-zentroaren bidez. Power Platform Garrantzitsua da lehenik garapen/proba ingurune bat gaitzea , CSP gaitzeak egoerak blokeatzen has baitezake politika urratzen bada. Administrazio zentroak txosten soilik modua ere onartzen du, produkzioan errazagoa izan dadin.
Jarraitu urrats hauek CSP konfiguratzeko:
- Hasi saioa hurrengoan Power Platform administrazio-zentroa.
- Nabigazio panelean, hautatu Kudeatu. *Kudeatu* panelean, hautatu *Inguruneak* .
- *Inguruneak* orrian, hautatu ingurune bat.
- Komando-barran, hautatu Ezarpenak.
- Zabaldu Produktua, eta ondoren hautatu Pribatutasuna + Segurtasuna.
Hurrengo irudiak ezarpenen egoera lehenetsia erakusten du:
Txostenen sorrera
*Txostenak gaitu* botoiak ereduetan oinarritutako eta mihise aplikazioek urratze-txostenak bidaltzen dituzten ala ez kontrolatzen du. Gaitzeko, zehaztu amaiera-puntua. Aplikazioak arau-hausteen txostenak bidaltzen ditu amaierako puntu honetara, CSP indarrean dagoen ala ez kontuan hartu gabe. CSP betearazten ez bada, aplikazioak txosten-soilik modua erabiltzen du. Informazio gehiagorako, ikusi -en dokumentazioa berri ematea.
Betearazpena
CSP betearaztea modu independentean kontrolatzen da ereduetan oinarritutako eta mihiseen aplikazioetarako, politiken gaineko kontrol zehatza emateko. Erabili ereduan oinarritutako/mihisearen pibota nahi den aplikazio mota aldatzeko.
Indartu edukiaren segurtasun politika txandakabiltzak aplikazio mota jakin baterako betearazteko politika lehenetsia aktibatzen du. Aktibatze hau aktibatzeak ingurune honetako aplikazioen portaera aldatzen du politikari atxikitzeko. Jarraitu gaikuntza fluxu hau:
- Aplikatu politika garapen edo proba ingurune batean.
- Gaitu txostenak egiteko modua ekoizpenean.
- Aplikatu politika ekoizpenean arau-hausterik jakinarazi ez denean.
Konfiguratu gidalerroak
Konfiguratu zuzentarauak atalak politika barruko zuzentarau indibidualak kontrolatzeko aukera ematen dizu. Oraingoz, zuzentaraua frame-ancestors soilik pertsonalizatu dezakezu.
Zuzentarau lehenetsia aktibatuta uzten baduzu, taulan zehaztutako balio lehenetsia erabiliko duzu. Txandakatzea desaktibatzen baduzu, zuzentarauaren balio pertsonalizatuak zehaztu eta balio lehenetsiari erantsi ahal izango dizkiozu. Ondorengo adibideak balio pertsonalizatuak ezartzen ditu frame-ancestors. Zuzentaraua adibide honetan agertzen frame-ancestors: 'self' https://*.powerapps.com https://www.foo.com https://www.bar.com da. Ezarpen honek esan nahi du aplikazioa jatorri berean ostatatu daitekeela, https://*.powerapps.com, https://www.foo.com, eta https://www.bar.com, baina ez beste jatorri batzuetan. Erabili Gehitu botoia sarrerak zerrendara gehitzeko eta Ezabatu ikonoa kentzeko.
Konfigurazio arruntak
Dynamics 365 aplikazioa erabiliz integratzeko, gehitu honako hau honi: Microsoft Teamsframe-ancestors
https://teams.microsoft.com/https://teams.cloud.microsoft/https://msteamstabintegration.dynamics.com/
Dynamics 365 App for Outlook-ri dagokionez, gehitu honako hau frame-ancestors-ri:
- Zure Outlook Web App-en hasierako orriaren jatorria
https://outlook.office.comhttps://outlook.office365.com
Txostenetan txertatzeko Power Apps , gehitu honako hau Power BI -ri: frame-ancestors
https://app.powerbi.comhttps://ms-pbi.pbi.microsoft.com
Gogoeta garrantzitsuak
Zuzentarau lehenetsia desaktibatu eta zerrenda huts batekin gordetzeak zuzentaraua erabat desaktibatzen du eta ez du CSP erantzunen goiburuaren zati gisa bidaltzen.
CSP konfigurazio adibideak
Hona hemen CSP konfigurazioen adibide batzuk.
1. adibidea - txostenak desaktibatuta
Adibidean:
- Txostenak desaktibatuta daude.
- Eredu bidezko betearazpena gaituta dago.
-
frame-ancestorspertsonalizatutahttps://www.contoso.cometahttps://www.fabrikam.com.
-
- Mihise betearaztea desgaituta dago.
Goiburu eraginkorrak hauek dira:
- Ereduetan oinarritutako aplikazioak:
Content-Security-Policy: script-src * 'unsafe-inline' 'unsafe-eval' blob: data:; worker-src 'self' blob: data:; style-src * 'unsafe-inline'; font-src * data:; frame-ancestors https://www.contoso.com https://www.fabrikam.com; - Canvas aplikazioak: CSP goiburua ez da bidali.
2. adibidea - txostenak aktibatuta
Adibidean:
- Txostenak aktibatuta daude.
- Txostenak sortzeko amaiera-puntua hona ezarrita:
https://contoso.com/reporting-endpoint
- Txostenak sortzeko amaiera-puntua hona ezarrita:
- Eredu bidezko betearazpena gaituta dago.
-
frame-ancestorslehenetsi gisa mantentzen da
-
- Mihise betearaztea desgaituta dago.
-
frame-ancestorspertsonalizatuta dagohttps://www.contoso.com
-
CSP balio eraginkorrak hauek dira:
- Ereduetan oinarritutako aplikazioak:
Content-Security-Policy: script-src * 'unsafe-inline' 'unsafe-eval' blob:; worker-src 'self' blob:; style-src * 'unsafe-inline'; font-src * data:; frame-ancestors 'self' https://*.powerapps.com; report-uri https://contoso.com/reporting-endpoint; - Mihise-aplikazioak:
Content-Security-Policy-Report-Only: script-src * 'unsafe-inline' 'unsafe-eval'; worker-src 'self' blob:; style-src * 'unsafe-inline'; font-src * data:; frame-ancestors https://www.contoso.com; report-uri https://contoso.com/reporting-endpoint;
Aldatu erakundearen ezarpenak zuzenean
CSP konfigura dezakezu UI erabili gabe, erakundearen ezarpen hauek zuzenean aldatuz:
IsContentSecurityPolicyEnabled -ek Content-Security-Policy goiburua ereduetan oinarritutako aplikazioetan bidaltzen den ala ez kontrolatzen du.
ContentSecurityPolicyConfiguration-ek frame-ancestors zatiaren balioa kontrolatzen du (lehen ikusi bezala, ezarri ez bada
'self').ContentSecurityPolicyConfigurationDefinitu ezarpen hau JSON objektu bat erabiliz, egitura hau duena:{ "Frame-Ancestor": { "sources": [ { "source": "foo" }, { "source": "bar" } ] } }. Konfigurazio honek honela itzultzen da:script-src * 'unsafe-inline' 'unsafe-eval'; worker-src 'self' blob:; style-src * 'unsafe-inline'; font-src * data:; frame-ancestors 'foo' 'bar';- (MDNtik) HTTP Edukiaren segurtasun-gidalerroek (CSP) marko-arbasoen zuzentarauak orrialde bat txertatu dezaketen guraso baliodunak zehazten ditu erabiliz
<frame>,<iframe>,<object>,<embed>, edo<applet>.
- (MDNtik) HTTP Edukiaren segurtasun-gidalerroek (CSP) marko-arbasoen zuzentarauak orrialde bat txertatu dezaketen guraso baliodunak zehazten ditu erabiliz
IsContentSecurityPolicyEnabledForCanvas funtzioak Content-Security-Policy goiburua mihise aplikazioetan bidaltzen den ala ez kontrolatzen du.
ContentSecurityPolicyConfigurationForCanvas -ek canvas-erako politika kontrolatzen du
ContentSecurityPolicyConfiguration-n deskribatutako prozesu bera erabiliz.ContentSecurityPolicyReportUri -ek kontrolatzen du txostenak erabili behar diren ala ez. Ezarpen hau ereduetan oinarritutako eta mihise-aplikazioek erabiltzen dute. Baliozko kate batek urraketa-txostenak bidaltzen ditu zehaztutako amaiera-puntura, txostenak soilik egiteko modua erabiliz, baldin eta
IsContentSecurityPolicyEnabled/IsContentSecurityPolicyEnabledForCanvasdesaktibatuta badago. Kate huts batek txostenak desgaitzen ditu. Informazio gehiagorako, ikusi -en dokumentazioa berri ematea.
CSP konfiguratzea erabiltzaile-interfaze gabe
Batez ere, Power Platform administrazio zentroan ez dauden inguruneetarako, hala nola lokal konfigurazioak, baliteke administratzaileek CSP konfiguratu nahi izatea script-ak erabiliz ezarpenak zuzenean aldatzeko.
Gaitu CSP UIrik gabe
Jarraitu urrats hauek CSP UIrik gabe gaitzeko:
- Ireki arakatzailea garatzeko tresnak ereduan oinarritutako aplikazioa erakundearen entitateen eguneratze-pribilegioak dituen erabiltzaile gisa erabiltzen duzun bitartean (Sistema Administratzailea aukera ona da).
- Itsatsi eta exekutatu hurrengo script-a kontsolan.
- CSP gaitzeko, pasa konfigurazio lehenetsia -
enableFrameAncestors(["'self'"]) - Beste jatorri batzuei aplikazioa txertatzeko aukera emateko adibide gisa -
enableFrameAncestors(["*.powerapps.com", "'self'", "abcxyz"])
async function enableFrameAncestors(sources) {
const baseUrl = Xrm.Utility.getGlobalContext().getClientUrl();
if (!Array.isArray(sources) || sources.some(s => typeof s !== 'string')) {
throw new Error('sources must be a string array');
}
const orgResponse = await fetch(`${baseUrl}/api/data/v9.1/organizations`);
if (!orgResponse.ok) throw new Error('Failed to retrieve org info');
const orgs = await orgResponse.json();
const { organizationid, contentsecuritypolicyconfiguration, iscontentsecuritypolicyenabled } = orgs.value[0];
console.log(`Organization Id: ${organizationid}`);
console.log(`CSP Enabled?: ${iscontentsecuritypolicyenabled}`);
console.log(`CSP Config: ${contentsecuritypolicyconfiguration}`);
const orgProperty = prop => `${baseUrl}/api/data/v9.1/organizations(${organizationid})/${prop}`;
console.log('Updating CSP configuration...')
const config = {
'Frame-Ancestor': {
sources: sources.map(source => ({ source })),
},
};
const cspConfigResponse = await fetch(orgProperty('contentsecuritypolicyconfiguration'), {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
value: JSON.stringify(config),
}),
});
if (!cspConfigResponse.ok) {
throw new Error('Failed to update csp configuration');
}
console.log('Successfully updated CSP configuration!')
if (iscontentsecuritypolicyenabled) {
console.log('CSP is already enabled! Skipping update.')
return;
}
console.log('Enabling CSP...')
const cspEnableResponse = await fetch(orgProperty('iscontentsecuritypolicyenabled'), {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
value: true,
}),
});
if (!cspEnableResponse.ok) {
throw new Error('Failed to enable csp');
}
console.log('Successfully enabled CSP!')
}
Desgaitu CSP UIrik gabe
Jarraitu urrats hauek CSP UIrik gabe desgaitzeko:
- Ireki arakatzailea garatzeko tresnak ereduan oinarritutako aplikazioa erakundearen entitateen eguneratze-pribilegioak dituen erabiltzaile gisa erabiltzen duzun bitartean (Sistema Administratzailea aukera ona da).
- Itsatsi eta exekutatu hurrengo script-a kontsolan.
- CSP desgaitzeko, itsatsi kontsolan:
disableCSP()
async function disableCSP() {
const baseUrl = Xrm.Utility.getGlobalContext().getClientUrl();
const orgResponse = await fetch(`${baseUrl}/api/data/v9.1/organizations`);
if (!orgResponse.ok) throw new Error('Failed to retrieve org info');
const orgs = await orgResponse.json();
const { organizationid, iscontentsecuritypolicyenabled } = orgs.value[0];
console.log(`Organization Id: ${organizationid}`);
console.log(`CSP Enabled?: ${iscontentsecuritypolicyenabled}`);
const orgProperty = prop => `${baseUrl}/api/data/v9.1/organizations(${organizationid})/${prop}`;
if (!iscontentsecuritypolicyenabled) {
console.log('CSP is already disabled! Skipping update.')
return;
}
console.log('Disabling CSP...')
const cspEnableResponse = await fetch(orgProperty('iscontentsecuritypolicyenabled'), {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
value: false,
}),
});
if (!cspEnableResponse.ok) {
throw new Error('Failed to disable csp');
}
console.log('Successfully disabled CSP!')
}