Saya memiliki aplikasi blazor wasm yang dikonfigurasi dengan otentikasi oidc yang berfungsi dengan baik. Situs ini memiliki 2 domain,

  1. identity.example.com menjalankan Identity Server 4
  2. example.com yang melayani situs blazor wasm.

Semuanya berfungsi, ketika saya menambahkan

@attribute [Authorize]

Ke komponen pisau cukur, pengguna (jika tidak diautentikasi) dialihkan ke https://identity. example.com/Account/Login?ReturnUrl... Saya bertanya-tanya apakah ada cara untuk menerapkan halaman/komponen login khusus di domain mysite.com, sesuatu seperti mysite.com/Login sehingga pengguna akan diarahkan ke sana dan formulir itu akan dikirimkan ke domain identitas AccountController dan masih memiliki kerangka kerja yang menangani token jwt dan ...?

Saya memiliki beberapa alasan lain terlebih dahulu, saya ingin semua yang ada di situs berada di belakang otentikasi. Saat ini saya telah menambahkan @attribute [Otorisasi] ke setiap halaman tetapi ini masih menyebabkan situs dimuat dan hanya setelah pengguna dapat melihat situs, mereka dialihkan ke halaman login di identity.example.com. Kelihatannya agak aneh, selanjutnya halaman Login di identity.example.com tidak terlihat seperti situs lainnya. Saya ingin mencoba membuat "tema" halaman login terlihat seperti situs lainnya

Saat ini saya telah mengonfigurasi Oidc seperti ini

nuget package Microsoft.AspNetCore.Components.WebAssembly.Authentication

Di appsetting.json

{
  "oidc": {
    "Authority": "https://identity.example.com/",
    "ClientId": "abcd",
    "DefaultScopes": [
      "openid",
      "profile",
      "email"
    ],
    "PostLogoutRedirectUri": "https://example.com",
    "ResponseType": "code"
  }
} 

Kemudian di Program.cs saya, saya punya

builder.Services.AddOidcAuthentication(options => {
  builder.Configuration.Bind("oidc", options.ProviderOptions);                  
});

Dan di wwwroot/index.html saya

<script src="_content/Microsoft.AspNetCore.Components.WebAssembly.Authentication/AuthenticationService.js"></script>
0
user889829 10 Juli 2020, 15:49

1 menjawab

Jawaban Terbaik

Karena masalah keamanan, itu bukan ide yang baik.
Tetapi Anda dapat menerapkan halaman login di tempat yang Anda inginkan jika Anda memberikan token anti pemalsuan yang baik dalam bentuk data dan header permintaan. Ini berarti Anda memerlukan halaman login dari server IS4. Parsing halaman untuk menemukan bidang formulir tersembunyi yang berisi token pemalsuan anti XSRF. Kirim kembali cookie dan header ke server IS4.
Semoga berhasil.

Jika Anda mengelola server IS4, lebih mudah untuk menyesuaikan halaman login IS4.

1
agua from mars 10 Juli 2020, 13:05