확인. 나는 지금 똑같은 일을 똑같이했다. 그 일을 끝내기 위해 필요한 모든 것은 here로 작성되었습니다. IdentityServer를 사용하는 경우 RP의 토큰 유형을 JWT로 구성해야합니다.
이렇게하면 인증 된 MVC 5 응용 프로그램에서 토큰을 나중에 추출 할 수 있습니다. 이를 수행 한 다음) 해당 토큰을 웹 API로 보냅니다. 그런 다음 웹 API에 Microsoft의 JwtSecurityTokenHandler
클래스를 사용하여 해당 토큰을 수락하도록 요청해야합니다. 이 클래스는 두 개의 매개 변수를 받아들이는 ValidateToken()
메소드를 가지고 있습니다. 첫 번째는 웹 API에 대한 요청의 인증 헤더에 넣는 액세스 토큰이고 두 번째는 유효성 검사 매개 변수입니다. 이는 IdentityServer의 config에서 정의한 것입니다.
validationParams = new TokenValidationParameters
{
AllowedAudiences = _allowedAudiencesAndSigningKeys.Select(x => x.Key),
ValidIssuer = ConfigurationManager.AppSettings["IssuerIdentity"],
ValidateIssuer = true,
SigningTokens = _allowedAudiencesAndSigningKeys.Select(x => new BinarySecretSecurityToken(Convert.FromBase64String(x.Value)))
};
경청자 (들)은 발행자 이름 (사용자의 신원 서버 이름)에 대한 액세스를 허용 할/영역 (들) 및 신원 서버에 정의 된 응용 프로그램의 서명 대칭 키 (들) 에 대한 광범위한 접근을 원합니다. ValidateToken()
메서드는 토큰에서 추출 된 클레임 목록을 사용하여 ClaimsPrincipal
을 반환합니다. 이 모든 작업을 수행하는 코드는 메시지 처리기에 넣을 수 있습니다.
public static void Configure(HttpConfiguration config)
{
var authNConfig = new AuthenticationConfiguration();
config.MessageHandlers.Add(new MyTokenValidationHandler());
}
두 개의 서로 다른 도메인이 있습니까? app1.domain1.com 및 app2.domain2.com을 좋아합니까? –
예, 2 개의 다른 도메인이 있습니다. –
@DurgaPrasad 내 업데이트를 참조하십시오. –