MSAL kullanarak Android'de uygulamalar arası SSO'ları etkinleştirme

Çoklu oturum açma (SSO), kullanıcıların kimlik bilgilerini yalnızca bir kez girmesini ve bu kimlik bilgilerinin uygulamalar arasında otomatik olarak çalışmasını sağlar.

Microsoft kimlik platformu ve Microsoft Authentication Library (MSAL), kendi uygulama paketinizde SSO'nun etkinleştirilmesine yardımcı olur. Aracı özelliği ve Authenticator uygulamaları ile SSO'nun kapsamını tüm cihaz genelinde genişletebilirsiniz.

Bu nasıl yapılır makalesinde, müşterilerinize SSO sağlamak için uygulamanız tarafından kullanılan SDK'ları yapılandırmayı öğreneceksiniz.

Önkoşullar

Bu nasıl yapılır, nasıl yapılacağını bildiğinizi varsayar:

SSO yöntemleri

Android için MSAL kullanan uygulamaların SSO'ya ulaşmanın iki yolu vardır:

  • Aracı uygulaması aracılığıyla

  • Sistem tarayıcısı aracılığıyla

    Cihaz genelinde SSO, hesap yönetimi ve Koşullu Erişim gibi avantajlar için bir aracı uygulaması kullanmanız önerilir. Ancak, kullanıcılarınızın ek uygulamaları indirmesini gerektirir.

Aracılı kimlik doğrulaması aracılığıyla SSO

Cihaz genelinde SSO'ya katılmak ve kurumsal Koşullu Erişim ilkelerini karşılamak için Microsoft'un kimlik doğrulama aracılarından birini kullanmanızı öneririz. Bir aracıyla tümleştirmek aşağıdaki avantajları sağlar:

  • Cihaz SSO
  • Koşullu Erişim:
    • Intune Uygulama Koruması
    • Cihaz Kaydı (Çalışma Alanına Katılma)
    • Mobil Cihaz Yönetimi
  • Cihaz Genelinde Hesap Yönetimi
    • Android AccountManager & Account Ayarlar aracılığıyla
    • "İş Hesabı" - özel hesap türü

Android'de Microsoft Kimlik Doğrulama Aracısı, Microsoft Authenticator ve Intune Şirket Portalı uygulamalarında bulunan bir bileşendir.

Aşağıdaki diyagramda uygulamanız, MSAL ve Microsoft'un kimlik doğrulama aracıları arasındaki ilişki gösterilmektedir.

Diagram showing how an application relates to MSAL, broker apps, and the Android account manager.

Aracı barındıran uygulamaları yükleme

Aracı barındırma uygulamaları, cihaz sahibi tarafından herhangi bir zamanda uygulama mağazasından (genellikle Google Play Store) yüklenebilir. Ancak, bazı API'ler (kaynaklar) cihazların şunlar olmasını gerektiren Koşullu Erişim İlkeleri ile korunur:

  • Kayıtlı (çalışma alanına katılmış) ve/veya
  • Cihaz Yönetimi veya
  • Intune Uygulama Koruması'nda kayıtlı

Cihazda yüklü bir aracı uygulaması yoksa MSAL, uygulama etkileşimli olarak belirteç almaya çalıştığında kullanıcıya bir aracı uygulaması yüklemesini bildirir. Ardından uygulamanın, cihazı gerekli ilkeyle uyumlu hale getirme adımlarını gerçekleştirmesi gerekir.

Aracı yükleme ve kaldırmanın etkileri

Aracı yüklendiğinde

Bir aracı bir cihaza yüklendiğinde, sonraki tüm etkileşimli belirteç istekleri (çağrısı acquireToken()) MSAL tarafından yerel olarak değil aracı tarafından işlenir. Daha önce MSAL için kullanılabilir olan herhangi bir SSO durumu aracı tarafından kullanılamaz. Sonuç olarak, kullanıcının yeniden kimlik doğrulaması yapması veya cihaz tarafından bilinen mevcut hesap listesinden bir hesap seçmesi gerekir.

