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:
-
IAM Identity Center dikonfigurasi, biasanya melalui konsol IAM Identity Center
, dan pengguna SSO diundang untuk berpartisipasi. -
AWS
config
File bersama di komputer pengguna diperbarui dengan informasi SSO. -
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.
-
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 SDK otentikasi 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.
config
File 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.
-
Buka konsol Pusat Identitas IAM
dan buka Akun AWShalaman. -
Pilih akun untuk menampilkan detailnya. Akun yang Anda pilih akan menjadi akun yang berisi pengguna atau grup SSO yang ingin Anda berikan izin SSO.
-
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 AWSCredentials
objek untuk profil SSO, yang memuat kredensi sementara jika ada yang tersedia. Kemudian, aplikasi Anda harus mentransmisikan AWSCredentials
objek ke SSOAWSCredentials
objek 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 themy-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:
catatan
String teks yang Anda sediakan tidak SSOAWSCredentials.Options.ClientName
dapat memiliki spasi. Jika string memang memiliki spasi, Anda akan mendapatkan pengecualian runtime.
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 AWS CLI dan. NETaplikasi.
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 AWSCredentials
objek 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 themy-sso-profile
profile"); return credentials; }
AWSCredentials
Objek 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();
”.
Sumber daya tambahan
Untuk bantuan tambahan, lihat sumber daya berikut.