Webes API-kat hívó mobilalkalmazás konfigurálása
Az alkalmazás létrehozása után megtanulhatja, hogyan konfigurálhatja a kódot az alkalmazásregisztrációs paraméterek használatával. A mobilalkalmazások a létrehozási keretrendszerükbe való illesztéssel kapcsolatos összetettségeket mutatnak be.
Mobilalkalmazásokat támogató Microsoft-kódtárak
A következő Microsoft-kódtárak támogatják a mobilalkalmazásokat:
Platform | Projekt bekapcsolva GitHub |
Csomag | Megszerzé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ó |
---|---|---|---|---|---|---|
Android (Java) | MSAL Android | MSAL | Gyors útmutató | FE | ||
Android (Kotlin) | MSAL Android | MSAL | — | FE | ||
iOS (Swift/Obj-C) | MSAL iOS-hez és macOS-hez | MSAL | Oktatóanyag | FE | ||
Xamarin (.NET) | MSAL.NET | Microsoft.Identity.Client | — | FE |
1 Az online szolgáltatásokra vonatkozó univerzális licencfeltételek nyilvános előzetes verziójú kódtárakra vonatkoznak.
Az alkalmazás példányosítása
Android
A mobilalkalmazások az osztályt PublicClientApplication
használják. Példányosítása az alábbiak szerint:
PublicClientApplication sampleApp = new PublicClientApplication(
this.getApplicationContext(),
R.raw.auth_config);
iOS
Az iOS-en futó mobilalkalmazások példányosítaniuk kell az osztályt MSALPublicClientApplication
. Az osztály példányosításához használja az alábbi kódot.
NSError *msalError = nil;
MSALPublicClientApplicationConfig *config = [[MSALPublicClientApplicationConfig alloc] initWithClientId:@"<your-client-id-here>"];
MSALPublicClientApplication *application = [[MSALPublicClientApplication alloc] initWithConfiguration:config error:&msalError];
let config = MSALPublicClientApplicationConfig(clientId: "<your-client-id-here>")
if let application = try? MSALPublicClientApplication(configuration: config){ /* Use application */}
Az MSALPublicClientApplicationConfig további tulajdonságai felülbírálhatják az alapértelmezett szolgáltatót, átirányítási URI-t adhatnak meg, vagy módosíthatják az MSAL-jogkivonat gyorsítótárazásának viselkedését.
Xamarin vagy UWP
Ez a szakasz bemutatja, hogyan példányosíthatja az alkalmazást Xamarin.iOS, Xamarin.Android és UWP-alkalmazásokhoz.
Feljegyzés
MSAL.NET 4.61.0-s és újabb verziók nem támogatják Univerzális Windows-platform (UWP), Xamarin Android és Xamarin iOS rendszert. Javasoljuk, hogy a Xamarin-alkalmazásokat modern keretrendszerekbe, például a MAUI-ba migrálja. További információ a Xamarin- és UWP-MSAL.NET közelgő elavulásáról szóló közleményben.
Az alkalmazás példányosítása
Xamarin vagy UWP esetén az alkalmazás példányosításának legegyszerűbb módja az alábbi kód használata. Ebben a kódban ClientId
a regisztrált alkalmazás GUID azonosítója.
var app = PublicClientApplicationBuilder.Create(clientId)
.Build();
A további With<Parameter>
metódusok beállítják a felhasználói felület szülőfelületét, felülbírálják az alapértelmezett szolgáltatót, megadják a telemetriai ügyfél nevét és verzióját, megadják az átirányítási URI-t, és megadják a használni kívánt HTTP-előállítót. A HTTP-gyár például a proxyk kezelésére, valamint a telemetria és a naplózás megadására használható.
Az alábbi szakaszok további információt nyújtanak az alkalmazás példányosításáról.
Adja meg a szülő felhasználói felületet, ablakot vagy tevékenységet
Android rendszeren az interaktív hitelesítés előtt adja át a szülőtevékenységet. iOS rendszeren, ha közvetítőt használ, jelentkezzen be ViewController
. Az UWP-hez hasonlóan érdemes lehet a szülőablakot is átengedni. A jogkivonat beszerzésekor adja át. Az alkalmazás létrehozásakor azonban delegáltként is megadhat visszahívást UIParent
.
IPublicClientApplication application = PublicClientApplicationBuilder.Create(clientId)
.ParentActivityOrWindowFunc(() => parentUi)
.Build();
Androidon azt javasoljuk, hogy használja CurrentActivityPlugin
a . Az eredményként kapott PublicClientApplication
szerkesztőkód a következő példához hasonlóan néz ki:
// Requires MSAL.NET 4.2 or above
var pca = PublicClientApplicationBuilder
.Create("<your-client-id-here>")
.WithParentActivityOrWindow(() => CrossCurrentActivity.Current)
.Build();
További alkalmazásépítési paraméterek keresése
Az összes elérhető PublicClientApplicationBuilder
metódus listáját a Metódusok listában találja.
A rendelkezésre álló lehetőségek leírását a referenciadokumentációban PublicClientApplicationOptions
találja.
Feladatok az iOS és macOS MSAL-hez
Ezekre a feladatokra akkor van szükség, ha az MSAL-t iOS-hez és macOS-hez használja:
- A
openURL
visszahívás implementálása - Kulcskarika-hozzáférési csoportok engedélyezése
- Böngészők és WebView-k testreszabása
Xamarin.Android-feladatok
Ha Xamarin.Androidot használ, végezze el a következő feladatokat:
- Győződjön meg arról, hogy a vezérlés visszatér az MSAL-hez a hitelesítési folyamat interaktív részének befejeződése után
- Az Android-jegyzék frissítése
- Beágyazott webes nézet használata (nem kötelező)
- Szükség esetén hibaelhárítás
További információkért tekintse meg a Xamarin.Android szempontjait.
Az Android böngészőkkel kapcsolatos szempontokért lásd a Xamarin.Android-specifikus szempontokat a MSAL.NET.
Feladatok az UWP-hez
Az UWP-n vállalati hálózatokat használhat. A következő szakaszok ismertetik a vállalati forgatókönyvben el kell végeznie a feladatokat.
További információ: UWP-specifikus szempontok a MSAL.NET.
Az alkalmazás konfigurálása a közvetítő használatára
Android és iOS rendszeren a közvetítők a következőket teszik lehetővé:
- Egyszeri bejelentkezés (SSO): Az egyszeri bejelentkezést a Microsoft Entra ID azonosítóval regisztrált eszközökhöz használhatja. Egyszeri bejelentkezés használatakor a felhasználóknak nem kell bejelentkezni az egyes alkalmazásokba.
- Eszközazonosítás: Ez a beállítás lehetővé teszi a Microsoft Entra-eszközökhöz kapcsolódó feltételes hozzáférési szabályzatokat. A hitelesítési folyamat az eszköz munkahelyi csatlakoztatásakor létrehozott eszköztanúsítványt használja.
- Alkalmazásazonosítás ellenőrzése: Amikor egy alkalmazás meghívja a közvetítőt, átadja az átirányítási URL-címét. Ezután a közvetítő ellenőrzi.
A közvetítő engedélyezése a Xamarinon
Ha engedélyezni szeretné a közvetítőt a Xamarinon, használja a WithBroker()
paramétert, amikor meghívja a metódust PublicClientApplicationBuilder.CreateApplication
. Alapértelmezés szerint .WithBroker()
igaz értékre van állítva.
A Xamarin.iOS közvetítőalapú hitelesítésének engedélyezéséhez kövesse a cikk Xamarin.iOS szakaszának lépéseit.
A közvetítő engedélyezése androidos MSAL-hez
A közvetítő androidos engedélyezésével kapcsolatos információkért lásd : Közvetítőalapú hitelesítés Androidon.
Az mSAL-közvetítő engedélyezése iOS-hez és macOS-hez
A közvetítőalapú hitelesítés alapértelmezés szerint engedélyezve van a Microsoft Entra-forgatókönyvek esetében az iOS és a macOS MSAL rendszerben.
Az alábbi szakaszok útmutatást nyújtanak az alkalmazás közvetítőalapú hitelesítési támogatásának konfigurálásához a Xamarin.iOS MSAL vagy az iOS és macOS rendszerhez készült MSAL esetében. A két utasításkészletben a lépések némelyike eltér.
Közvetítőalapú hitelesítés engedélyezése xamarin iOS-hez
Az ebben a szakaszban ismertetett lépéseket követve engedélyezheti, hogy a Xamarin.iOS-alkalmazás kommunikáljon a Microsoft Authenticator alkalmazással.
1. lépés: Közvetítői támogatás engedélyezése
A közvetítő támogatása alapértelmezés szerint le van tiltva. Ezt egy külön PublicClientApplication
osztályhoz engedélyezheti. Az osztály létrehozásakor használja a WithBroker()
paramétert PublicClientApplication
PublicClientApplicationBuilder
. A WithBroker()
paraméter alapértelmezés szerint igaz értékre van állítva.
var app = PublicClientApplicationBuilder
.Create(ClientId)
.WithBroker()
.WithReplyUri(redirectUriOnIos) // $"msauth.{Bundle.Id}://auth" (see step 6 below)
.Build();
2. lépés: Az AppDelegate frissítése a visszahívás kezeléséhez
Amikor MSAL.NET meghívja a közvetítőt, a közvetítő visszahívja az alkalmazást. A metódus használatával visszahívja a AppDelegate.OpenUrl
hívást. Mivel az MSAL megvárja a közvetítő válaszát, az alkalmazásnak együtt kell működnie a MSAL.NET visszahívásához. Ezt a viselkedést úgy állíthatja be, hogy frissíti a fájlt úgy AppDelegate.cs
, hogy felülbírálja a metódust, ahogy az alábbi kód is mutatja.
public override bool OpenUrl(UIApplication app, NSUrl url,
string sourceApplication,
NSObject annotation)
{
if (AuthenticationContinuationHelper.IsBrokerResponse(sourceApplication))
{
AuthenticationContinuationHelper.SetBrokerContinuationEventArgs(url);
return true;
}
else if (!AuthenticationContinuationHelper.SetAuthenticationContinuationEventArgs(url))
{
return false;
}
return true;
}
Ezt a metódust az alkalmazás minden indításakor meghívja a program. Lehetőség van a közvetítő válaszának feldolgozására és az MSAL.NET által elindított hitelesítési folyamat befejezésére.
3. lépés: UIViewController() beállítása
Xamarin iOS esetén általában nem kell objektumablakot beállítania. Ebben az esetben azonban be kell állítania, hogy elküldhesse és megkaphassa a válaszokat egy közvetítőtől. Objektumablak beállításához be AppDelegate.cs
kell állítania egy ViewController
.
Az objektumablak beállításához kövesse az alábbi lépéseket:
A be
AppDelegate.cs
van állítva egyApp.RootViewController
újUIViewController()
. Ez a beállítás biztosítja, hogy a közvetítő hívása tartalmazza a következőket:UIViewController
. Ha nincs megfelelően beállítva, a következő hibaüzenet jelenhet meg:"uiviewcontroller_required_for_ios_broker":"UIViewController is null, so MSAL.NET cannot invoke the iOS broker. See https://aka.ms/msal-net-ios-broker."
A híváshoz használja a
AcquireTokenInteractive
következőt.WithParentActivityOrWindow(App.RootViewController)
: . Adja meg a használni kívánt objektumablakra mutató hivatkozást. Példa:A
App.cs
-ben:public static object RootViewController { get; set; }
A
AppDelegate.cs
-ben:LoadApplication(new App()); App.RootViewController = new UIViewController();
A hívásban:
AcquireToken
result = await app.AcquireTokenInteractive(scopes) .WithParentActivityOrWindow(App.RootViewController) .ExecuteAsync();
4. lépés: URL-séma regisztrálása
MSAL.NET URL-címekkel hívja meg a közvetítőt, majd adja vissza a közvetítő válaszát az alkalmazásnak. A körút befejezéséhez regisztrálja az alkalmazás URL-sémáját a Info.plist
fájlban.
Az alkalmazás URL-sémájának regisztrálásához kövesse az alábbi lépéseket:
Előtag
CFBundleURLSchemes
a .msauth
Hozzáadás
CFBundleURLName
a végéhez. Kövesse a következő mintát:$"msauth.(BundleId)"
BundleId
Itt egyedileg azonosíthatja az eszközt. Ha példáulBundleId
azyourcompany.xforms
, akkor az URL-séma .msauth.com.yourcompany.xforms
Ez az URL-séma az átirányítási URI része lesz, amely egyedileg azonosítja az alkalmazást, amikor megkapja a közvetítő válaszát.
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLName</key> <string>com.yourcompany.xforms</string> <key>CFBundleURLSchemes</key> <array> <string>msauth.com.yourcompany.xforms</string> </array> </dict> </array>
5. lépés: Hozzáadás az LSApplicationQueriesSchemes szakaszhoz
Az MSAL annak ellenőrzésére használja –canOpenURL:
, hogy a közvetítő telepítve van-e az eszközön. Az iOS 9-ben az Apple zárolta az alkalmazás által lekérdezhető sémákat.
Adja hozzá msauthv2
a LSApplicationQueriesSchemes
Info.plist
fájl szakaszához, ahogyan az alábbi kód példában is látható:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
</array>
Közvetített hitelesítés iOS-hez és macOS-hez készült MSAL-hez
A közvetítőalapú hitelesítés alapértelmezés szerint engedélyezve van a Microsoft Entra-forgatókönyvekben.
1. lépés: Az AppDelegate frissítése a visszahívás kezeléséhez
Amikor az iOS-hez és macOS-hez készült MSAL meghívja a közvetítőt, a közvetítő a metódus használatával visszahívja az openURL
alkalmazást. Mivel az MSAL megvárja a közvetítő válaszát, az alkalmazásnak együtt kell működnie az MSAL visszahívásához. Ezt a képességet úgy állíthatja be, hogy a AppDelegate.m
fájlt úgy frissíti, hogy felülírja a metódust, ahogy az alábbi példakódok is mutatják.
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
return [MSALPublicClientApplication handleMSALResponse:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]];
}
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
guard let sourceApplication = options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String else {
return false
}
return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: sourceApplication)
}
Ha az iOS 13-at vagy újabb verziót használjaUISceneDelegate
, helyezze az MSAL visszahívást UISceneDelegate
helyettescene:openURLContexts:
. Az MSAL-t handleMSALResponse:sourceApplication:
minden URL-címhez csak egyszer kell meghívni.
További információkért tekintse meg az Apple dokumentációját.
2. lépés: URL-séma regisztrálása
Az iOS-hez és macOS-hez készült MSAL URL-címekkel hívja meg a közvetítőt, majd visszaadja a közvetítő válaszát az alkalmazásnak. A körút befejezéséhez regisztráljon egy URL-sémát az alkalmazáshoz a Info.plist
fájlban.
Séma regisztrálása az alkalmazáshoz:
Az egyéni URL-séma előtagja a
msauth
.Adja hozzá a csomagazonosítót a séma végéhez. Kövesse a következő mintát:
$"msauth.(BundleId)"
BundleId
Itt egyedileg azonosíthatja az eszközt. Ha példáulBundleId
azyourcompany.xforms
, akkor az URL-séma .msauth.com.yourcompany.xforms
Ez az URL-séma az átirányítási URI része lesz, amely egyedileg azonosítja az alkalmazást, amikor megkapja a közvetítő válaszát. Győződjön meg arról, hogy a formátumbeli
msauth.(BundleId)://auth
átirányítási URI regisztrálva van az alkalmazáshoz.<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.[BUNDLE_ID]</string> </array> </dict> </array>
3. lépés: LSApplicationQueriesSchemes hozzáadása
Adja hozzá LSApplicationQueriesSchemes
a Microsoft Authenticator alkalmazás hívásainak engedélyezéséhez, ha telepítve van.
Feljegyzés
A msauthv3
sémára akkor van szükség, ha az alkalmazás az Xcode 11-et vagy újabb verzióját használja.
Íme egy példa a hozzáadásra LSApplicationQueriesSchemes
:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
<string>msauthv3</string>
</array>
Közvetített hitelesítés Xamarin.Android esetén
A közvetítő androidos engedélyezéséről további információt a Xamarin.Android közvetítőalapú hitelesítés című témakörben talál.
Következő lépések
Lépjen tovább ebben a forgatókönyvben a következő cikkre, amely egy jogkivonat beszerzését ismerteti.