Aracı yüklemek için kullanıcının yeniden oturum açması gerekmez. Yalnızca kullanıcının bir MsalUiRequiredException sorunu çözmesi gerektiğinde bir sonraki istek aracıya gider. MsalUiRequiredException çeşitli nedenlerle oluşturulabilir ve etkileşimli olarak çözülmesi gerekir. Örneğin:

  • Kullanıcı hesabıyla ilişkili parolayı değiştirdi.
  • Kullanıcının hesabı artık koşullu erişim ilkesini karşılamıyor.
  • Kullanıcı, uygulamanın hesabıyla ilişkilendirilmesine ilişkin onayını iptal etti.

Birden çok aracı - Bir cihazda birden çok aracı yüklüyse, ilk yüklenen aracı her zaman etkin aracıdır. Bir cihazda yalnızca tek bir aracı etkin olabilir.

Aracı kaldırıldığında

Yalnızca bir aracı barındırma uygulaması yüklüyse ve uygulama kaldırıldıysa kullanıcının yeniden oturum açması gerekir. Etkin aracı kaldırılarak hesap ve ilişkili belirteçler cihazdan kaldırılır.

Intune Şirket Portalı yüklüyse ve etkin aracı olarak çalışıyorsa ve Microsoft Authenticator da yüklüyse, Intune Şirket Portalı (etkin aracı) kaldırılırsa kullanıcının yeniden oturum açması gerekir. Yeniden oturum açtıktan sonra Microsoft Authenticator uygulaması etkin aracı olur.

Aracıyla tümleştirme

Aracı için yeniden yönlendirme URI'sini oluşturma

İpucu

Bu makaledeki adımlar, başladığınız portala göre biraz değişiklik gösterebilir.

Aracıyla uyumlu bir yeniden yönlendirme URI'sini kaydetmeniz gerekir. Aracı için yeniden yönlendirme URI'sinde uygulamanızın paket adı ve uygulamanızın imzasının Base64 ile kodlanmış gösterimi bulunmalıdır.

Yeniden yönlendirme URI'sinin biçimi: msauth://<yourpackagename>/<base64urlencodedsignature>

Keytool kullanarak uygulamanızın imzalama anahtarlarını kullanarak Base64 kodlu imza karması oluşturabilir ve ardından bu karmayı kullanarak yeniden yönlendirme URI'nizi oluşturabilirsiniz.

Linux ve macOS:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Windows:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

Keytool ile imza karması oluşturduktan sonra Azure portalını kullanarak yeniden yönlendirme URI'sini oluşturun:

  1. Microsoft Entra yönetim merkezinde en azından bir Bulut Uygulaması Yönetici istrator olarak oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, Üst menüdeki Ayarlar simgesini kullanarak Dizinler + abonelikler menüsünden uygulama kaydını içeren kiracıya geçin.
  3. Kimlik>Uygulamaları'na> göz atın Uygulama kayıtları.
  4. Uygulamanızı seçin ve ardından Kimlik Doğrulaması>Platform>ekle Android'i seçin.
  5. Açılan Android uygulamanızı yapılandırın bölmesinde, daha önce oluşturduğunuz İmza karması ve bir Paket adı girin.
  6. Yapılandır düğmesini seçin.

Yeniden yönlendirme URI'si sizin için oluşturulur ve Android yapılandırma bölmesinin Yeniden Yönlendirme URI'si alanında görüntülenir.

Uygulamanızı imzalama hakkında daha fazla bilgi için bkz . Android Studio Kullanıcı Kılavuzu'nda uygulamanızı imzalama.

MSAL'yi aracı kullanacak şekilde yapılandırma

Uygulamanızda bir aracı kullanmak için aracı yeniden yönlendirmenizi yapılandırdığınıza dair bir kanıt oluşturmanız gerekir. Örneğin, MSAL yapılandırma dosyanıza aşağıdaki ayarları ekleyerek hem aracı etkin yeniden yönlendirme URI'nizi ekleyin hem de kaydettiğinizi belirtin:

"redirect_uri" : "<yourbrokerredirecturi>",
"broker_redirect_uri_registered": true

MSAL aracıyla iki şekilde iletişim kurar:

  • Aracı bağlı hizmeti
  • Android AccountManager

