Hızlı Başlangıç: iOS veya macOS uygulamasından kullanıcılarda oturum açma ve Microsoft Graph'ı çağırma

Bu hızlı başlangıçta, yerel bir iOS veya macOS uygulamasının kullanıcılarda nasıl oturum açabileceğini ve Microsoft Graph API'sini çağırmak için erişim belirteci alabileceğini gösteren bir kod örneği indirip çalıştıracaksınız.

Hızlı başlangıç hem iOS hem de macOS uygulamaları için geçerlidir. Bazı adımlar yalnızca iOS uygulamaları için gereklidir ve bu şekilde belirtilir.

Önkoşullar

Örnek nasıl çalışır?

Bu hızlı başlangıç tarafından oluşturulan örnek uygulamanın nasıl çalıştığını gösteren diyagram.

Hızlı başlangıç uygulamanızı kaydetme

İpucu

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

Uygulamanızı kaydetmek ve uygulama kayıt bilgilerinizi çözümünüze el ile eklemek için şu adımları izleyin:

  1. Microsoft Entra yönetim merkezinde en azından Uygulama Geliştiricisi olarak oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, dizinler + abonelikler menüsünden uygulamayı kaydetmek istediğiniz kiracıya geçmek için üst menüdeki Ayarlar simgesini kullanın.
  3. Kimlik>Uygulamaları'na> göz atın Uygulama kayıtları.
  4. Yeni kayıt öğesini seçin.
  5. Uygulamanız için bir Ad girin. Uygulamanızın kullanıcıları bu adı görebilir ve daha sonra değiştirebilirsiniz.
  6. Kaydet'i seçin.
  7. Yönet'in altında, Kimlik Doğrulaması>Platform>Ekle iOS'ı seçin.
  8. Uygulamanız için Paket Tanımlayıcısı'nı girin. Paket tanımlayıcısı, uygulamanızı benzersiz olarak tanımlayan benzersiz bir dizedir, örneğin com.<yourname>.identitysample.MSALMacOS. Kullandığınız değeri not edin. iOS yapılandırmasının macOS uygulamaları için de geçerli olduğunu unutmayın.
  9. Yapılandır'ı seçin ve bu hızlı başlangıcın devamı için MSAL Yapılandırması ayrıntılarını kaydedin.
  10. Bitti'yi seçin.

2. Adım: Örnek projeyi indirme

3. Adım: Bağımlılıkları yükleme

  1. Sıkıştırılmış dosyayı ayıklayın.
  2. Terminal penceresinde indirilen kod örneğinin olduğu klasöre gidin ve en son MSAL kitaplığını yüklemek için komutunu çalıştırın pod install .

4. Adım: Projenizi yapılandırma

Yukarıdaki Seçenek 1'i seçtiyseniz, bu adımları atlayabilirsiniz.

  1. Projeyi XCode'da açın.

  2. ViewController.swift dosyasını düzenleyin ve 'let kClientID' ile başlayan satırı aşağıdaki kod parçacığıyla değiştirin. Değerini, bu hızlı başlangıcın başlarında uygulamanızı kaydederken kaydettiğiniz clientID ile güncelleştirmeyi kClientID unutmayın:

    let kClientID = "Enter_the_Application_Id_Here"
    
  3. Microsoft Entra ulusal bulutları için bir uygulama oluşturuyorsanız , 'let kGraphEndpoint' ve 'let kAuthority' ile başlayan satırı doğru uç noktalarla değiştirin. Genel erişim için varsayılan değerleri kullanın:

    let kGraphEndpoint = "https://graph.microsoft.com/"
    let kAuthority = "https://login.microsoftonline.com/common"
    
  4. Diğer uç noktalar burada belgelenmiştir. Örneğin, hızlı başlangıcı Microsoft Entra Germany ile çalıştırmak için aşağıdakileri kullanın:

    let kGraphEndpoint = "https://graph.microsoft.de/"
    let kAuthority = "https://login.microsoftonline.de/common"
    
  5. Proje ayarlarını açın. Kimlik bölümünde Paket Tanımlayıcısı'nı girin.

  6. Info.plist'e sağ tıklayın ve Kaynak Kodu Olarak>Aç'ı seçin.

  7. Dikte kök düğümü altında değerini portalda kullandığınız Paket Kimliği ile değiştirinEnter_the_bundle_Id_Here. Dizedeki msauth. öneklere dikkat edin.

    <key>CFBundleURLTypes</key>
    <array>
       <dict>
          <key>CFBundleURLSchemes</key>
          <array>
             <string>msauth.Enter_the_Bundle_Id_Here</string>
          </array>
       </dict>
    </array>
    
  8. Uygulamayı derleyin ve çalıştırın!

Daha Fazla Bilgi

Bu hızlı başlangıç hakkında daha fazla bilgi almak için şu bölümleri okuyun.

MSAL alma

MSAL (MSAL.framework), kullanıcıları oturum açmak ve Microsoft kimlik platformu tarafından korunan bir API'ye erişmek için kullanılan belirteçleri istemek için kullanılan kitaplıktır. Aşağıdaki işlemi uygulayarak uygulamanıza MSAL ekleyebilirsiniz:

$ vi Podfile

