У меня есть веб-API с сервисом AUTH, для клиента WPF, настроить так:Как получить претензии, включенные в мой AuthTicket, в службе аутентификации веб-API?
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
...
}
}
и
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);
}
}
я только когда-либо использовать /Token
конечной точки до сих пор, потому что она в по крайней мере, предоставляет мне токен-носитель. Билет, который я получаю при успешной аутентификации, имеет даты выдачи и истечения срока действия, токен-носитель и мое имя пользователя.
Как получить претензии пользователя (и, возможно, роли)? Есть ли что-то, что я могу сделать здесь, или я могу посидеть и запросить их через API, после авторизации и агрегировать их, а также в Auth Ticket в виде объекта Principal
для клиента WPF?
Могу ли я включить некоторые компоненты Identity в приложение WPF, чтобы помочь с извлечением претензий из токена и любые предложения о том, как я должен это делать?
Вся информация шифруется внутри самого маркера, так что добраться до него, вы должны расшифровать маркер. Конечно, у вас не может быть ключа дешифрования на клиенте - только на сервере. Итак, да, вы должны запросить их через API после авторизации (теоретически вы можете отправить их вместе с вашим ответом на авторизацию, но не уверены, что встроенная функция oauth имеет такую возможность). – Evk
Но мне не нужен поиск в БД, чтобы запросить их, просто расшифруйте токен аутентификации, который я должен отправить в любом случае, и отправьте назад претензии. Если хотите, любой намек на то, как расшифровать токен? Или это долгая история? – ProfK
Вы хотите избежать разговора с вашим сервисом, чтобы получить претензии? Хотите собрать их вместе с самим токеном (так, от вызова до конечной точки/токена)? – Evk