Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud chcete poskytnout přístup k hlavním identitám uživatelů, postupujte podle kroků v části Připojení aplikací. K rozhraní GraphQL API můžete přistupovat také pomocí principálu služby:
Při vytváření aplikace Microsoft Entra postupujte podle kroků v části Připojení aplikací, ale mějte na paměti, že oprávnění nejsou pro služební účty potřeba. V nové aplikaci přidejte tajný klíč klienta do části Certifikáty a tajné kódy. Další informace najdete v tématu Registrace aplikace Microsoft Entra a vytvoření služebního principálu.
Zajistěte, aby správci nájemce povolili používání aplikačních vlastníků služeb v rámci Fabric. Na portálu pro správu tenanta přejděte na Nastavení tenanta. V části Nastavení pro vývojáře můžete instanční objekty používat rozhraní API fabric. Když je toto nastavení povolené, aplikace se na portálu Fabric zobrazí pro přiřazení rolí nebo oprávnění. Další informace o podpoře identit najdete.
Instanční objekt potřebuje přístup k rozhraní GraphQL API i ke zdroji dat, konkrétně oprávnění Execute k rozhraní GraphQL API a přístup ke čtení nebo zápisu požadovaný ve zvoleném zdroji dat. Na portálu Fabric otevřete pracovní prostor a vyberte tři tečky vedle rozhraní API. Vyberte Spravovat oprávnění pro rozhraní API a pak přidejte uživatele. Přidejte aplikaci a vyberte Spustit dotazy a mutáty, které poskytují požadovaná oprávnění Ke spuštění instančního objektu. Pro účely testování je nejjednodušší způsob, jak implementovat požadovaná oprávnění pro rozhraní API i zdroj dat, přidáním aplikace jako člena pracovního prostoru s rolí přispěvatele, kde se nachází rozhraní GraphQL API i položky zdroje dat.
Vzhledem k tomu, že služební principál vyžaduje buď certifikát, nebo klientský tajný klíč, není podporován knihovnou Microsoft Authentication Library (MSAL) v jednostránkových aplikacích (SPA), jako je React aplikace vytvořená v posledním kroku. Back-endovou službu můžete použít správně zabezpečenou s dobře definovanou autorizační logikou v závislosti na vašich požadavcích a případech použití.
Jakmile je vaše rozhraní API nakonfigurované pro přístup instančním objektem, můžete ho místně otestovat pomocí jednoduché aplikace Node.JS na místním počítači:
const { ClientSecretCredential } = require('@azure/identity');
// Define your Microsoft Entra ID credentials
const tenantId = "<YOUR_TENANT_ID>";
const clientId = "<YOUR_CLIENT_ID>";
const clientSecret = "<YOUR_CLIENT_SECRET>"; // Service principal secret value
const scope = "https://api.fabric.microsoft.com/.default"; // The scope of the token to access Fabric
// Create a credential object with service principal details
const credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
// Function to retrieve the token
async function getToken() {
try {
// Get the token for the specified scope
const tokenResponse = await credential.getToken(scope);
console.log("Access Token:", tokenResponse.token);
} catch (err) {
console.error("Error retrieving token:", err.message);
}
}
Nainstalujte závislosti (@azure/identity) s zvoleným správcem balíčků Node.js, upravte soubor požadovanými informacemi, uložte ho a spusťte (node <filename.js>). Tím se načte token z Microsoft Entra.
Token pak můžete použít k vyvolání rozhraní GraphQL API pomocí PowerShellu tak, že nahradíte příslušné podrobnosti tokenem , který jste získali, dotazem GraphQL , který chcete spustit, a koncovým bodem rozhraní GraphQL API:
$headers = @{
Authorization = "Bearer <YOUR_TOKEN>"
'Content-Type' = 'application/json'
}
$body = @{
query = @"
<YOUR_GRAPHQL_QUERY>
"@
}
# Make the POST request to the GraphQL API
$response = Invoke-RestMethod -Uri "<YOUR_GRAPHQL_API_ENDPOINT>" -Method POST -Headers $headers -Body ($body | ConvertTo-Json)
# Output the response
$response | ConvertTo-Json -Depth 10
Případně použijte cURL k dosažení stejného výsledku:
curl -X POST <YOUR_GRAPHQL_API_ENDPOINT> \
-H "Authorization: <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"query": "<YOUR_GRAPHQL_QUERY(in a single line)>"}'
V případě místního testování upravte kód Node.js mírně pomocí další závislosti (axios) a načtěte token a vyvolejte rozhraní API v jediném spuštění:
const { ClientSecretCredential } = require('@azure/identity');
const axios = require('axios');
// Microsoft Entra ID credentials
const tenantId = "<YOUR_TENANT_ID>";
const clientId = "<YOUR_CLIENT_ID>";
const clientSecret = "<YOUR_CLIENT_SECRET>"; // Service principal secret value
// GraphQL API details
const graphqlApiUrl = "YOUR_GRAPHQL_API_ENDPOINT>";
const scope = "https://api.fabric.microsoft.com/.default"; // The scope to request the token for
// The GraphQL query
const graphqlQuery = {
query: `
<YOUR_GRAPHQL_QUERY>
`
};
// Function to retrieve a token and call the GraphQL API
async function fetchGraphQLData() {
try {
// Step 1: Retrieve token using the ClientSecretCredential
const credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
const tokenResponse = await credential.getToken(scope);
const accessToken = tokenResponse.token;
console.log("Access token retrieved!");
// Step 2: Use the token to make a POST request to the GraphQL API
const response = await axios.post(
graphqlApiUrl,
graphqlQuery,
{
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json'
}
}
);
// Step 3: Output the GraphQL response data
console.log("GraphQL API response:", JSON.stringify(response.data));
} catch (err) {
console.error("Error:", err.message);
}
}
// Execute the function
fetchGraphQLData();
Související obsah
- Vytvoření aplikace Microsoft Entra v Azure
- Zjistěte, jak vytvořit API pro GraphQL ve Fabric a přidat data.
- Zjistěte, jak dotazovat více zdrojů dat v rozhraní FABRIC API pro GraphQL.