Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Amikor egy felhasználó hitelesíti magát, a Microsoft Entra ID a Microsoft Entra alkalmazásban regisztrált átirányítási URI használatával juttatja el a tokent az alkalmazáshoz.
Az MSAL megköveteli, hogy az átirányítási URI regisztrálva legyen a Microsoft Entra alkalmazásban egy adott formátumban. Az MSAL alapértelmezett átirányítási URI-t használ, ha nem ad meg egyet. A formátum a következő msauth.[Your_Bundle_Id]://auth: .
Az alapértelmezett átirányítási URI formátum a legtöbb alkalmazás és forgatókönyv esetében működik, beleértve a közvetítőalapú hitelesítést és a rendszer webes nézetét. Amikor csak lehetséges, használja az alapértelmezett formátumot.
Előfordulhat azonban, hogy módosítania kell az átirányítási URI-t a speciális forgatókönyvek esetében, az alábbi szakaszban leírtak szerint.
Eltérő átirányítási URI-t igénylő forgatókönyvek
Alkalmazásközi egyszeri bejelentkezés (SSO)
Ahhoz, hogy a Microsoft identitásplatformja tokeneket oszthasson meg az alkalmazások között, minden alkalmazásnak ugyanazzal a kliensazonosítóval vagy alkalmazásazonosítóval kell rendelkeznie. Az ügyfél-azonosító az az egyedi azonosító, amelyet az alkalmazás Azure portálon való regisztrálásakor adott meg (nem az alkalmazáscsomag-azonosító, amelyet alkalmazásonként regisztrál az Apple-nél).
Az átirányítási URI-knak minden iOS-alkalmazásnál eltérőnek kell lenniük. Ez lehetővé teszi, hogy a Microsoft identitásszolgáltatás egyedileg azonosítsa az alkalmazásazonosítóval rendelkező különböző alkalmazásokat. Minden alkalmazás több átirányítási URI-t is regisztrálhat a Azure portálon. A csomag minden egyes alkalmazása eltérő átirányítási URI-val fog rendelkezni. Például:
Az alábbi alkalmazásregisztrációt tekintve a Azure portálon:
- Ügyfélazonosító:
ABCDE-12345 - RedirectUris:
msauth.com.contoso.app1://auth,msauth.com.contoso.app2://auth,msauth.com.contoso.app3://auth
Az App1 átirányítást msauth.com.contoso.app1://authhasznál.
Az App2 a(z) msauth.com.contoso.app2://auth-t használja.
Az App3 a msauth.com.contoso.app3://auth-t használja.
Migrálás ADAL-ról MSAL-re
A Azure Active Directory Hitelesítési kódtárat (ADAL) használó kód MSAL-be való migrálásakor előfordulhat, hogy már konfigurálva van egy átirányítási URI az alkalmazáshoz. Továbbra is használhatja ugyanazt az átirányítási URI-t, ha az ADAL-alkalmazás a közvetített forgatókönyvek támogatására lett konfigurálva, és az átirányítási URI megfelel az MSAL átirányítási URI formátum követelményeinek.
MSAL átirányítási URI formátumra vonatkozó követelmények
Az MSAL átirányítási URI-jának a következő formátumban kell lennie:
<scheme>://hostahol a(z)
<scheme>egyedi karakterlánc, amely az alkalmazását azonosítja. Ez elsősorban az alkalmazás csomagazonosítóján alapul az egyediség garantálása érdekében. Ha például az alkalmazás csomagazonosítója,com.contoso.myappakkor az átirányítási URI a következő formában lenne:msauth.com.contoso.myapp://auth.Ha az ADAL-ból migrál, az átirányítási URI valószínűleg a következő formátummal rendelkezik:
<scheme>://[Your_Bundle_Id]aholschemeegy egyedi sztring található. Az MSAL használatakor a formátum továbbra is működni fog.<scheme>elemet regisztrálni kell az alkalmazás Info.plist fájljában, aCFBundleURLTypes > CFBundleURLSchemesalatt. Ebben a példában az Info.plist forráskódként lett megnyitva:<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.[BUNDLE_ID]</string> </array> </dict> </array>
Az MSAL ellenőrzi, hogy az átirányítási URI megfelelően regisztrál-e, és hibát ad vissza, ha nem.
- Ha univerzális hivatkozást szeretne átirányítási URI-ként használni, akkor a(z)
<scheme>értékénekhttpskell lennie, és nem kell deklarálni a(z)CFBundleURLSchemeselemben. Ehelyett konfigurálja az alkalmazást és a tartományt az Apple utasításai szerint a Universal Links for Developers oldalon, és hívja meg a(z)MSALPublicClientApplicationhandleMSALResponse:sourceApplication:metódusát, amikor az alkalmazás univerzális linken keresztül nyílik meg.
Egyéni átirányítási URI használata
Egyéni átirányítási URI használatához adja át a redirectUri paramétert a(z) MSALPublicClientApplicationConfig elemnek, majd az így kapott objektumot adja át a(z) MSALPublicClientApplication elemnek, amikor inicializálja az objektumot. Ha az átirányítási URI érvénytelen, az inicializáló a(z) nil értékkel tér vissza, és további információkkal beállítja a(z) redirectURIError elemet. Például:
Objective-C:
MSALPublicClientApplicationConfig *config =
[[MSALPublicClientApplicationConfig alloc] initWithClientId:@"your-client-id"
redirectUri:@"your-redirect-uri"
authority:authority];
NSError *redirectURIError;
MSALPublicClientApplication *application =
[[MSALPublicClientApplication alloc] initWithConfiguration:config error:&redirectURIError];
Swift
let config = MSALPublicClientApplicationConfig(clientId: "your-client-id",
redirectUri: "your-redirect-uri",
authority: authority)
do {
let application = try MSALPublicClientApplication(configuration: config)
// continue on with application
} catch let error as NSError {
// handle error here
}
Az URL megnyitási eseményének kezelése
Az alkalmazásnak hívnia kell az MSAL-t, amikor bármilyen választ kap URL-sémákon vagy univerzális hivatkozásokon keresztül. Az alkalmazás megnyitásakor hívja meg a(z) MSALPublicClientApplicationhandleMSALResponse:sourceApplication: metódusát. Íme egy példa az egyéni sémákra:
Objective-C:
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
return [MSALPublicClientApplication handleMSALResponse:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]];
}
Swift
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String)
}
Következő lépések
További információ a hitelesítési folyamatokról és az alkalmazásforgatókönyvekről