Aracılığıyla paylaş


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

Hoş geldiniz! Bu muhtemelen beklediğiniz sayfa değildir. Bir düzeltme üzerinde çalışırken bu bağlantı sizi doğru makaleye götürmelidir:

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

Bu sorun için özür dileriz ve bu sorunu çözmek için çalışırken sabrınızı takdir ediyoruz.

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österir

1. Adım: Uygulamanızı yapılandırma

Bu hızlı başlangıcın kod örneğinin çalışması için Kimlik Doğrulama aracısı ile uyumlu bir Yeniden Yönlendirme URI'sini ekleyin.

Zaten yapılandırılmış Uygulamanız bu özniteliklerle yapılandırılmış

2. Adım: Örnek projeyi indirme

iOS için kod örneğini indirme

macOS için kod örneğini indirme

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

  1. Zip dosyasını ayıklayın.
  2. Terminal penceresinde indirilen kod örneğini içeren klasöre gidin ve en son MSAL kitaplığını yüklemek için pod install çalıştırın.

4. Adım: Uygulamanız yapılandırılmış ve çalışmaya hazır

Projenizi uygulamanızın özelliklerinin değerleriyle yapılandırdık ve çalışmaya hazır.

Uyarı

Enter_the_Supported_Account_Info_Here

  1. 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"
    
  2. Diğer uç noktalar buradabelgelenmiş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"
    
  3. Proje ayarlarını açın. Kimlik bölümünde portala girdiğiniz Paket Tanımlayıcısı'nı girin.

  4. Info.plist üzerine sağ tıklayın ve Olarak Aç>Kaynak Koduseçeneğini seçin.

  5. Dikte kök düğümü altında, portalda kullandığınız Paket Kimliği Enter_the_bundle_Id_Here yerine koyun. Dizedeki msauth. ön ekine dikkat edin.

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

Daha Fazla Bilgi

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

MSAL'i İndir

MSAL (MSAL.framework), kullanıcıların oturumunu 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 kullanarak 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

Aşağıdaki kodu ekleyerek MSAL için referans ekleyebilirsiniz:

import MSAL

Ardından aşağıdaki kodu kullanarak MSAL'yi 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)
Nerede: Açıklama
clientId portal.azure.com adresinde kayıtlı uygulamanın 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 AppDelegateiçinde aşağıdakilere sahip olması gerekir. Bu, kimlik doğrulaması yaptığınızda MSAL SDK'sının yetkilendirme 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)
}

Uyarı

iOS 13+ üzerinde, UISceneDelegateyerine UIApplicationDelegate benimserseniz, bu kodu scene:openURLContexts: geri çağırma işlevine yerleştirin (Bkz. Apple'ın belgeleri). 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 LSApplicationQueriesSchemesyanında bir CFBundleURLTypes girişi olmalıdır. Örnek, bu bilgilerle birlikte gelir.

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

Kullanıcılar & oturum açarak belirteç talep eder.

MSAL,belirteçleri almak için kullanılan iki yönteme sahiptir: acquireToken ve acquireTokenSilent.

acquireToken: Etkileşimli olarak belirteç elde etme

Bazı durumlarda kullanıcıların Microsoft kimlik platformuyla 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

  • Uygulamaya ilk kez kullanıcılar 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.webViewParameters!)
self.applicationContext!.acquireToken(with: parameters) { (result, error) in /* Add your handling logic */}
Nerede: Açıklama
scopes İstenen kapsamları içerir (yani, Microsoft Graph için [ "user.read" ] veya özel web API'leri için [ "<Application ID URL>/scope" ] (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 */}
}
Nerede: Açıklama
scopes İstenen kapsamları içerir (Microsoft Graph için [ "user.read" ] veya özel web API'leri için [ "<Application ID URL>/scope" ] (api://<Application ID>/access_as_user)
account Hesap için belirteç talep ediliyor. Bu hızlı başlangıç, yalnızca bir hesap uygulamasıyla ilgilidir. Birden fazla hesabı olan bir uygulama oluşturmak istiyorsanız, hangi hesabın token istekleri için kullanılacağını belirlemek adına mantık tanımlamanız ve accountsFromDeviceForParameters:completionBlock: kullanarak doğru accountIdentifier'i geçirmeniz gerekir.

Yardım ve destek

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

Sonraki adımlar

Microsoft kimlik platformundan erişim belirteci alan ve bunu Microsoft Graph API'sini çağırmak için kullanan bir iOS veya macOS uygulaması oluşturacağınız adım adım kılavuza geçiş yapın.