一.概要
デジタル署名認証は、テンプレート認証方式の一種です。ポータルにログインし、URLを取得していても、デジタル署名がなければアクセスができません。デジタル署名認証に成功した後、テンプレートへのアクセスが可能になります。そうでない場合、アクセス権限がありません。
この認証方式は、強い権限コントロールを必要とするシステムに適切です。
認証のプロセスは下図のようになります。
二.デジタル署名認証の有効化
1.認証を有効にし、テンプレートを選択
[テンプレートの管理紹介]の第三節を参考してください。テンプレート認証を有効にすると、すべてのテンプレートが要認証となります。
2.デジタル署名設定
1.[システム]-[テンプレート管理]-[グローバル設定]でデジタル署名認証をオンにします。
2.デジタル署名認証を有効にすると、テンプレート[/view/report?viewlet=***.cpt]にアクセスする時、URLのQueryStringまたはリクエストヘッダーで、認証サーバーから発行されたデジタル署名を添付します。パラメータでは[fine_digital_signature]で、urlの書式では、[/view/report?viewlet=***.cpt&fine_digital_signature=値]です。
4.[保存]を押して、設定を終了します。
3.デジタル署名の作成
1.暗号鍵に対応するfine_digital_signatureの数値を取得します。ここではGettingStarted.cptを例にします。
3.以下のコードを新しいファイルにコピーします。実際の状況に従って第10-11行のデジタル署名のテンプレートと暗号鍵を編集してください。
import com.fr.cert.token.JwtBuilder; import com.fr.cert.token.Jwts; import com.fr.cert.token.SignatureAlgorithm; import java.util.Date; public class test { public static void main(String[] args) { //Signature valid time long validTime = 30 * 60 * 1000 ; //Signature content: use relative path String path = "GettingStartedEN.cpt" ; String key = "123456" ; //Key set in the platform //Generate fine_digital_signature String fine_digital_signature = createJwt( "" , "" , path, validTime, key); //Output fine_digital_signature System.out.println(fine_digital_signature); } private static String createJwt(String issuer, String id, String subject, long validTime, String key) { //Generate value of fine_digital_signature SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256; Date currentTime = new Date(); Date expirationTime = new Date(currentTime.getTime() + validTime); JwtBuilder builder = Jwts.builder() .setIssuer(issuer) .setSubject(subject) .setIssuedAt(currentTime) .setExpiration(expirationTime) .setId(id) .signWith(signatureAlgorithm, key); return builder.compact(); } } |
4.作成された数値をコピーします。
4.効果を確認
1.ここでは、http://localhost:8075/webroot/decision/view/report?viewlet=GettingStartedEN.cpt
2.URLの最後に[&fine_digital_signature=前節で作成した数値]を追加して再度アクセスすると、テンプレートを閲覧できるようになりました。
三.リモートサーバのテンプレートのプレビュー
注意:テンプレートプレビューのURLは、リモートアクセスユーザがログアウトする度に失効となります。つまり、リモートサーバとのアクセスが途切れると、テンプレートプレビューURLを使って直接閲覧することが出来なくなります。