Azure AD OpenID 연결 프레임 워크를 사용하여 웹 기반 Java 응용 프로그램에 대한 인증 서비스를 개발 중입니다. 내가 참조하고있다 adal4j-1.2.0.jar
동작에 따라 인증이 진행 중입니다. 나는 JWT 주장을 받고 그것을 검증 할 수있다.새로 고침 토큰이 서명되지 않은 Azure AD Adal4j 토큰이 서명 됨 JWT
하지만 60 분의 세션 시간 초과가 발생하고 새로 고침 토큰을 사용하여 새 토큰 클레임을 얻으려고하면 새 토큰은 JWT 서명이되지 않습니다. 그것들은 평범한 JWT입니다.
캐싱중인 초기 새로 고침 토큰을 사용하여 토큰을 얻으려면 아래의 호출을 사용하고 있습니다. 토큰의 검증을위한
acquireTokenByRrefreshToken(refreshtoken, credential,null,null)
, 나는 누군가가 제가 새로운 서명 토큰을 얻을 수있는 새로 고침 토큰을 상환하는 방법을 이해하는 데 도움이 될 수 있습니다
IDtokenValidator validator = new IDTokenValidator(issuer,clientID, JWSAlgo,URL)
validator.validate(idToken, exoectedNoounce); //this line throws badjwtexception signed ID token expected
아래와 같은 코드를 사용하고 있습니다. 또는 토큰을 사용한 후 새 토큰은 항상 Plain JWT입니다.
세션이 만료 된 후 새 토큰을 얻으려면이 값을 추가하십시오. 리소스 (URL)는 Azure AD에 응답 URL로 등록 된 것과 동일해야합니다. 그러나 세션이 만료되면 사용자는 다른 URL에있을 수 있습니다. 따라서 새로운 요청이 제출되면 응답 URL이 일치하지 않는다는 오류 페이지가 표시됩니다. –
이 경우 코드 부여 흐름 또는 클라이언트 자격 증명 흐름을 사용할 수 있습니다. 먼저 사용자의 유효성을 검사하여 승인 코드를 가져온 다음이 코드를 클라이언트 비밀번호와 함께 보내 토큰 + 새로 고침 토큰을 얻습니다. 사용중인 java 라이브러리에는 코드 부여 흐름을 호출하는 메소드가 있습니다. –