Bagikan melalui


Mulai cepat: Memasukkan pengguna dan memanggil Microsoft Graph API dari aplikasi iOS atau macOS

Selamat Datang! Ini mungkin bukan halaman yang Anda inginkan. Sementara kami bekerja memperbaikinya, tautan ini akan membawa Anda ke artikel yang tepat:

Mulai cepat: Memasukkan pengguna dan memanggil Microsoft Graph dari aplikasi iOS atau macOS

Kami mohon maaf atas ketidaknyamanan ini dan menghargai kesabaran Anda selama kami menyelesaikan masalah ini.

Di mulai cepat ini, Anda mengunduh dan menjalankan sampel kode yang menunjukkan bagaimana aplikasi iOS atau macOS asli dapat masuk pengguna dan mendapatkan token akses untuk memanggil Microsoft Graph API.

Mulai cepat berlaku untuk app iOS dan macOS. Beberapa langkah hanya diperlukan untuk aplikasi iOS dan akan ditunjukkan seperti itu.

Prasyarat

Cara kerja sampel

Memperlihatkan cara kerja aplikasi sampel yang dihasilkan oleh pekerjaan mulai cepat ini

Langkah 1: Konfigurasikan aplikasi Anda

Agar sampel kode mulai cepat ini berfungsi, tambahkan URI Pengalihan yang kompatibel dengan broker Auth.

Sudah dikonfigurasi Aplikasi Anda dikonfigurasi dengan atribut ini

Langkah 2: Unduh contoh proyek

Langkah 3: Instal dependensi

  1. Ekstrak file zip.
  2. Di jendela terminal, navigasi ke folder dengan sampel kode yang diunduh dan jalankan pod install untuk menginstal pustaka MSAL terbaru.

Langkah 4: Aplikasi Anda dikonfigurasi dan siap dijalankan

Kami telah mengonfigurasi proyek Anda dengan nilai properti aplikasi Anda dan siap dijalankan.

Catatan

Enter_the_Supported_Account_Info_Here

  1. Jika Anda membangun aplikasi untuk cloud nasional Microsoft Entra, ganti baris yang dimulai dengan 'let kGraphEndpoint' dan 'let kAuthority' dengan titik akhir yang benar. Untuk akses global, gunakan nilai default:

    let kGraphEndpoint = "https://graph.microsoft.com/"
    let kAuthority = "https://login.microsoftonline.com/common"
    
  2. Titik akhir lainnya didokumentasikan di sini. Misalnya, untuk menjalankan mulai cepat dengan Microsoft Entra Jerman, gunakan hal berikut:

    let kGraphEndpoint = "https://graph.microsoft.de/"
    let kAuthority = "https://login.microsoftonline.de/common"
    
  3. Buka pengaturan proyek. Di bagian Identitas, masukkan Pengidentifikasi Bundel yang Anda masukkan ke portal.

  4. Klik kanan Info.plist dan pilih Buka Sebagai>Kode Sumber.

  5. Di bawah dict root node, ganti Enter_the_bundle_Id_Here dengan Id Bundel yang Anda gunakan di portal. Perhatikan prefiks msauth. pada string.

    <key>CFBundleURLTypes</key>
    <array>
       <dict>
          <key>CFBundleURLSchemes</key>
          <array>
             <string>msauth.Enter_the_Bundle_Id_Here</string>
          </array>
       </dict>
    </array>
    
  6. Membuat dan menjalankan aplikasi!

Informasi Selengkapnya

Baca bagian ini untuk mempelajari lebih lanjut tentang mulai cepat ini.

Mendapatkan MSAL

MSAL (MSAL.framework) adalah pustaka yang digunakan untuk masuk pengguna dan meminta token yang digunakan untuk mengakses API yang dilindungi oleh platform identitas Microsoft. Anda dapat menambahkan MSAL ke aplikasi Anda menggunakan proses berikut:

$ vi Podfile

Tambahkan yang berikut ke podfile ini (dengan target proyek Anda):

use_frameworks!

target 'MSALiOS' do
   pod 'MSAL'
end

Jalankan perintah instalasi CocoaPods:

pod install

Menginisialisasi MSAL

