Thinktecture'ın Identity Server 3'ü kurmaya çalışıyorum, ancak bir yetkilendirme kodu değiştirirken (veya ResourceOwner akışını kullanırken, bir yenileme belirtecini döndürmek için bulamıyorum) Şu anda benim için daha önemli olan yetkilendirme koduna odaklanacağım. Erişim belirteçlerine geri dönüyorum ve bunları doğrulamak için kullanabilirim, ancak geri dönmeyi umduğum yenileme belirteçlerini oluşturuyor gibi görünmüyor. Identity Server'ı yenileme belirteçlerine döndürmek için yapmam gereken özel bir şey var mı?Kimlik Sunucusu yenileme jetonunu iade etmiyor
Belgeleri inceledim, ancak yanlış ayarladığım bir şey görmedim ve sayfadaki refresh tokens numaralı sayfada bulunan tek şey açıkça "offline_access" kapsamını talep ediyor Kullanıcıyı kimlik doğrulaması için gönderme, çünkü ne zaman denediğimde bir "geçersiz kapsam" hatası alıyorum. Bu nedenle, kullandığınız akışa bağlı olarak, offline_access kapsamının otomatik olarak istenen bir şey olduğunu belirtmek için, Thinktecture'ın "Çevrimdışı_asarım kapsamını (kod veya kaynak sahibi akışı aracılığıyla)" ifadesini alıyorum.
- oluşturduğum: Benim kurulduğundan Olabilirim ve en iyi olarak aşağıdaki gibi onların örnek uygulamalarını (Ve Katana Project mevcut Owin Middleware için kaynak kodunu) takip etmeye çalışıyorum
İstemci sınıfını kullanarak, aşağıdakileri manuel olarak belirleyen bir istemci:
var client = new Client() { ClientId = "SomeId", ClientName = "Client with Authentication Code Flow", RequireConsent = false, //Setting this to true didn't help Flow = Flows.AuthorizationCode, ClientSecrets = new List() { new ClientSecret("secret") }, RedirectUris = new List() { "localhost:/specific-redirect-path" } };
- Yetkilendirme bitiş noktasına aşağıdaki gibi bir çağrı yapıyorum:
var authorizationEndpoint = AuthorizationEndpointBase + "?client_id=" + Uri.EscapeDataString(Options.ClientId) + "&scope=Default" + "&response_type=code" + "&redirect_uri=" + Uri.EscapeDataString(redirectUri) + "&state=" + Uri.EscapeDataString(state); Response.Redirect(authorizationEndpoint);
Burada "Varsayılan" oluşturulan bir kapsamdır.IReadableStringCollection query = Request.Query; string code = getValueFromQueryString("code", query); var tokenRequestParameters = new List>() { new KeyValuePair("client_id", Options.ClientId), new KeyValuePair("redirect_uri", GenerateRedirectUri()), new KeyValuePair("client_secret", Options.ClientSecret), new KeyValuePair("code", code), new KeyValuePair("grant_type", "authorization_code"), }; var requestContent = new FormUrlEncodedContent(tokenRequestParameters); HttpResponseMessage response = await _httpClient.PostAsync(TokenEndpoint, requestContent, Request.CallCancelled); response.EnsureSuccessStatusCode(); string oauthTokenResponse = await response.Content.ReadAsStringAsync();
Ben belirteç bitiş noktasına arama yapmak, Kimlik Server benim günlüğü görüntüler (yetki kodu doğrulama sonra) şu şu şekildedir: Benim Geri arama durumunda
iisexpress.exe Information: 0 : [Thinktecture.IdentityServer.Core.Validation.TokenRequestValidator]: 7/13/2015 1:44:07 PM +00:00 -- Token request validation success { "ClientId": "SomeId", "ClientName": "Client with Authentication Code Flow", "GrantType": "authorization_code", "AuthorizationCode": "f8f795e649044067ebd96a341c5af8c3" } iisexpress.exe Information: 0 : [Thinktecture.IdentityServer.Core.ResponseHandling.TokenResponseGenerator]: 7/13/2015 1:44:07 PM +00:00 -- Creating token response iisexpress.exe Information: 0 : [Thinktecture.IdentityServer.Core.ResponseHandling.TokenResponseGenerator]: 7/13/2015 1:44:07 PM +00:00 -- Processing authorization code request Debug: [Thinktecture.IdentityServer.Core.Services.Default.DefaultTokenService]: 7/13/2015 1:44:07 PM +00:00 -- Creating access token Debug: [Thinktecture.IdentityServer.Core.Services.Default.DefaultTokenService]: 7/13/2015 1:44:07 PM +00:00 -- Creating reference access token iisexpress.exe Information: 0 : [Thinktecture.IdentityServer.Core.Endpoints.TokenEndpointController]: 7/13/2015 1:44:07 PM +00:00 -- End token request iisexpress.exe Information: 0 : [Thinktecture.IdentityServer.Core.Results.TokenResult]: 7/13/2015 1:44:07 PM +00:00 -- Returning token response.
Başka ne uygun olacağından emin değilim, bu yüzden gerektiğinde daha fazla bilgi sağlayacağım.
Merhaba, alakasız yorumunuz için üzgünüm, ancak yine de, kimlik belirteçleri üreten vb kimlik sunucusunu kullanarak oluşturduğunuz şablonu alabilir miyim? –
Ne yazık ki, ben artık üzerinde değilim bir personel artırmanın bir parçası olarak inşa ediyordu, bu yüzden kod tabanına erişim veya postalama izni yok. –