[ English | 中文 (简体, 中国) | русский | português (Brasil) | नेपाली | 한국어 (대한민국) | Indonesia | français | español | esperanto | English (United Kingdom) | Deutsch ]

Utils Module

openstack_auth.utils.LOG = <Logger openstack_auth.utils (WARNING)>

Kami membutuhkan objek permintaan untuk mendapatkan pengguna, jadi kami akan sedikit memodifikasi metode django.contrib.auth.get_user yang ada. Untuk melakukannya, kami memperbarui auth middleware agar mengarah ke metode kami yang diganti.

Memanggil "patch_middleware_get_user" dilakukan di middleware khusus kami di "openstack_auth.middleware" untuk melakukan monkeypatch kode sebelum diperlukan.

openstack_auth.utils.allow_expired_passowrd_change()[sumber]

Cek apakah pengguna harus dapat mengubah kata sandi yang kadaluwarsa.

openstack_auth.utils.build_absolute_uri(request, relative_url)[sumber]

Pastikan absolute_uri relatif terhadap WEBROOT.

openstack_auth.utils.clean_up_auth_url(auth_url)[sumber]

Bersihkan url autor untuk mengekstrak URL Keystone yang tepat

openstack_auth.utils.default_services_region(service_catalog, request=None, ks_endpoint=None)[sumber]

Kembalikan wilayah layanan default.

Urutan diutamakan: 1. Nilai cookie 'services_region' 2. Endpoint yang cocok di DEFAULT_SERVICE_REGIONS 3. '*' key in DEFAULT_SERVICE_REGIONS 4. Wilayah valid pertama dari katalog

Dalam setiap kasus, nilainya juga harus ada di available_regions atau kami pindah ke tingkat prioritas berikutnya.

openstack_auth.utils.fix_auth_url_version_prefix(auth_url)[sumber]

Perbaiki url auth jika awalan versi yang tidak valid atau tidak ada diberikan.

Perbaiki URL untuk mengatakan v3 dalam kasus ini dan tambahkan versi jika tidak ada sama sekali. Ini harus lebih pintar dan menggunakan penemuan. Sampai penemuan versi diimplementasikan kita perlu metode ini untuk membuat semuanya berfungsi.

openstack_auth.utils.get_admin_permissions()[sumber]

Fungsi umum untuk mendapatkan izin admin dari pengaturan

Format ini adalah 'openstack.roles.xxx' dan 'xxx' adalah nama peran nyata.

Kembali:

Tetapkan objek termasuk semua izin admin. Jika tidak ada izin, ini akan kembali kosong:: { "openstack.roles.foo", "openstack.roles.bar", "openstack.roles.admin" }

openstack_auth.utils.get_admin_roles()[sumber]

Fungsi umum untuk mendapatkan peran admin dari pengaturan

Kembali:

Tetapkan objek termasuk semua peran admin. Jika tidak ada peran, ini akan kembali kosong:: { "foo", "bar", "admin" }

openstack_auth.utils.get_client_ip(request)[sumber]

Kembalikan alamat ip klien menggunakan variabel SECURE_PROXY_ADDR_HEADER.

Jika tidak ada atau tidak didefinisikan pada pengaturan maka REMOTE_ADDR digunakan.

Parameter:

request (django.http.HttpRequest) -- Objek permintaan Django http.

Kembali:

Kemungkinan alamat ip klien

Kembalikan type:

string

openstack_auth.utils.get_endpoint_region(endpoint)[sumber]

Fungsi umum untuk mendapatkan wilayah dari endpoint.

Di Keystone V3, region sudah tidak digunakan lagi karena region_id.

Metode ini menyediakan cara untuk mendapatkan wilayah yang berfungsi untuk Keystone V2 dan V3.

openstack_auth.utils.get_role_permission(role)[sumber]

Fungsi umum untuk mendapatkan izin dari arg

Format ini adalah 'openstack.roles.xxx' dan 'xxx' adalah nama peran nyata.

Kembali:

String seperti "openstack.roles.admin" Jika peran adalah None, ini akan mengembalikan None.

openstack_auth.utils.get_websso_url(request, auth_url, websso_auth)[sumber]

Kembalikan keystone endpoint untuk memulai WebSSO.

Hasilkan endpoint WebSSO keystone yang akan mengarahkan pengguna ke halaman login penyedia identitas gabungan.

Berdasarkan jenis otentikasi yang dipilih oleh pengguna dalam formulir login, itu akan membangun endpoint WebSSO keystone.