MSAL ilk olarak aracıya bağlı hizmeti kullanır çünkü bu hizmeti çağırmak herhangi bir Android izni gerektirmez. bağlı hizmete bağlama başarısız olursa, MSAL Android AccountManager API'sini kullanır. MSAL bunu yalnızca uygulamanıza zaten izin verilmişse "READ_CONTACTS" yapar.

hata koduyla "BROKER_BIND_FAILURE"bir MsalClientException alırsanız iki seçenek vardır:

  • Kullanıcıdan Microsoft Authenticator uygulaması ve Intune Şirket Portalı için güç iyileştirmesini devre dışı bırakmasını isteyin.
  • Kullanıcıdan izni vermesini "READ_CONTACTS" isteyin

Aracı tümleştirmeyi doğrulama

Aracı tümleştirmesinin çalıştığı hemen açık olmayabilir, ancak denetlemek için aşağıdaki adımları kullanabilirsiniz:

  1. Android cihazınızda aracıyı kullanarak bir isteği tamamlayın.
  2. Android cihazınızdaki ayarlarda, kimlik doğrulaması yaptığınız hesaba karşılık gelen yeni oluşturulan bir hesabı arayın. Hesap İş hesabı türünde olmalıdır.

Testi tekrarlamak istiyorsanız hesabı ayarlardan kaldırabilirsiniz.

Sistem tarayıcısı aracılığıyla SSO

Android uygulamaları kimlik doğrulaması kullanıcı deneyimi için , sistem tarayıcısını veya Chrome Özel Sekmelerini kullanma WEBVIEWseçeneğine sahiptir. Uygulama aracılı kimlik doğrulaması kullanmıyorsa, SSO'ya ulaşmak için yerel web görünümü yerine sistem tarayıcısını kullanması gerekir.

Yetkilendirme aracıları

