Dapatkan kode otorisasi
BERLAKU UNTUK: Semua tingkatAN API Management
get-authorization-context
Gunakan kebijakan untuk mendapatkan konteks otorisasi koneksi tertentu (sebelumnya disebut otorisasi) ke penyedia kredensial yang dikonfigurasi dalam instans API Management.
Kebijakan mengambil dan menyimpan otorisasi dan menyegarkan token dari penyedia kredensial yang dikonfigurasi menggunakan koneksi.
Catatan
Tetapkan elemen kebijakan dan elemen turunan dalam urutan yang disediakan dalam pernyataan kebijakan. Pelajari lebih lanjut cara mengatur atau mengedit kebijakan API Management.
Pernyataan kebijakan
<get-authorization-context
provider-id="credential provider id"
authorization-id="connection id"
context-variable-name="variable name"
identity-type="managed | jwt"
identity="JWT bearer token"
ignore-error="true | false" />
Atribut
Atribut | Deskripsi | Wajib diisi | Default |
---|---|---|---|
provider-id | Pengidentifikasi sumber daya penyedia info masuk. Ekspresi kebijakan diizinkan. | Ya | T/A |
authorization-id | Pengidentifikasi sumber daya koneksi. Ekspresi kebijakan diizinkan. | Ya | T/A |
context-variable-name | Nama variabel konteks untuk menerima objek Authorization . Ekspresi kebijakan diizinkan. |
Ya | T/A |
identity-type | Jenis identitas yang akan diperiksa terhadap kebijakan akses koneksi. - managed : identitas terkelola yang ditetapkan sistem dari instans API Management. - jwt : Token pembawa JWT yang ditentukan dalam atribut identity .Ekspresi kebijakan diizinkan. |
No | managed |
identitas | Token pembawa Microsoft Entra JWT untuk memeriksa izin koneksi. Diabaikan untuk identity-type selain jwt . Klaim yang diharapkan: - audiens: https://azure-api.net/authorization-manager - oid : ID objek izin - tid : ID penyewa izinEkspresi kebijakan diizinkan. |
No | T/A |
ignore-error | Boolean. Jika memperoleh konteks otorisasi menghasilkan kesalahan (misalnya, sumber daya koneksi tidak ditemukan atau dalam status kesalahan): - true : variabel konteks diberi nilai null. - false : kembalikan 500 Jika Anda mengatur nilai ke false , dan konfigurasi kebijakan menyertakan on-error bagian, kesalahan tersedia di context.LastError properti .Ekspresi kebijakan diizinkan. |
No | false |
Obyek otorisasi
Variabel konteks otorisasi menerima objek jenis Authorization
.
class Authorization
{
public string AccessToken { get; }
public IReadOnlyDictionary<string, object> Claims { get; }
}
Nama Properti | Deskripsi |
---|---|
AccessToken | Token akses pembawa untuk mengotorisasi permintaan backend. |
Klaim | Klaim yang dikembalikan dari API respons token server otorisasi (lihat RFC6749#section-5.1). |
Penggunaan
- Bagian kebijakan: masuk
- Cakupan kebijakan: global, produk, API, operasi
- Gateway: klasik, v2, konsumsi
Catatan penggunaan
- Konfigurasikan
identity-type=jwt
saat kebijakan akses untuk koneksi ditetapkan ke perwakilan layanan. Hanya/.default
cakupan khusus aplikasi yang didukung untuk JWT.
Contoh
Dapatkan token kembali
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="github-01"
authorization-id="auth-01"
context-variable-name="auth-context"
identity-type="managed"
ignore-error="false" />
<!-- Return the token -->
<return-response>
<set-status code="200" />
<set-body template="none">@(((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</set-body>
</return-response>
Dapatkan token kembali dengan atribut yang diatur secara dinamis
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="@(context.Request.Url.Query.GetValueOrDefault("authorizationProviderId"))"
authorization-id="@(context.Request.Url.Query.GetValueOrDefault("authorizationId"))" context-variable-name="auth-context"
ignore-error="false"
identity-type="managed" />
<!-- Return the token -->
<return-response>
<set-status code="200" />
<set-body template="none">@(((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</set-body>
</return-response>
Lampirkan token ke panggilan backend
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="github-01"
authorization-id="auth-01"
context-variable-name="auth-context"
identity-type="managed"
ignore-error="false" />
<!-- Attach the token to the backend call -->
<set-header name="Authorization" exists-action="override">
<value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value>
</set-header>
Dapatkan token dari permintaan masuk dan kembalikan token
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="github-01"
authorization-id="auth-01"
context-variable-name="auth-context"
identity-type="jwt"
identity="@(context.Request.Headers["Authorization"][0].Replace("Bearer ", ""))"
ignore-error="false" />
<!-- Return the token -->
<return-response>
<set-status code="200" />
<set-body template="none">@(((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</set-body>
</return-response>
Kebijakan terkait
Konten terkait
Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat:
- Tutorial: Mengubah dan melindungi API Anda
- Referensi Kebijakan untuk daftar lengkap pernyataan kebijakan dan pengaturannya
- Ekspresi kebijakan
- Mengatur atau mengedit kebijakan
- Menggunakan kembali konfigurasi kebijakan
- Repositori cuplikan kebijakan
- Kebijakan penulis menggunakan Microsoft Copilot di Azure