Share via


Skrivbordsapp som anropar webb-API:er: Flytta till produktion

I den här artikeln får du lära dig hur du flyttar din skrivbordsapp som anropar webb-API:er till produktion.

Hantera fel i skrivbordsprogram

I de olika flödena har du lärt dig hur du hanterar felen för de tysta flödena, enligt kodfragmenten. Du har också sett att det finns fall där interaktion behövs, som i inkrementell medgivande och villkorsstyrd åtkomst.

Kommentar

Att få medgivande för flera resurser fungerar för Microsofts identitetsplattform men inte för Azure Active Directory (Azure AD) B2C. Azure AD B2C stöder endast administratörsmedgivande, inte användarmedgivande.

Du kan inte hämta en token för flera resurser samtidigt med Microsofts identitetsplattform. Parametern scopes kan endast innehålla omfång för en enskild resurs. Du kan se till att användaren godkänner flera resurser i förväg med hjälp av parametern extraScopesToConsent .

Du kan till exempel ha två resurser som har två omfång vardera:

  • https://mytenant.onmicrosoft.com/customerapi med omfången customer.read och customer.write
  • https://mytenant.onmicrosoft.com/vendorapi med omfången vendor.read och vendor.write

I det här exemplet använder du den .WithExtraScopesToConsent modifierare som har parametern extraScopesToConsent .

Till exempel:

I MSAL.NET

string[] scopesForCustomerApi = new string[]
{
  "https://mytenant.onmicrosoft.com/customerapi/customer.read",
  "https://mytenant.onmicrosoft.com/customerapi/customer.write"
};
string[] scopesForVendorApi = new string[]
{
 "https://mytenant.onmicrosoft.com/vendorapi/vendor.read",
 "https://mytenant.onmicrosoft.com/vendorapi/vendor.write"
};

var accounts = await app.GetAccountsAsync();
var result = await app.AcquireTokenInteractive(scopesForCustomerApi)
                     .WithAccount(accounts.FirstOrDefault())
                     .WithExtraScopesToConsent(scopesForVendorApi)
                     .ExecuteAsync();

I MSAL för iOS och macOS

Objective-C:

NSArray *scopesForCustomerApi = @[@"https://mytenant.onmicrosoft.com/customerapi/customer.read",
                                @"https://mytenant.onmicrosoft.com/customerapi/customer.write"];

NSArray *scopesForVendorApi = @[@"https://mytenant.onmicrosoft.com/vendorapi/vendor.read",
                              @"https://mytenant.onmicrosoft.com/vendorapi/vendor.write"]

MSALInteractiveTokenParameters *interactiveParams = [[MSALInteractiveTokenParameters alloc] initWithScopes:scopesForCustomerApi webviewParameters:[MSALWebviewParameters new]];
interactiveParams.extraScopesToConsent = scopesForVendorApi;
[application acquireTokenWithParameters:interactiveParams completionBlock:^(MSALResult *result, NSError *error) { /* handle result */ }];

Swift:

let scopesForCustomerApi = ["https://mytenant.onmicrosoft.com/customerapi/customer.read",
                            "https://mytenant.onmicrosoft.com/customerapi/customer.write"]

let scopesForVendorApi = ["https://mytenant.onmicrosoft.com/vendorapi/vendor.read",
                          "https://mytenant.onmicrosoft.com/vendorapi/vendor.write"]

let interactiveParameters = MSALInteractiveTokenParameters(scopes: scopesForCustomerApi, webviewParameters: MSALWebviewParameters())
interactiveParameters.extraScopesToConsent = scopesForVendorApi
application.acquireToken(with: interactiveParameters, completionBlock: { (result, error) in /* handle result */ })

Det här anropet ger dig en åtkomsttoken för det första webb-API:et.

När du anropar det andra webb-API:et anropar du API:et AcquireTokenSilent .

AcquireTokenSilent(scopesForVendorApi, accounts.FirstOrDefault()).ExecuteAsync();

Microsofts personliga konto kräver rekognosering varje gång appen körs

För Användare av microsofts personliga konto är det avsedda beteendet att omformformera för medgivande för varje inbyggt klientanrop (skrivbords- eller mobilapp) för att auktorisera. Den interna klientidentiteten är i sig osäker, vilket strider mot den konfidentiella klientprogramidentiteten. Konfidentiella klientprogram utbyter en hemlighet med Microsofts identitetsplattform för att bevisa sin identitet. Microsofts identitetsplattform valde att minska den här osäkerheten för konsumenttjänster genom att fråga användaren om medgivande varje gång programmet har auktoriserats.

Aktivera loggning

För att hjälpa till med felsökning och felsökning av autentiseringsfel tillhandahåller Microsoft Authentication Library inbyggt loggningsstöd. Loggning i varje bibliotek beskrivs i följande artiklar:

Här följer några förslag på datainsamling:

  • Användare kan be om hjälp när de har problem. Bästa praxis är att samla in och tillfälligt lagra loggar. Ange en plats där användarna kan ladda upp loggarna. MSAL tillhandahåller loggningstillägg för att samla in detaljerad information om autentisering.

  • Om telemetri är tillgänglig aktiverar du den via MSAL för att samla in data om hur användare loggar in på din app.

Verifiera din integrering

Testa integreringen genom att följa checklistan för Microsofts identitetsplattform integrering.

Utveckla för motståndskraft

Lär dig hur du ökar återhämtning i din app. Mer information finns i Öka motståndskraften för autentiserings- och auktoriseringsprogram som du utvecklar

Nästa steg

Mer information finns i Offentliga klientprogram för skrivbord.