12 марта 2020 г.
Чтобы добавить OID C в существующее приложение Blazor WASM с помощью существующего поставщика удостоверений OAuth, прочитайте Защищите ASP. NET Core Blazor WebAssembly с помощью библиотека аутентификации .
Новая Microsoft.AspNetCore.Components.WebAssembly.Authentication поддерживает автоматическое c автоматическое обновление.
Если вы предпочитаете использовать файл конфигурации вместо жестко заданных значений, вы можете настроить приложение следующим образом:
Посетите theidserver.herokuapp.com / для полный функциональный образец.
dotnet add package Microsoft.AspNetCore.Components.WebAssembly.Authentication::3.2.0-preview2.20160.5
- Добавить AuthenticationService. js в индекс. html
<!DOCTYPE html>
<html>
<head>
...
</head>
<body>
<app>Loading...</app>
...
<script src="_content/Microsoft.AspNetCore.Components.WebAssembly.Authentication/AuthenticationService.js"></script>
<script src="_framework/blazor.webassembly.js"></script>
</body>
</html>
- Добавить файл oid c. json в папку приложения wwwroot с этой структурой
{
"authority": "https://myidp.com", // Uri to your IDP server
"client_id": "myclientid", // Your client id
"redirect_uri": "https://localhost:44333/authentication/login-callback", // Uri to the application login callback
"post_logout_redirect_uri": "https://localhost:44333/authentication/logout-callback", // Uri to the application logout callback
"response_type": "code", // OAuth flow response type. For `authorization_code` flow the response type is 'code'. For `implicit` flow, the response type is 'id_token token'
"scope": "BlazorIdentityServer.ServerAPI openid profile" // list of scope your application wants
}
- Сконфигурируйте авторизацию Api для чтения конфигурации из вашего oid c. json файл
Обновите свой Program.cs быть:
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.DependencyInjection;
using System.Threading.Tasks;
namespace BlazorIdentityServer.Client
{
public class Program
{
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddBaseAddressHttpClient();
builder.Services.AddApiAuthorization(options => options.ProviderOptions.ConfigurationEndpoint = "oidc.json");
await builder.Build().RunAsync();
}
}
}
11 марта 2020 г.
3.2.0-preview2 предоставляет способ использования Blazor Wasm с IdentityServer
Читать
9 марта 2020 г.
На данный момент существует несколько блистательных OID C lib, которые вы можете использовать, но ни один из них не сертифицирован и не внедрен. все функции.
Если вам интересно, я напишите мой собственный для поддержки автоматического обновления токена, но он еще не закончен, и я застрял в этой проблеме: [wasm] WasmHttpMessageHandler, укажите параметры извлечения для сообщения .
Проблема устранена При этом еще не слил PR . Так что придется подождать или реализовать свой собственный WasmHttpMessageHandler
.
Второй подход - обернуть oid c. js, используя JS interop