Parameter:
  • request (django.http.HttpRequest) -- Objek permintaan Django http.

  • auth_url (string) -- Keystone endpoint dikonfigurasi dalam pengaturan horizon. Jika WEBSSO_KEYSTONE_URL didefinisikan, nilainya akan digunakan. Kalau tidak, nilainya diturunkan dari: - OPENSTACK_KEYSTONE_URL - AVAILABLE_REGIONS

  • websso_auth (string) -- Jenis otentikasi dipilih oleh pengguna dari formulir login. Nilai ini berasal dari pengaturan horizon WEBSSO_CHOICES.

Contoh pengaturan WebSSO horizon

WEBSSO_CHOICES = (
    ("credentials", "Keystone Credentials"),
    ("oidc", "OpenID Connect"),
    ("saml2", "Security Assertion Markup Language"),
    ("acme_oidc", "ACME - OpenID Connect"),
    ("acme_saml2", "ACME - SAML2")
)

WEBSSO_IDP_MAPPING = {
    "acme_oidc": ("acme", "oidc"),
    "acme_saml2": ("acme", "saml2")
    }
}

Nilai websso_auth akan dilihat dalam kamus WEBSSO_IDP_MAPPING, jika kecocokan ditemukan, itu akan mengembalikan titik akhir WebSSO khusus IdP menggunakan nilai yang ditemukan dalam pemetaan.

Nilai dalam WEBSSO_IDP_MAPPING diharapkan menjadi tuple yang diformat sebagai (<idp_id>, <protocol_id>). Dengan menggunakan nilai-nilai yang ditemukan, URL khusus IdP/protocol akan dibuat

/auth/OS-FEDERATION/identity_providers/<idp_id>
/protocols/<protocol_id>/websso

Jika tidak ada nilai yang ditemukan dari kamus WEBSSO_IDP_MAPPING, itu akan memperlakukan nilai sebagai protokol global WebSSO <protocol_id> dan membangun URL WebSSO dengan:

/auth/OS-FEDERATION/websso/<protocol_id>
Kembali:

Keystone WebSSO endpoint.

Kembalikan type:

string

openstack_auth.utils.has_in_url_path(url, subs)[sumber]

Uji apakah ada string subs di jalur url.

openstack_auth.utils.is_token_valid(token, margin=None)[sumber]

Pemeriksaan timezone-aware terhadap timestamp kedaluwarsa token.

Mengembalikan ke True jika token belum kedaluwarsa, jika tidak ke False.

Parameter:
  • token -- Contoh openstack_auth.user.Token untuk memeriksa

  • margin -- Margin waktu dalam detik untuk mengurangi validitas token nyata. Contoh penggunaan adalah bahwa token dapat valid setelah middleware berlalu, dan tidak valid (habis waktu) selama rendering tampilan dan ini menghasilkan kesalahan otorisasi selama rendering tampilan. Margin default dapat ditetapkan oleh TOKEN_TIMEOUT_MARGIN dalam pengaturan Django.

Fungsi umum untuk mengatur cookie dalam respons.

Memberikan kebijakan umum pengaturan cookie untuk proyek dan wilayah yang terakhir digunakan, dapat digunakan kembali di lokasi lain.

Metode ini akan mengatur cookie agar kedaluwarsa dalam 365 hari.

openstack_auth.utils.store_initial_k2k_session(auth_url, request, scoped_auth_ref, unscoped_auth_ref)[sumber]

Menyimpan variabel sesi jika ada penyedia layanan k2k

Ini menyimpan variabel yang terkait dengan federasi Keystone2Keystone. Fungsi ini dilewati jika tidak ada penyedia layanan Keystone. Token yang tidak dipilih untuk keystone penyedia identitas akan disimpan sehingga dapat digunakan untuk melakukan login gabungan ke penyedia layanan ketika berpindah penyedia keystone. File pengaturan dapat dikonfigurasikan untuk mengatur nama tampilan keystone lokal (penyedia Identity) dengan mengatur KEYSTONE_PROVIDER_IDP_NAME. Variabel pengaturan KEYSTONE_PROVIDER_IDP_ID digunakan untuk perbandingan dengan penyedia layanan. Seharusnya tidak bertentangan dengan id penyedia layanan.

Parameter:
  • auth_url -- url auth token dasar

  • request -- Objek permintaan Django http

  • scoped_auth_ref -- Objek info akses Scoped Keystone

  • unscoped_auth_ref -- Objek info akses Keystone terbuka (unscoped Keystone)

openstack_auth.utils.url_path_replace(url, old, new, count=None)[sumber]

Kembalikan salinan url dengan jalur yang diganti.

Kembalikan salinan url dengan semua kemunculan yang lama diganti dengan yang baru di jalur url. Jika jumlah argumen opsional diberikan, hanya kejadian jumlah pertama yang diganti.