mam API Web z usługą auth, dla klienta WPF skonfigurować tak:Jak mogę uzyskać roszczenia zawarte w moim AuthTicket w usłudze uwierzytelniania Web API?
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
...
}
}
i
public partial class Startup
{
public void ConfigureAuth(IAppBuilder app)
{
...
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId),
ApplicationCanDisplayErrors = true,
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true, // TODO Make false to deploy
};
app.UseOAuthAuthorizationServer(OAuthOptions);
}
}
ja tylko kiedykolwiek użyć końcowego /Token
tak daleko, bo w najmniej daje mi token na okaziciela. Bilet otrzymany po udanym uwierzytelnieniu ma daty wydania i wygaśnięcia, token na okaziciela i moją nazwę użytkownika.
Jak uzyskać roszczenia użytkownika (a może role)? Czy jest coś, co mogę tutaj zrobić, czy też robię to w ukryciu i żądam ich za pośrednictwem interfejsu API, po uwierzytelnieniu, i agreguję je i Auth Ticket w coś w rodzaju obiektu Principal
dla klienta WPF?
Czy mógłbym dołączyć niektóre elementy tożsamości w aplikacji WPF, aby pomóc w wyodrębnieniu roszczeń z tokena i sugestii, w jaki sposób powinienem to zrobić?
Wszystkie informacje są szyfrowane wewnątrz samego powodu, tak aby się do niego dostać trzeba odszyfrować token. Oczywiście nie można mieć klucza deszyfrującego na kliencie - tylko na serwerze. Tak więc - musisz poprosić ich przez API po auth (teoretycznie możesz wysłać je razem z odpowiedzią auth, ale nie jesteś pewien, czy wbudowane oauth ma taką możliwość). – Evk
Ale nie potrzebuję wyszukiwania DB, aby o nie poprosić, wystarczy odkodować token uwierzytelniający, który i tak muszę wysłać, i odesłać roszczenia. Jeśli tak, jakaś wskazówka, jak odszyfrować token? A może to długa historia? – ProfK
Chcesz uniknąć oddzielnego połączenia z usługą, aby uzyskać roszczenia? Chcesz je połączyć z samym tokenem (czyli od wywołania do punktu końcowego tokenu)? – Evk