Webes API-kat hívó démonalkalmazások konfigurálása

Megtudhatja, hogyan konfigurálhatja a webes API-kat hívó démonalkalmazás kódját.

Démonalkalmazásokat támogató Microsoft-kódtárak

Az alábbi Microsoft-kódtárak támogatják a démonalkalmazásokat:

Nyelv/ keretrendszer Projekt bekapcsolva
GitHub
Csomag Szerzés
közül
Felhasználók bejelentkezése Webes API-k elérése Általánosan elérhető (GA) vagy
1. nyilvános előzetes verzió
.NET MSAL.NET Microsoft.Identity.Client Gyors útmutató A tár nem tud azonosító jogkivonatokat kérni a felhasználói bejelentkezéshez. A kódtár hozzáférési jogkivonatokat kérhet védett webes API-khoz. FE
Java MSAL4J msal4j A tár nem tud azonosító jogkivonatokat kérni a felhasználói bejelentkezéshez. A kódtár hozzáférési jogkivonatokat kérhet védett webes API-khoz. FE
Csomópont MSAL-csomópont msal-node Gyors útmutató A tár nem tud azonosító jogkivonatokat kérni a felhasználói bejelentkezéshez. A kódtár hozzáférési jogkivonatokat kérhet védett webes API-khoz. FE
Python MSAL Python msal-python Gyors útmutató A tár nem tud azonosító jogkivonatokat kérni a felhasználói bejelentkezéshez. A kódtár hozzáférési jogkivonatokat kérhet védett webes API-khoz. FE

1Az online szolgáltatásokra vonatkozó univerzális licencfeltételek nyilvános előzetes verziójú kódtárakra vonatkoznak.

A szolgáltató konfigurálása

A démonalkalmazások a delegált engedélyek helyett alkalmazásengedélyeket használnak. Így a támogatott fióktípusuk nem lehet semmilyen szervezeti címtárban vagy személyes Microsoft-fiókban (például Skype, Xbox, Outlook.com). Nincs olyan bérlői rendszergazda, aki beleegyezést ad egy microsoftos személyes fiók démonalkalmazásához. Ki kell választania a szervezeten belüli fiókokat vagy bármely szervezet fiókjait.

Az alkalmazáskonfigurációban megadott szolgáltatót bérlőként kell megadni (bérlőazonosítót vagy a szervezethez társított tartománynevet).

Még ha több-bérlős eszközt is szeretne megadni, akkor is használjon bérlőazonosítót vagy tartománynevet, és necommon vagy organizations ezzel a folyamattal, mert a szolgáltatás nem tudja megbízhatóan kikövetkeztetni, hogy melyik bérlőt kell használnia.

Az alkalmazás konfigurálása és példányosítása

Az MSAL-kódtárakban az ügyfél hitelesítő adatai (titkos vagy tanúsítvány) a bizalmas ügyfélalkalmazás-konstrukció paramétereként lesznek átadva.

Fontos

Még ha az alkalmazás egy szolgáltatásként futó konzolalkalmazás is, akkor is bizalmas ügyfélalkalmazásnak kell lennie, ha démonalkalmazásról van szó.

Konfigurációs fájl

A konfigurációs fájl a következőket határozza meg:

  • A felhőpéldány és a bérlőazonosító, amelyek együttesen alkotják a szolgáltatót.
  • Az alkalmazásregisztrációból kapott ügyfélazonosító.
  • Titkos ügyfélkód vagy tanúsítvány.

Íme egy példa egy appsettings.json fájl konfigurációjának meghatározására. Ez a példa a GitHubon található .NET-konzol démonkódmintájából származik.

{
    "AzureAd": {
        "Instance": "https://login.microsoftonline.com/",
        "TenantId": "[Enter here the tenantID or domain name for your Azure AD tenant]",
        "ClientId": "[Enter here the ClientId for your application]",
        "ClientCredentials": [
            {
                "SourceType": "ClientSecret",
                "ClientSecret": "[Enter here a client secret for your application]"
            }
        ]
    }
}

