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.
Ebben az oktatóanyagban megtudhatja, hogyan módosíthatja az iOS- vagy iPadOS-alkalmazásokat a megosztott eszköz mód (SDM) támogatásához. Az SDM egy Microsoft Entra ID funkció, amely lehetővé teszi, hogy a szervezetek iOS, iPadOS vagy Android rendszerű eszközt konfiguráljanak a több alkalmazott közötti egyszerű megosztáshoz, ami az előtérbeli feldolgozók beállításainak gyakori gyakorlata.
Ebben az útmutatóban Ön:
- Támogatás hozzáadása egyfiókos módhoz.
- Konfigurálja az alkalmazást az SDM használatára.
- Megosztott eszköz mód észlelése.
- Állapítsa meg, hogy a bejelentkezett felhasználó megváltozott-e.
Prerequisites
Megosztott eszköz mód észlelése
A megosztott eszköz mód észlelése fontos az alkalmazás számára. Sok alkalmazás felhasználói élményének (UX) megváltoztatására van szükség, amikor az alkalmazást megosztott eszközön használják. Előfordulhat például, hogy az alkalmazás rendelkezik egy "Regisztráció" funkcióval, amely nem megfelelő az előtérbeli feldolgozók számára, mert valószínűleg már rendelkezik fiókkal. Ha megosztott eszköz módban van, további biztonságot is érdemes hozzáadni az alkalmazás adatainak kezeléséhez.
getDeviceInformationWithParameters:completionBlock: Az API MSALPublicClientApplication használatával állapítsa meg, hogy egy alkalmazás megosztott eszköz módban fut-e egy eszközön.
Az alábbi kódrészletek példákat mutatnak az getDeviceInformationWithParameters:completionBlock: API használatára.
Swift
application.getDeviceInformation(with: nil, completionBlock: { (deviceInformation, error) in
guard let deviceInfo = deviceInformation else {
return
}
let isSharedDevice = deviceInfo.deviceMode == .shared
// Change your app UX if needed
})
Objective-C
[application getDeviceInformationWithParameters:nil
completionBlock:^(MSALDeviceInformation * _Nullable deviceInformation, NSError * _Nullable error)
{
if (!deviceInformation)
{
return;
}
BOOL isSharedDevice = deviceInformation.deviceMode == MSALDeviceModeShared;
// Change your app UX if needed
}];
Kérje le a bejelentkezett felhasználót, és állapítsa meg, hogy megváltozott-e egy felhasználó az eszközön
A megosztott eszköz mód támogatásának másik fontos része a felhasználó állapotának meghatározása az eszközön, valamint az alkalmazásadatok törlése, ha a felhasználó megváltozott, vagy ha egyáltalán nincs felhasználó az eszközön. Önnek kell gondoskodnia arról, hogy az adatok ne szivárogjanak ki egy másik felhasználó számára.
Az API használatával getCurrentAccountWithParameters:completionBlock: lekérdezheti az eszközön jelenleg bejelentkezett fiókot.
Swift
let msalParameters = MSALParameters()
msalParameters.completionBlockQueue = DispatchQueue.main
application.getCurrentAccount(with: msalParameters, completionBlock: { (currentAccount, previousAccount, error) in
// currentAccount is the currently signed in account
// previousAccount is the previously signed in account if any
})
Objective-C
MSALParameters *parameters = [MSALParameters new];
parameters.completionBlockQueue = dispatch_get_main_queue();
[application getCurrentAccountWithParameters:parameters
completionBlock:^(MSALAccount * _Nullable account, MSALAccount * _Nullable previousAccount, NSError * _Nullable error)
{
// currentAccount is the currently signed in account
// previousAccount is the previously signed in account if any
}];
Felhasználó globális bejelentkezése
Ha egy eszköz megosztott eszközként van konfigurálva, az alkalmazás meghívhatja az acquireTokenWithParameters:completionBlock: API-t a fiókba való bejelentkezéshez. A fiók globálisan elérhető lesz az eszközön lévő összes jogosult alkalmazás számára, miután az első alkalmazás bejelentkezett a fiókba.
Objective-C
MSALInteractiveTokenParameters *parameters = [[MSALInteractiveTokenParameters alloc] initWithScopes:@[@"api://myapi/scope"] webviewParameters:[self msalTestWebViewParameters]];
parameters.loginHint = self.loginHintTextField.text;
[application acquireTokenWithParameters:parameters completionBlock:completionBlock];
Felhasználó globális kijelentkeztetése
Az alábbi kód eltávolítja a bejelentkezett fiókot, és nemcsak az alkalmazásból, hanem a megosztotteszköz-módban lévő eszközről is törli a gyorsítótárazott tokeneket. Ez azonban nem törli az adatokat az alkalmazásból. Törölnie kell az adatokat az alkalmazásból, és törölnie kell minden olyan gyorsítótárazott adatot, amit az alkalmazás megjeleníthet a felhasználó számára.
Swift
let account = .... /* account retrieved above */
let signoutParameters = MSALSignoutParameters(webviewParameters: self.webViewParamaters!)
signoutParameters.signoutFromBrowser = true // To trigger a browser signout in Safari.
application.signout(with: account, signoutParameters: signoutParameters, completionBlock: {(success, error) in
if let error = error {
// Signout failed
return
}
// Sign out completed successfully
})
Objective-C
MSALAccount *account = ... /* account retrieved above */;
MSALSignoutParameters *signoutParameters = [[MSALSignoutParameters alloc] initWithWebviewParameters:webViewParameters];
signoutParameters.signoutFromBrowser = YES; // To trigger a browser signout in Safari.
[application signoutWithAccount:account signoutParameters:signoutParameters completionBlock:^(BOOL success, NSError * _Nullable error)
{
if (!success)
{
// Signout failed
return;
}
// Sign out completed successfully
}];
Az Apple-eszközök Microsoft Enterprise SSO beépülő modulja csak az alkalmazások állapotát törli. Nem törli az állapotot a Safari böngészőben. A kódrészletekben látható opcionális signoutFromBrowser tulajdonság használatával elindíthatja a böngésző kijelentkezést a Safariban. Emiatt a böngésző rövid időre elindul az eszközön.
Közvetítés fogadása más alkalmazásokból kezdeményezett globális kijelentkezés észleléséhez
A fiók módosítás közvetítésének fogadásához regisztrálnia kell egy broadcast fogadót. Amikor egy fiókmódosítási adás érkezik, azonnal kérje le a bejelentkezett felhasználót, és állapítsa meg, hogy megváltozott-e egy felhasználó az eszközön. Ha változás észlelhető, kezdeményezheti a korábban bejelentkezett fiók adatainak törlését. Javasoljuk, hogy megfelelően állítsa le a műveleteket, és végezze el az adatok törlését.
Az alábbi kódrészlet bemutatja, hogyan regisztrálhat egy broadcast vevőt.
NSString *const MSAL_SHARED_MODE_CURRENT_ACCOUNT_CHANGED_NOTIFICATION_KEY = @"SHARED_MODE_CURRENT_ACCOUNT_CHANGED";
- (void) registerDarwinNotificationListener
{
CFNotificationCenterRef center =
CFNotificationCenterGetDarwinNotifyCenter();
CFNotificationCenterAddObserver(center, nil,
sharedModeAccountChangedCallback,
(CFStringRef)MSAL_SHARED_MODE_CURRENT_ACCOUNT_CHANGED_NOTIFICATION_KEY,
nil, CFNotificationSuspensionBehaviorDeliverImmediately);
}
// CFNotificationCallbacks used specifically for Darwin notifications leave userInfo unused
void sharedModeAccountChangedCallback(CFNotificationCenterRef center, void * observer, CFStringRef name, void const * object, __unused CFDictionaryRef userInfo)
{
// Invoke account cleanup logic here
}
A CFNotificationAddObserver elérhető beállításaival kapcsolatos további információkért, vagy a megfelelő Swift-metódusaláírások megtekintéséhez lásd:
iOS esetén az alkalmazás háttérengedélyt igényel ahhoz, hogy aktív maradjon a háttérben, és figyelje a Darwin-értesítéseket. A háttérképességet hozzá kell adni egy másik háttérművelet támogatásához – előfordulhat, hogy az alkalmazás elutasítható az Apple App Store-ból, ha háttérképessége csak a Darwin-értesítések figyelésére alkalmas. Ha az alkalmazás már konfigurálva van a háttérműveletek elvégzésére, a művelet részeként hozzáadhatja a figyelőt. Az iOS háttérfunkcióiról további információt a háttérvégrehajtási módok konfigurálása című témakörben talál.
Microsoft megosztott eszköz módot támogató alkalmazások
Ezek a Microsoft alkalmazások támogatják Microsoft Entra megosztott eszköz módot:
- Microsoft Teams
- Microsoft Viva Engage (korábban Yammer)
- Microsoft Outlook
- Microsoft Power Apps
- Microsoft Power BI Mobile
- Microsoft Edge
- Microsoft Word
- Microsoft Excel
- Microsoft PowerPoint
Important
A nyilvános előzetes verzió szolgáltatásszintű szerződés nélkül érhető el, és éles számítási feladatokhoz nem ajánlott. Előfordulhat, hogy egyes funkciók nem támogatottak, vagy korlátozott képességekkel rendelkeznek. További információ: Univerzális licencfeltételek online szolgáltatásokhoz.
Megosztott eszköz módot támogató külső MDM-k
Ezek a külső Mobil Eszközkezelés (MDM) szolgáltatók támogatják Microsoft Entra megosztott eszköz módot:
Következő lépések
A megosztott eszköz mód működés közbeni megtekintéséhez az alábbi kódminta GitHub tartalmaz egy példát, amely egy frontline worker alkalmazást futtat egy iOS-eszközön megosztott eszköz módban: