Single sign-on dengan AWS SDK for .NET - AWS SDK for .NET

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Single sign-on dengan AWS SDK for .NET

AWS IAM Identity Centeradalah layanan single sign-on (SSO) berbasis cloud yang memudahkan pengelolaan akses SSO secara terpusat ke semua aplikasi Anda dan cloud. Akun AWS Untuk detail selengkapnya, lihat Panduan Pengguna Pusat Identitas IAM.

Jika Anda tidak terbiasa dengan cara SDK berinteraksi dengan IAM Identity Center, lihat informasi berikut.

Pada tingkat tinggi, SDK berinteraksi dengan IAM Identity Center dengan cara yang mirip dengan pola berikut:

  1. IAM Identity Center dikonfigurasi, biasanya melalui konsol IAM Identity Center, dan pengguna SSO diundang untuk berpartisipasi.

  2. AWSconfigFile bersama di komputer pengguna diperbarui dengan informasi SSO.

  3. Pengguna masuk melalui IAM Identity Center dan diberikan kredensi jangka pendek untuk izin AWS Identity and Access Management (IAM) yang telah dikonfigurasi untuk mereka. Masuk ini dapat dimulai melalui alat non-SDK sepertiAWS CLI, atau secara terprogram melalui aplikasi.NET.

  4. Pengguna melanjutkan untuk melakukan pekerjaan mereka. Ketika mereka menjalankan aplikasi lain yang menggunakan SSO, mereka tidak perlu masuk lagi untuk membuka aplikasi.

Sisa topik ini memberikan informasi referensi untuk pengaturan dan penggunaanAWS IAM Identity Center. Ini memberikan informasi tambahan dan lebih maju daripada pengaturan SSO dasar di. Konfigurasikan otentikasi SDK Jika Anda baru mengenal SSOAWS, Anda mungkin ingin melihat topik itu terlebih dahulu untuk informasi mendasar, dan kemudian pada tutorial berikut untuk melihat SSO beraksi:

Topik ini berisi bagian-bagian berikut:

Prasyarat

Sebelum menggunakan IAM Identity Center, Anda harus melakukan tugas-tugas tertentu, seperti memilih sumber identitas dan mengkonfigurasi yang relevan Akun AWS dan aplikasi. Untuk informasi tambahan, lihat hal berikut:

  • Untuk informasi umum tentang tugas-tugas ini, lihat Memulai di Panduan Pengguna Pusat Identitas IAM.

  • Untuk contoh tugas tertentu, lihat daftar tutorial di akhir topik ini. Namun, pastikan untuk meninjau informasi dalam topik ini sebelum mencoba tutorial.

Menyiapkan profil SSO

Setelah Pusat Identitas IAM dikonfigurasi dalam yang relevanAkun AWS, profil bernama untuk SSO harus ditambahkan ke file bersama AWS config pengguna. Profil ini digunakan untuk terhubung ke portal AWS akses, yang mengembalikan kredensi jangka pendek untuk izin IAM yang telah dikonfigurasi untuk pengguna.

configFile bersama biasanya dinamai %USERPROFILE%\.aws\config di Windows dan ~/.aws/config di Linux dan macOS. Anda dapat menggunakan editor teks pilihan Anda untuk menambahkan profil baru untuk SSO. Atau, Anda dapat menggunakan aws configure sso perintah. Untuk informasi selengkapnya tentang perintah ini, lihat Mengonfigurasi AWS CLI untuk menggunakan Pusat Identitas IAM di AWS Command Line Interface Panduan Pengguna.

Profil baru ini mirip dengan yang berikut:

[profile my-sso-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-west-2 sso_account_id = 123456789012 sso_role_name = SSOReadOnlyRole

Pengaturan untuk profil baru didefinisikan di bawah ini. Dua pengaturan pertama menentukan portal AWS akses. Dua pengaturan lainnya adalah pasangan yang, secara bersama-sama, menentukan izin yang telah dikonfigurasi untuk pengguna. Keempat pengaturan diperlukan.

sso_start_url

URL yang mengarah ke portal AWS akses organisasi. Untuk menemukan nilai ini, buka konsol Pusat Identitas IAM, pilih Pengaturan, dan temukan URL portal.

sso_region

Wilayah AWSYang berisi host portal akses. Ini adalah Wilayah yang dipilih saat Anda mengaktifkan Pusat Identitas IAM. Ini bisa berbeda dari Wilayah yang Anda gunakan untuk tugas lain.

Untuk daftar lengkap Wilayah AWS dan kodenya, lihat Titik Akhir Regional di. Referensi Umum Amazon Web

sso_account_id

ID dari sebuah Akun AWS yang ditambahkan melalui AWS Organizations layanan. Untuk melihat daftar akun yang tersedia, buka konsol Pusat Identitas IAM dan buka Akun AWShalaman. ID akun yang Anda pilih untuk pengaturan ini akan sesuai dengan nilai yang Anda rencanakan untuk diberikan ke sso_role_name pengaturan, yang ditampilkan berikutnya.

sso_role_name

Nama set izin Pusat Identitas IAM. Set izin ini mendefinisikan izin yang diberikan pengguna melalui IAM Identity Center.

Prosedur berikut adalah salah satu cara untuk menemukan nilai untuk pengaturan ini.

  1. Buka konsol Pusat Identitas IAM dan buka Akun AWShalaman.

  2. Pilih akun untuk menampilkan detailnya. Akun yang Anda pilih akan menjadi akun yang berisi pengguna atau grup SSO yang ingin Anda berikan izin SSO.

  3. Lihatlah daftar pengguna dan grup yang ditugaskan ke akun dan temukan pengguna atau grup yang diminati. Set izin yang Anda tentukan dalam sso_role_name pengaturan adalah salah satu set yang terkait dengan pengguna atau grup ini.

Saat memberikan nilai pada setelan ini, gunakan nama set izin, bukan Nama Sumber Daya Amazon (ARN).

Set izin memiliki kebijakan IAM dan kebijakan izin khusus yang dilampirkan padanya. Untuk informasi selengkapnya, lihat Set izin di Panduan Pengguna Pusat Identitas IAM.

Menghasilkan dan menggunakan token SSO

Untuk menggunakan SSO, pengguna harus terlebih dahulu membuat token sementara dan kemudian menggunakan token itu untuk mengakses AWS aplikasi dan sumber daya yang sesuai. Untuk aplikasi.NET, Anda dapat menggunakan metode berikut untuk menghasilkan dan menggunakan token sementara ini:

  • Buat aplikasi.NET yang menghasilkan token terlebih dahulu, jika perlu, lalu gunakan token.

  • Hasilkan token dengan AWS CLI dan kemudian gunakan token di aplikasi.NET.

Metode ini dijelaskan di bagian berikut dan ditunjukkan dalam tutorial.

penting

Aplikasi Anda harus mereferensikan NuGet paket-paket berikut agar resolusi SSO dapat berfungsi:

  • AWSSDK.SSO

  • AWSSDK.SSOOIDC

Kegagalan untuk mereferensikan paket-paket ini akan menghasilkan pengecualian runtime.

Bagian ini menunjukkan cara membuat aplikasi.NET yang menghasilkan token SSO sementara, jika perlu, dan kemudian menggunakan token itu. Untuk tutorial lengkap tentang proses ini, lihatTutorial untuk SSO hanya menggunakan aplikasi.NET.

Hasilkan dan gunakan token SSO secara terprogram

Selain menggunakanAWS CLI, Anda juga dapat menghasilkan token SSO secara terprogram.

Untuk melakukan ini, aplikasi Anda membuat AWSCredentialsobjek untuk profil SSO, yang memuat kredensi sementara jika ada yang tersedia. Kemudian, aplikasi Anda harus mentransmisikan AWSCredentials objek ke SSOAWSCredentialsobjek dan menyetel beberapa properti Options, termasuk metode callback yang digunakan untuk meminta pengguna informasi login, jika perlu.

Metode ini ditunjukkan dalam cuplikan kode berikut.

penting

Aplikasi Anda harus mereferensikan NuGet paket-paket berikut agar resolusi SSO dapat berfungsi:

  • AWSSDK.SSO

  • AWSSDK.SSOOIDC

Kegagalan untuk mereferensikan paket-paket ini akan menghasilkan pengecualian runtime.

static AWSCredentials LoadSsoCredentials() { var chain = new CredentialProfileStoreChain(); if (!chain.TryGetAWSCredentials("my-sso-profile", out var credentials)) throw new Exception("Failed to find the my-sso-profile profile"); var ssoCredentials = credentials as SSOAWSCredentials; ssoCredentials.Options.ClientName = "Example-SSO-App"; ssoCredentials.Options.SsoVerificationCallback = args => { // Launch a browser window that prompts the SSO user to complete an SSO sign-in. // This method is only invoked if the session doesn't already have a valid SSO token. // NOTE: Process.Start might not support launching a browser on macOS or Linux. If not, // use an appropriate mechanism on those systems instead. Process.Start(new ProcessStartInfo { FileName = args.VerificationUriComplete, UseShellExecute = true }); }; return ssoCredentials; }

Jika token SSO yang sesuai tidak tersedia, jendela browser default diluncurkan dan halaman login yang sesuai dibuka. Misalnya, jika Anda menggunakan Pusat Identitas IAM sebagai sumber Identitas, pengguna akan melihat halaman login yang mirip dengan berikut ini:

AWS IAM Identity Centerhalaman masuk.
catatan

String teks yang Anda sediakan tidak SSOAWSCredentials.Options.ClientName dapat memiliki spasi. Jika string memang memiliki spasi, Anda akan mendapatkan pengecualian runtime.

Tutorial untuk SSO hanya menggunakan aplikasi.NET

Bagian ini menunjukkan kepada Anda cara membuat token SSO sementara dengan menggunakanAWS CLI, dan cara menggunakan token itu dalam aplikasi. Untuk tutorial lengkap tentang proses ini, lihatTutorial untuk SSO menggunakan aplikasi AWS CLI dan .NET.

Hasilkan token SSO dengan menggunakan AWS CLI

Selain menghasilkan token SSO sementara secara terprogram, Anda menggunakan token AWS CLI untuk menghasilkan token. Informasi berikut menunjukkan caranya.

Setelah pengguna membuat profil berkemampuan SSO seperti yang ditunjukkan di bagian sebelumnya, mereka menjalankan aws sso login perintah dari file. AWS CLI Mereka harus yakin untuk menyertakan --profile parameter dengan nama profil berkemampuan SSO. Ini ditunjukkan dalam contoh berikut:

aws sso login --profile my-sso-profile

Jika pengguna ingin membuat token sementara baru setelah token saat ini kedaluwarsa, mereka dapat menjalankan perintah yang sama lagi.

Gunakan token SSO yang dihasilkan dalam aplikasi.NET

Informasi berikut menunjukkan kepada Anda cara menggunakan token sementara yang telah dibuat.

penting

Aplikasi Anda harus mereferensikan NuGet paket-paket berikut agar resolusi SSO dapat berfungsi:

  • AWSSDK.SSO

  • AWSSDK.SSOOIDC

Kegagalan untuk mereferensikan paket-paket ini akan menghasilkan pengecualian runtime.

Aplikasi Anda membuat AWSCredentialsobjek untuk profil SSO, yang memuat kredenal sementara yang dihasilkan sebelumnya oleh file. AWS CLI Ini mirip dengan metode yang ditunjukkan dalam Mengakses kredensi dan profil dalam aplikasi dan memiliki bentuk berikut:

static AWSCredentials LoadSsoCredentials() { var chain = new CredentialProfileStoreChain(); if (!chain.TryGetAWSCredentials("my-sso-profile", out var credentials)) throw new Exception("Failed to find the my-sso-profile profile"); return credentials; }

AWSCredentialsObjek kemudian diteruskan ke konstruktor untuk klien layanan. Sebagai contoh:

var S3Client_SSO = new AmazonS3Client(LoadSsoCredentials());
catatan

Menggunakan AWSCredentials untuk memuat kredensil sementara tidak diperlukan jika aplikasi Anda telah dibuat untuk menggunakan [default] profil untuk SSO. Dalam hal ini, aplikasi dapat membuat klien AWS layanan tanpa parameter, mirip dengan "var client = new AmazonS3Client();”.

Tutorial untuk SSO menggunakan aplikasi AWS CLI dan .NET

Sumber daya tambahan

Untuk bantuan tambahan, lihat sumber daya berikut.