Yetkilendirme aracıları için belirli bir strateji seçmek önemlidir ve uygulamaların özelleştirebileceği ek işlevleri temsil eder. 'WEBVIEW' kullanmanızı öneririz. Diğer confguration değerleri hakkında daha fazla bilgi edinmek için (bkz . Android MSAL yapılandırma dosyasını anlama.

MSAL, bir WEBVIEWveya sistem tarayıcısı kullanarak yetkilendirmeyi destekler. Aşağıdaki görüntüde, Özel Sekmeler ile veya Özel Sekmeler olmadan sistem tarayıcısını kullanarak WEBVIEWnasıl göründüğü gösterilmektedir:

MSAL login examples

SSO etkileri

Uygulama, aracılı kimlik doğrulaması ile uygulamayla tümleştirme yapmadan bir WEBVIEW strateji kullanıyorsa, kullanıcılar cihazda veya yerel uygulamalarla web uygulamaları arasında çoklu oturum açma deneyimine sahip olmaz.

Appplications, yetkilendirmek için kullanmak BROWSER üzere MSAL ile tümleştirilebilir. WEBVIEW'dan farklı olarak, BROWSER web veya Özel Sekmelerle tümleştirilmiş diğer yerel uygulamalarla daha az oturum açma olanağı sağlayan varsayılan sistem tarayıcısıyla bir tanımlama bilgisi jar'ı paylaşın.

Uygulama MSAL'yi Microsoft Authenticator veya Intune Şirket Portalı gibi bir aracıyla kullanıyorsa, kullanıcılar uygulamalardan biriyle etkin bir oturum açması varsa uygulamalar arasında SSO deneyimine sahip olabilir.

Not

Aracılı MSAL, WebView kullanır ve MSAL kitaplığını kullanan ve aracılı kimlik doğrulamasına katılan tüm uygulamalar için Çoklu Oturum Açma (SSO) sağlar. Aracıdan gelen SSO durumu, MSAL kullanmayan diğer uygulamalara genişletilmemiştir.

WebView

Uygulama içi WebView'ı kullanmak için, MSAL'ye geçirilen uygulama yapılandırması JSON'sine aşağıdaki satırı yerleştirin:

"authorization_user_agent" : "WEBVIEW"

kullanıcı, uygulama WEBVIEWiçinde kullanırken doğrudan uygulamada oturum açar. Belirteçler uygulamanın korumalı alanında tutulur ve uygulamanın tanımlama bilgisi jar'ının dışında kullanılamaz. Sonuç olarak, uygulamalar Authenticator veya Şirket Portalı ile tümleştirilmediği sürece kullanıcı uygulamalar arasında SSO deneyimine sahip olamaz.

Ancak, WEBVIEW oturum açma kullanıcı arabirimi için genel görünümü özelleştirme özelliği sağlar. Bu özelleştirmeyi yapma hakkında daha fazla bilgi için bkz . Android WebViews .

Tarayıcı

WebVIEW kullanmanızı öneririz, ancak tarayıcı ve özel sekme stratejisi kullanma seçeneği sunuyoruz. Özel yapılandırma dosyasında aşağıdaki JSON yapılandırmasını kullanarak bu stratejiyi açıkça belirtebilirsiniz:

"authorization_user_agent" : "BROWSER"

Cihazın tarayıcısı aracılığıyla SSO deneyimi sağlamak için bu yaklaşımı kullanın. MSAL, diğer yerel uygulamaların veya web uygulamalarının MSAL tarafından ayarlanan kalıcı oturum tanımlama bilgisini kullanarak cihazda SSO'ya ulaşmasını sağlayan paylaşılan bir tanımlama bilgisi jar kullanır.

Tarayıcı seçimi buluşsal

MSAL'nin geniş Android telefon dizisinin her birinde kullanılacak tam tarayıcı paketini belirtmesi mümkün olmadığından, MSAL en iyi cihazlar arası SSO'ları sağlamaya çalışan bir tarayıcı seçimi buluşsal özelliği uygular.

MSAL öncelikle paket yöneticisinden varsayılan tarayıcıyı alır ve test edilmiş bir güvenli tarayıcı listesinde olup olmadığını denetler. Aksi takdirde MSAL, güvenli listeden varsayılan olmayan başka bir tarayıcı başlatmak yerine Webview'ı kullanmaya geri döner. Özel sekmeleri destekleyip desteklemediğinden bağımsız olarak varsayılan tarayıcı seçilir. Tarayıcı Özel Sekmeleri destekliyorsa, MSAL Özel Sekme'yi başlatır. Özel Sekmeler, uygulama WebView içi bir görünüme ve kullanıma daha yakındır ve temel kullanıcı arabirimi özelleştirmesine izin verir. Daha fazla bilgi edinmek için bkz . Android'de Özel Sekmeler.

Cihazda tarayıcı paketi yoksa, MSAL uygulama WebViewiçi 'ni kullanır. Cihaz varsayılan ayarı değiştirilmezse, SSO deneyiminden emin olmak için her oturum açma için aynı tarayıcı başlatılmalıdır.

Test Edilmiş Tarayıcılar

Aşağıdaki tarayıcılar, yapılandırma dosyasında belirtilene doğru şekilde yeniden yönlendirilip yönlendirilmediğini görmek için "redirect_uri" test edilmiştir:

Cihaz Yerleşik Tarayıcı Chrome Opera Microsoft Edge UC Browser Firefox
Nexus 4 (API 17) Geçirmek Geçirmek geçerli değil geçerli değil geçerli değil geçerli değil
Samsung S7 (API 25) 1'i geç Geçirmek Geçirmek Geçirmek Başarısız Geçirmek
Vivo (API 26) Geçirmek Geçirmek Geçirmek Geçirmek Geçirmek Başarısız
Piksel 2 (API 26) Geçirmek Geçirmek Geçirmek Geçirmek Başarısız Geçirmek
Oppo Geçirmek geçerlideğil 2 geçerli değil geçerli değil geçerli değil geçerli değil
OnePlus (API 25) Geçirmek Geçirmek Geçirmek Geçirmek Başarısız Geçirmek
Nexus (API 28) Geçirmek Geçirmek Geçirmek Geçirmek Başarısız Geçirmek
MI Geçirmek Geçirmek Geçirmek Geçirmek Başarısız Geçirmek

1Samsung'un yerleşik tarayıcısı Samsung Internet'tir.
2Varsayılan tarayıcı Oppo cihaz ayarı içinde değiştirilemez.

Sonraki adımlar

Android cihazlar için paylaşılan cihaz modu, birden çok çalışan tarafından kolayca paylaşılabilmesi için bir Android cihazı yapılandırmanıza olanak tanır.