Identity Server 4, ASP.NET Core를 사용 중이며 프로덕션 환경에서 IdentityServer 개발자를 교체하려고합니다.IdentityServer 4 : 부여 된 저장 장치가 없습니다. AddInMemoryStores를 사용하십시오.
- IProfileService을
- IResourceOwnerPasswordValidator
이 내 ConfigureServices을이다 : 그러나 다음과 같은 오류 점점이 answer에서 언급 그래서
No storage mechanism for grants specified. Use the 'AddInMemoryStores' extension method to register a development version.
을, 나는 서비스를 구현하려고 메소드 시작 클래스 :
services.AddMvc();
var identityBuilder = services.AddIdentityServer();
identityBuilder.AddInMemoryScopes(identitySrvConfig.GetScopes());
identityBuilder.AddInMemoryClients(identitySrvConfig.GetClients());
identityBuilder.AddProfileService<ProfileService>();
identityBuilder.Services.AddTransient<IResourceOwnerPasswordValidator, ResourceOwnerPasswordValidator>();
내 경우 인터페이스 서명이 다른 고려 사항으로 촬영 :
public class ResourceOwnerPasswordValidator : IdentityServer4.Validation.IResourceOwnerPasswordValidator
{
public Task ValidateAsync(ResourceOwnerPasswordValidationContext context)
{
throw new NotImplementedException();
}
}
하지만 여전히 같은 오류를 얻고, 문제는 무엇인가?
작동하지 않습니다 사용하고'AddInMemoryPersistedGrants'을 사용한다. 그러나 그것은 다음과 같이 말합니다 :'당신은 메모리 내에서 지속 된 grant 저장소를 사용하고 있습니다. 이것은 승인 결정, 인증 코드, 새로 고침 및 참조 토큰을 메모리에만 저장합니다. 이 프로덕션 환경에있는 것을 사용하고 있다면 다른 저장소 구현으로 전환하려고합니다. ' 암시 적 플로우를 새로 고치지 않고 참조 토큰을 사용하고 있습니다. 그렇다면 제작에 들어갈 때 내 서버에 어떤 영향을 줍니까? – Coding
지속 형 보조금을 일부 형식의 데이터 저장소 (SQL/Mongo)에 저장하지 않을 경우 배포간에 손실됩니다. 따라서 이것을 프로덕션 환경에서 사용할 계획이라면, 백업 가능한 질의 가능한 데이터 저장소를 사용하여'IPersistedGrantStore'를 구현하십시오. – Lutando