Anda bisa menambahkan referensi untuk MSAL dengan menambahkan kode berikut:

import MSAL

Lalu, inisialisasi MSAL menggunakan kode berikut:

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

let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID, redirectUri: nil, authority: authority)
self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
Mana: Deskripsi
clientId ID Aplikasi dari aplikasi yang terdaftar di portal.azure.com
authority Platform identitas Microsoft. Di kebanyakan kasus, hal ini akan https://login.microsoftonline.com/common>
redirectUri URI pengalihan aplikasi. Anda dapat meneruskan 'nihil' untuk menggunakan nilai default, atau URI pengalihan kustom Anda.

Hanya untuk iOS, persyaratan aplikasi tambahan

Aplikasi Anda juga harus memiliki hal berikut di aplikasi AndaAppDelegate. Yang memungkinkan MSAL SDK menangani respons token dari aplikasi broker Auth ketika Anda melakukan autentikasi.

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

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

Catatan

Di iOS 13+, jika Anda mengadopsi UISceneDelegate alih-alih UIApplicationDelegate, meletakkan kode ini scene:openURLContexts: ke dalam callback sebagai gantinya (Lihat dokumentasi Apple). Jika Anda mendukung UISceneDelegate dan UIApplicationDelegate untuk kompatibilitas dengan iOS yang lebih lama, callback MSAL perlu ditempatkan ke kedua tempat.

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)
}

Akhirnya, aplikasi Anda harus memiliki LSApplicationQueriesSchemes entri di Info.plist Anda bersama CFBundleURLTypes. Sampel datang dengan disertai entri.

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

Masuk pengguna & meminta token

MSAL memiliki dua metode yang digunakan untuk memperoleh token: acquireToken dan acquireTokenSilent.

acquireToken: Mendapatkan token secara interaktif

Beberapa situasi mengharuskan pengguna untuk berinteraksi dengan platform identitas Microsoft. Dalam kasus ini, pengguna akhir mungkin diharuskan untuk memilih akun mereka, memasukkan kredensial mereka, atau menyetujui izin aplikasi Anda. Contohnya,

  • Pertama kali pengguna masuk ke aplikasi
  • Jika pengguna mengatur ulang kata sandi, mereka harus memasukkan kredensial mereka
  • Ketika aplikasi Anda meminta akses ke sumber daya untuk pertama kalinya
  • Ketika MFA atau kebijakan Akses Bersyarat lainnya diperlukan
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParamaters!)
self.applicationContext!.acquireToken(with: parameters) { (result, error) in /* Add your handling logic */}
Mana: Deskripsi
scopes Berisi cakupan yang diminta (yaitu, [ "user.read" ] untuk Microsoft Graph atau [ "<Application ID URL>/scope" ] untuk API web kustom (api://<Application ID>/access_as_user))

acquireTokenSilent: Mendapatkan token akses secara diam-diam

Aplikasi seharusnya tidak mengharuskan pengguna mereka untuk masuk setiap kali mereka meminta token. Jika pengguna sudah masuk, metode ini memungkinkan aplikasi untuk meminta token secara diam-diam.

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 */}
}
Mana: Deskripsi
scopes Berisi cakupan yang diminta (yaitu, untuk [ "user.read" ] Microsoft Graph atau [ "<Application ID URL>/scope" ] untuk API web kustom (api://<Application ID>/access_as_user)
account Akun yang diminta oleh token. Mulai cepat ini diperuntukkan untuk satu aplikasi akun. Jika ingin membuat aplikasi multi-akun, Anda harus menentukan logika untuk mengidentifikasi akun mana yang digunakan untuk permintaan token menggunakan accountsFromDeviceForParameters:completionBlock: dan meneruskan dengan benar accountIdentifier

Bantuan dan dukungan

Jika Anda memerlukan bantuan, ingin melaporkan masalah, atau ingin mempelajari opsi dukungan, lihat Bantuan dan dukungan bagi pengembang.

Langkah berikutnya

Beralih ke tutorial langkah demi langkah di mana Anda membangun aplikasi iOS atau macOS yang mendapatkan token akses dari platform identitas Microsoft dan menggunakannya untuk memanggil Microsoft Graph API.