Memasukkan pengguna dan memanggil API dalam contoh aplikasi seluler iOS dengan menggunakan autentikasi asli
Sampel ini menunjukkan cara mengonfigurasi aplikasi sampel iOS untuk memanggil API web ASP.NET Core.
Prasyarat
Mendaftarkan aplikasi API web
Masuk ke pusat admin Microsoft Entra setidaknya sebagai Pengembang Aplikasi.
Jika Anda memiliki akses ke beberapa penyewa, gunakan ikon Pengaturan di menu atas untuk beralih ke penyewa eksternal Anda dari menu Direktori + langganan.
Telusuri Aplikasi >Identitas>Pendaftaran aplikasi.
Pilih + Pendaftaran baru.
Di halaman Daftarkan aplikasi yang muncul, masukkan informasi pendaftaran aplikasi Anda:
Di bagian Nama, masukkan nama aplikasi yang bermakna yang akan ditampilkan kepada pengguna aplikasi, misalnya ciam-ToDoList-api.
Di bawah Jenis akun yang didukung, pilih Hanya akun dalam direktori organisasi ini.
Pilih Daftar untuk membuat aplikasi.
Panel Gambaran Umum aplikasi ditampilkan saat pendaftaran selesai. Rekam ID Direktori (penyewa) dan ID Aplikasi (klien) yang akan digunakan dalam kode sumber aplikasi Anda.
Mengonfigurasi cakupan API
API perlu menerbitkan minimal satu cakupan, juga disebut Izin Yang Didelegasikan, agar aplikasi klien mendapatkan token akses bagi pengguna dengan sukses. Untuk menerbitkan cakupan, ikuti langkah-langkah berikut:
Dari halaman Pendaftaran aplikasi, pilih aplikasi API yang Anda buat (ciam-ToDoList-api) untuk membuka halaman Gambaran Umumnya.
Di bagian Kelola, pilih Ekspos API.
Di bagian atas halaman, di samping URI ID Aplikasi, pilih tautan Tambahkan untuk menghasilkan URI yang unik untuk aplikasi ini.
Terima URI ID Aplikasi yang diusulkan seperti
api://{clientId}
, dan pilih Simpan. Saat aplikasi web Anda meminta token akses untuk API web, aplikasi web menambahkan URI sebagai awalan untuk setiap cakupan yang Anda tentukan untuk API.Di bagian Cakupan yang ditentukan oleh API ini, pilih Tambahkan cakupan.
Masukkan nilai berikut yang menentukan akses baca ke API, lalu pilih Tambahkan cakupan untuk menyimpan perubahan Anda:
Properti Nilai Nama cakupan ToDoList.Read Siapa yang dapat menyetujui Hanya Admin Nama tampilan persetujuan admin Membaca daftar Pengguna ToDo menggunakan 'TodoListApi' Deskripsi persetujuan admin Izinkan aplikasi membaca daftar ToDo pengguna menggunakan 'TodoListApi'. Status Diaktifkan Pilih Tambahkan cakupan lagi, dan masukkan nilai berikut yang menentukan cakupan akses baca dan tulis ke API. Pilih Tambahkan cakupan untuk menyimpan perubahan Anda:
Properti Nilai Nama cakupan ToDoList.ReadWrite Siapa yang dapat menyetujui Hanya Admin Nama tampilan persetujuan admin Membaca dan menulis daftar ToDo pengguna menggunakan 'ToDoListApi' Deskripsi persetujuan admin Izinkan aplikasi membaca dan menulis daftar ToDo pengguna menggunakan 'ToDoListApi' Status Diaktifkan Di bawah Kelola, pilih Manifes untuk membuka editor manifes API.
Atur
accessTokenAcceptedVersion
properti ke2
.Pilih Simpan.
Pelajari selengkapnya tentang prinsip hak istimewa paling sedikit saat menerbitkan izin untuk API web.
Mengonfigurasi peran aplikasi
API perlu menerbitkan minimal satu peran aplikasi untuk aplikasi, juga disebut Izin Aplikasi, agar aplikasi klien mendapatkan token akses sebagai diri mereka sendiri. Izin aplikasi adalah jenis izin yang harus diterbitkan API ketika mereka ingin memungkinkan aplikasi klien berhasil mengautentikasi sebagai diri mereka sendiri dan tidak perlu memasukkan pengguna. Untuk menerbitkan izin aplikasi, ikuti langkah-langkah berikut:
Dari halaman Pendaftaran aplikasi, pilih aplikasi yang Anda buat (seperti ciam-ToDoList-api) untuk membuka halaman Gambaran Umumnya.
Di bawah Kelola, pilih Peran aplikasi.
Pilih Buat peran aplikasi, lalu masukkan nilai berikut, lalu pilih Terapkan untuk menyimpan perubahan Anda:
Properti Nilai Nama tampilan ToDoList.Read.All Jenis anggota yang diizinkan Aplikasi Nilai ToDoList.Read.All Deskripsi Izinkan aplikasi membaca daftar ToDo setiap pengguna menggunakan 'TodoListApi' Pilih Buat peran aplikasi lagi, lalu masukkan nilai berikut untuk peran aplikasi kedua, lalu pilih Terapkan untuk menyimpan perubahan Anda:
Properti Nilai Nama tampilan ToDoList.ReadWrite.All Jenis anggota yang diizinkan Aplikasi Nilai ToDoList.ReadWrite.All Deskripsi Izinkan aplikasi membaca dan menulis daftar ToDo setiap pengguna menggunakan 'ToDoListApi'
Konfigurasikan klaim opsional
Anda dapat mengklaim opsional idtyp untuk membantu API web menentukan apakah token adalah token aplikasi atau token aplikasi + pengguna. Meskipun Anda dapat menggunakan kombinasi klaim scp dan peran untuk tujuan yang sama, menggunakan klaim idtyp adalah cara term mudah untuk memberi tahu token aplikasi dan token aplikasi + pengguna terpisah. Misalnya, nilai klaim ini adalah aplikasi saat token adalah token khusus aplikasi.
Memberikan izin API ke aplikasi sampel iOS
Setelah mendaftarkan aplikasi klien dan API web dan telah mengekspos API dengan membuat cakupan, Anda dapat mengonfigurasi izin klien ke API dengan mengikuti langkah-langkah berikut:
Dari halaman Pendaftaran aplikasi, pilih aplikasi yang Anda buat (seperti ciam-client-app) untuk membuka halaman Gambaran Umumnya.
Di bagian Kelola, pilih Izin API.
Di Izin yang dikonfigurasi, pilih Tambahkan izin.
Pilih tab API yang digunakan organisasi saya.
Dalam daftar API, pilih API seperti ciam-ToDoList-api.
Pilih opsi Izin yang didelegasikan.
Dari daftar izin, pilih ToDoList.Read, ToDoList.ReadWrite (gunakan kotak pencarian jika perlu).
Pilih tombol Tambahkan izin akses.
Pada titik ini, Anda telah menetapkan izin dengan benar. Namun, karena penyewa adalah penyewa pelanggan, pengguna konsumen itu sendiri tidak dapat menyetujui izin ini. Untuk mengatasi hal ini, Anda sebagai admin harus menyetujui izin ini atas nama semua pengguna di penyewa:
Pilih Berikan persetujuan admin untuk <nama> penyewa Anda, lalu pilih Ya.
Pilih Refresh, lalu verifikasi bahwa Diberikan untuk <nama> penyewa Anda muncul di bawah Status untuk kedua izin.
Dari daftar Izin yang dikonfigurasi, pilih izin ToDoList.Read dan ToDoList.ReadWrite, satu per satu, lalu salin URI lengkap izin untuk digunakan nanti. URI izin lengkap terlihat mirip dengan
api://{clientId}/{ToDoList.Read}
atauapi://{clientId}/{ToDoList.ReadWrite}
.
Mengkloning atau mengunduh sampel API web
Untuk mendapatkan aplikasi sampel, Anda dapat mengkloningnya dari GitHub atau mengunduhnya sebagai file .zip.
Untuk mengkloning sampel, buka prompt perintah dan navigasi ke tempat Anda ingin membuat proyek, dan masukkan perintah berikut:
git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
Unduh file .zip. Ekstrak ke jalur file di mana panjang nama kurang dari 260 karakter.
Mengonfigurasi dan menjalankan contoh API web
Di editor kode Anda, buka
2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json
file.Temukan tempat penampung:
Enter_the_Application_Id_Here
dan ganti dengan ID Aplikasi (klien) API web yang Anda salin sebelumnya.Enter_the_Tenant_Id_Here
dan ganti dengan ID Direktori (penyewa) yang Anda salin sebelumnya.Enter_the_Tenant_Subdomain_Here
dan ganti dengan subdomain Direktori (penyewa). Misalnya, jika domain utama penyewa Anda adalahcontoso.onmicrosoft.com
, gunakancontoso
. Jika Anda tidak memiliki nama penyewa, pelajari cara membaca detail penyewa Anda.
Anda perlu menghosting API web Anda untuk aplikasi sampel iOS untuk memanggilnya. Ikuti Mulai Cepat: Menyebarkan aplikasi web ASP.NET untuk menyebarkan API web Anda.
Mengonfigurasi contoh aplikasi seluler iOS untuk memanggil API web
Sampel ini memungkinkan Anda mengonfigurasi beberapa titik akhir URL API Web dan serangkaian cakupan. Dalam hal ini, Anda hanya mengonfigurasi satu titik akhir URL API Web dan cakupan terkaitnya.
Di Xcode Anda, buka
/NativeAuthSampleApp/ProtectedAPIViewController.swift
file. Jika Anda menggunakan macOS, berikut adalah sampel file kode ProtectedAPIViewController.swift .Temukan
protectedAPIUrl1
dan masukkan URL API web Anda sebagai nilainya.let protectedAPIUrl1: String? = nil // Developers should set the respective URL of their web API here. For example let protectedAPIUrl1: String? = "https://api.example.com/v1/resource"
Temukan
protectedAPIScopes1
dan atur cakupan yang direkam di Berikan izin API ke aplikasi sampel iOS.let protectedAPIScopes1: [String] = [] // Developers should set the respective scopes of their web API here.For example, let protectedAPIScopes = ["api://{clientId}/{ToDoList.Read}","api://{clientId}/{ToDoList.ReadWrite}"]
Menjalankan aplikasi sampel iOS dan memanggil API web
Untuk membuat dan menjalankan aplikasi Anda, ikuti langkah-langkah berikut:
- Untuk membuat dan menjalankan kode Anda, pilih Jalankan dari menu Produk di Xcode. Setelah build berhasil, Xcode akan meluncurkan aplikasi sampel di Simulator.
- Pilih tab API untuk menguji panggilan API. Panggilan yang berhasil ke API web mengembalikan HTTP
200
, sementara HTTP403
menandakan akses yang tidak sah.