Bu podfile'a aşağıdakileri ekleyin (projenizin hedefiyle):

use_frameworks!

target 'MSALiOS' do
   pod 'MSAL'
end

CocoaPods yükleme komutunu çalıştırın:

pod install

MSAL'ı başlatma

Şu kodu ekleyerek MSAL başvurusunu ekleyebilirsiniz:

import MSAL

Sonra da şu kodu kullanarak MSAL başlatın:

let authority = try MSALAADAuthority(url: URL(string: kAuthority)!)

let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID, redirectUri: nil, authority: authority)
self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
Where: Açıklama
clientId portal.azure.com adresinde kayıtlı uygulamaya ait Uygulama Kimliği
authority Microsoft kimlik platformu. Çoğu durumda bu https://login.microsoftonline.com/common
redirectUri Uygulamanın yeniden yönlendirme URI'si. Varsayılan değeri veya özel yeniden yönlendirme URI'nizi kullanmak için 'nil' geçirebilirsiniz.

Yalnızca iOS için ek uygulama gereksinimleri

Uygulamanızın da içinde AppDelegateaşağıdakiler olmalıdır. Bu, kimlik doğrulaması yaptığınızda MSAL SDK'sının Kimlik Doğrulama aracısı uygulamasından belirteç yanıtını işlemesine olanak tanır.

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {

    return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String)
}

Not

iOS 13+ üzerinde, yerine benimsediyseniz UISceneDelegate bu kodu geri çağırmaya scene:openURLContexts: yerleştirin (Apple belgelerine bakın).UIApplicationDelegate Eski iOS ile uyumluluk için hem UISceneDelegate hem de UIApplicationDelegate'i destekliyorsanız, MSAL geri çağırmanın her iki yere de yerleştirilmesi gerekir.

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {

   guard let urlContext = URLContexts.first else {
      return
   }

   let url = urlContext.url
   let sourceApp = urlContext.options.sourceApplication

   MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: sourceApp)
}

Son olarak, uygulamanızın Info.plist dosyasında ile birlikte CFBundleURLTypesbir LSApplicationQueriesSchemes girişi olmalıdır. Örnek, bu bilgilerle birlikte gelir.

<key>LSApplicationQueriesSchemes</key>
<array>
   <string>msauthv2</string>
   <string>msauthv3</string>
</array>

Oturum açma kullanıcıları & istek belirteçleri

Belirteç almak için MSAL’in iki yöntemi vardır: acquireToken ve acquireTokenSilent.

acquireToken: Etkileşimli olarak belirteç alma

Bazı durumlarda kullanıcıların Microsoft kimlik platformu etkileşim kurması gerekir. Böyle durumlarda, son kullanıcının hesabını seçmesi, kimlik bilgilerini girmesi veya uygulamanızın izinlerini onaylaması gerekebilir. Örneğin,

  • Kullanıcılar uygulamada ilk kez oturum açtığında
  • Bir kullanıcı parolasını sıfırlarsa, kimlik bilgilerini girmesi gerekir
  • Uygulamanız bir kaynağa ilk kez erişim istediğinde
  • MFA veya diğer Koşullu Erişim ilkeleri gerektiğinde
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParamaters!)
self.applicationContext!.acquireToken(with: parameters) { (result, error) in /* Add your handling logic */}
Where: Açıklama
scopes İstenen kapsamları içerir (microsoft [ "user.read" ] graph veya [ "<Application ID URL>/scope" ] özel web API'leri için (api://<Application ID>/access_as_user))

acquireTokenSilent: Erişim belirtecini sessizce alma

Uygulamalar, kullanıcılarının her belirteç isteğinde bulunduklarında oturum açmalarını gerektirmemelidir. Kullanıcı zaten oturum açmışsa, bu yöntem uygulamaların sessizce belirteç istemesine olanak tanır.

self.applicationContext!.getCurrentAccount(with: nil) { (currentAccount, previousAccount, error) in

   guard let account = currentAccount else {
      return
   }

   let silentParams = MSALSilentTokenParameters(scopes: self.kScopes, account: account)
   self.applicationContext!.acquireTokenSilent(with: silentParams) { (result, error) in /* Add your handling logic */}
}
Where: Açıklama
scopes İstenen kapsamları içerir (microsoft [ "user.read" ] graph veya [ "<Application ID URL>/scope" ] özel web API'leri için (api://<Application ID>/access_as_user))
account Belirtecin istenildiği hesap. Bu hızlı başlangıç tek bir hesap uygulaması hakkındadır. Çok hesaplı bir uygulama oluşturmak istiyorsanız, kullanarak ve doğru geçiş yaparak belirteç istekleri accountsFromDeviceForParameters:completionBlock: için hangi hesabın kullanılacağını belirlemek için mantık tanımlamanız gerekir accountIdentifier

Yardım ve destek 

Yardıma ihtiyacınız varsa, bir sorunu bildirmek veya destek seçenekleriniz hakkında bilgi edinmek istiyorsanız bkz . Geliştiriciler için yardım ve destek.

Sonraki adımlar

Microsoft kimlik platformu erişim belirtecini alan ve Microsoft Graph API'sini çağırmak için kullanan bir iOS veya macOS uygulaması oluşturduğunuz adım adım öğreticiye geçin.