Próbuję napisać aplikację mobilną, która pobierze dane z witryny opartej na odpoczynku internetowym.Bezpieczny interfejs WWW z JWT
Witryna powinna być zabezpieczona poprzez ACS (ponieważ może istnieć wielu dostawców tożsamości).
Moja aplikacja mobilna obecnie wyszukuje następujący adres URL: https://xx.accesscontrol.windows.net/v2/metadata/IdentityProviders.js?protocol=javascriptnotify&realm=http://xx.azurewebsites.net/&version=1.0, aby uzyskać listę adresów IP.
Następnie zezwalam użytkownikowi na wybór adresu IP, a następnie za pomocą kontrolki przeglądarki internetowej pokazuję im login.
Gdy użytkownik się zaloguje, przechwytuję odpowiedź i wyodrębniam token, ale teraz nie jestem do końca pewien, co powinienem zrobić. Token wygląda następująco: -
{"appliesTo":"http://****.azurewebsites.net/",
"context":null,
"created":1362069383,
"expires":1362072983,
"securityToken":"... a lot of text:-)",
"tokenType":"urn:ietf:params:oauth:token-type:jwt"}
Więc zgaduję powinienem wziąć udział token i dodać, że ma część nagłówka Authorization na żądanie otrzymać?
Pytanie 1 to, w jaki sposób powinienem dołączyć token - czy po prostu dołączę token bezpieczeństwa bitowego, czy też muszę podstawić 64 kodować partię i ponownie dołączyć ją jako nagłówek autoryzacji?
Pytanie 2 Jak skonfigurować webapi do obsługi JWT? Po tym, jak zostały zmodyfikowane ACS wydać JWT żetony i zainstalowałem JWTSecurityTokenHandler wciąż otrzymuję następujący błąd (to z uwierzytelnianiem pasywnego):
JWT10310: Unable to validate signature. validationParameters.SigningTokenResolver type: 'System.IdentityModel.Tokens.IssuerTokenResolver', was unable to resolve key to a token.
The SecurityKeyIdentifier is:
'SecurityKeyIdentifier
(
IsReadOnly = False,
Count = 1,
Clause[0] = X509ThumbprintKeyIdentifierClause(Hash = 0x2FEE3EE96B019D4BA0C046124B77C652EEF768E5)
)
'. validationParameters.SigningToken was null.
Dzięki
Ross