저는 현재 iPad 응용 프로그램이 기존 웹 응용 프로그램에 액세스해야하는 프로젝트에서 작업하고 있습니다. iPad 응용 프로그램은 내부적으로 개발되었으며 따라서 신뢰할 수있는 응용 프로그램입니다. 그러나 웹 응용 프로그램에서 제공하는 데이터는 민감하므로 iPad에 클라이언트 자격 증명을 저장하지 않으려합니다. 또한 일반 사용자 액세스에 영향을주지 않으면 서 iPad 액세스를 취소 할 수있는 기능이 필요합니다.dotnetopenauth - 새로 고침 토큰에 여분의 데이터를 추가하는 방법은 무엇입니까?
위와 같이 가정하면 OAuth2 자원 소유자 암호 자격증/허가서는 기존 라이브러리 이후 DotNetOpenAuth로 구현 한 Google 요구 사항에 적합합니다.
그러나 리소스 서버에 대한 액세스 및 새로 고치기 토큰에 메타 데이터를 추가해야합니다. 권한 부여 서버는 IAuthorizationServerHost.CreateAccessToken 방법의 우리의 구현에 AuthorizationServerAccessToken.ExtraData 속성을 통해 메타 데이터를 추가 :
public AccessTokenResult CreateAccessToken(IAccessTokenRequest accessTokenRequestMessage)
{
var accessToken = new AuthorizationServerAccessToken();
// Add some extra data to access token
accessToken.ExtraData.Add("server_parameter1", this.ServerValue1);
accessToken.ExtraData.Add("server_parameter2", this.ServerValue2);
// Set ResourceServerEncryptionKey properties etc
return new AccessTokenResult(accessToken);
}
이 수행 정확하게 우리가 그러나 동일한 "ExtraData가"에 포함되지 않은 액세스 토큰 원하는 액세스 토큰이 만료 될 때 문제를 일으키는 새로 고침 토큰으로, 이전 액세스 토큰이 삭제 된 이후 추가 데이터가 효과적으로 손실되기 때문에 새로 고침해야합니다.
액세스 토큰과 비슷한 방식으로 현재 버전의 DotNetOpenAuth에서 새로 고침 토큰 "ExtraData"를 채우는 것이 가능하면 조언 할 수 있습니까?
죄송합니다. 내 질문에 오해의 소지가있었습니다. 추가 데이터는 실제로 인증 서버에서 제공되며 클라이언트가 요청할 때 리소스 서버에 필요합니다. 클라이언트는 추가 데이터를 알지 못합니다. 내가 분명히 할 질문을 편집했습니다. 그러나 첫 번째 의견으로 판단하면 어쨌든 가능하지 않습니다. 이 경우 알려 주시면 예외로 표시해 드리겠습니다. – lawst
CreateAccessToken 메서드에서 사용자 이름을 확인할 수 있습니까? 코드를 검토 한 결과 액세스 토큰을 만들 때 사용자를 확인할 수 있으면 새로 고침 토큰에 여분의 데이터가 저장되는 것을 피할 수있었습니다. – lawst
오른쪽. 그것은 불가능합니다.권한이 부여 된 사용자에게 액세스 권한 만 있으면됩니다. 이것은 단지'CreateAccessToken'이 그 매개 변수를 빠뜨린 것을 감독하는 것일뿐입니다. [곧 수정 될 것입니다] (https://github.com/DotNetOpenAuth/DotNetOpenAuth/issues/219). –