A tanúsítványt az ügyfél titkos kódja vagy a számítási feladatok identitás-összevonási hitelesítő adatai helyett kell megadnia.

Az MSAL-alkalmazás példányosítása

Az MSAL-alkalmazás példányosításához adja hozzá, hivatkozzon vagy importálja az MSAL-csomagot (a nyelvtől függően).

A konstrukció eltérő attól függően, hogy ügyfél titkos kulcsokat vagy tanúsítványokat használ (vagy speciális forgatókönyvként aláírt állításokat).

Hivatkozás a csomagra

Hivatkozzon az MSAL-csomagra az alkalmazáskódban.

Adja hozzá a Microsoft.Identity.Web.TokenAcquisition NuGet-csomagot az alkalmazáshoz. Másik lehetőségként, ha meghívja a Microsoft Graphot, adja hozzá a Microsoft.Identity.Web.GraphServiceClient csomagot. A projekt a következő lehet. A appsettings.json fájlt át kell másolni a kimeneti könyvtárba.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0</TargetFramework>
    <RootNamespace>daemon_console</RootNamespace>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Identity.Web.GraphServiceClient" Version="2.12.2" />
  </ItemGroup>

  <ItemGroup>
    <None Update="appsettings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
  </ItemGroup>
</Project>

A Program.cs fájlban adjon hozzá egy using irányelvet a kódhoz a Microsoft.Identity.Web hivatkozásához.

using Microsoft.Identity.Abstractions;
using Microsoft.Identity.Web;

A bizalmas ügyfélalkalmazás példányosítása titkos ügyfélkóddal

A bizalmas ügyfélalkalmazás titkos ügyfélkóddal való példányosításának kódja:

   class Program
    {
        static async Task Main(string[] _)
        {
            // Get the Token acquirer factory instance. By default it reads an appsettings.json
            // file if it exists in the same folder as the app (make sure that the 
            // "Copy to Output Directory" property of the appsettings.json file is "Copy if newer").
            TokenAcquirerFactory tokenAcquirerFactory = TokenAcquirerFactory.GetDefaultInstance();

            // Configure the application options to be read from the configuration
            // and add the services you need (Graph, token cache)
            IServiceCollection services = tokenAcquirerFactory.Services;
            services.AddMicrosoftGraph();
            // By default, you get an in-memory token cache.
            // For more token cache serialization options, see https://aka.ms/msal-net-token-cache-serialization

            // Resolve the dependency injection.
            var serviceProvider = tokenAcquirerFactory.Build();

            // ...
        }
    }

A konfiguráció a appsettings.json olvasható be:

A bizalmas ügyfélalkalmazás példányosítása ügyféltanúsítvánnyal

Az alábbi kóddal hozhat létre egy alkalmazást egy tanúsítvánnyal:

Maga a kód pontosan ugyanaz. A tanúsítványt a konfiguráció ismerteti. A tanúsítvány beszerzésének számos módja van. További részletekért lásd: https://aka.ms/ms-id-web-certificates. Így szerezheti be a tanúsítványt a KeyVaultból. A Microsoft-identitás delegáltja az Azure Identity DefaultAzureCredential szolgáltatását, és felügyelt identitást használt, ha elérhető a KeyVault tanúsítványának eléréséhez. Az alkalmazást helyileg is hibakeresésre használhatja, mivel az a fejlesztői hitelesítő adatokat használja.

  "ClientCredentials": [
      {
        "SourceType": "KeyVault",
        "KeyVaultUrl": "https://yourKeyVaultUrl.vault.azure.net",
        "KeyVaultCertificateName": "NameOfYourCertificate"
      }

Speciális forgatókönyv: A bizalmas ügyfélalkalmazás példányosítása ügyfél-állításokkal

Az ügyfél titkos kulcsának vagy tanúsítványának használata mellett a bizalmas ügyfélalkalmazások ügyfél-állításokkal is igazolhatják személyazonosságukat. Részletekért lásd a CredentialDescription parancsot .

Következő lépések

Lépjen tovább ebben a forgatókönyvben a következő cikkre, és szerezze be az alkalmazás jogkivonatát.