私は現在、iPadアプリケーションが既存のWebアプリケーションへのアクセスを必要とするプロジェクトに取り組んでいます。iPadアプリケーションは社内で開発されているため、信頼できるアプリケーションです。ただし、Webアプリケーションによって提供されるデータは機密性が高いため、クライアントの資格情報をiPadに保存する必要はありません。また、通常のユーザーアクセスに影響を与えることなくiPadアクセスを取り消す機能も必要です。
上記のことを考えると、OAuth2リソース所有者のパスワードクレデンシャルの付与/フローは、確立されたライブラリ以来、DotNetOpenAuthで実装した要件にぴったりでした。
ただし、リソースサーバーのアクセストークンと更新トークンにメタデータを追加する必要があります。承認サーバーは、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」を入力できるかどうかを誰かにアドバイスできますか?