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.
Ha användarmedgivandet i förväg för flera resurser
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ångencustomer.read
ochcustomer.write
https://mytenant.onmicrosoft.com/vendorapi
med omfångenvendor.read
ochvendor.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.