IMS Final Release

オープンバッジベーキング仕様
IMS最終リリース


発行日: 2018年4月12日
ステータス IMS最終リリース


IPR(当事者系レビュー)および配布に関する通知

この文書の受信者は、コメント、関連する特許請求の通知、またはこの文書に記載されている仕様の実装によって侵害される可能性のあるその他の知的財産権の通知を提出し、サポート資料を提供するように要求されています。

IMSは、このドキュメントに記載されている技術の実装または使用に関連すると主張される可能性のある知的財産またはその他の権利の有効性または範囲、またはそのような権利に基づくライセンスが利用可能かどうかに関していかなる立場もとりません; また、そのような権利を特定する努力を行ったことを表明するものでもありません。 IMS仕様の権利に関するIMSの手順に関する情報は、IMS知的財産権のWebページ(http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf)にあります。

以下の参加組織は、この仕様に対して明示的なライセンス契約を締結しています:

組織名 選択された日付 必要な請求  タイプ
クレッドリー 2019年3月14日 なし RF RAND(必須およびオプションの要素)
Mozilla(モジラ)ファウンデーション 2019年3月14日 なし RF RAND(必須およびオプションの要素)
デジタルミー 2019年3月11日 なし RF RAND(必須およびオプションの要素)
D2L コーポレーション 2019年3月10日 なし RF RAND(必須およびオプションの要素)
クレッドリー 2018年3月18日 なし RF RAND(必須要素)
ピアソン 2017年11月21日 なし RF RAND(必須要素)

※RF(Royalty Free)… ロイヤリティフリー。
※RAND(Reasonable and Non-Discriminatory)… 妥当かつ非差別的に実施。

                   

Copyright © 2018 IMS Global Learning Consortium. All Rights Reserved.

提案の要求を作成する際は必要に応じて、この文書からの抜粋を使用するすべての関係者に許可が与えられます。

上記で付与された制限付き許可は永続的であり、IMSまたはその後継者または譲受人によって取り消されることはありません。

製品またはサービスを開発するためのこの仕様の使用は、仕様ライセンスによって管理されます。

この仕様はいかなる保証もなく提供されており、特に、非侵害の保証は明示的に否認されます。この仕様の使用は、実装者の独自のリスクにおいて全面的に行われるものとし、そのコンソーシアム、そのメンバーまたは提出者のいずれも、この仕様の使用に起因する直接または第三者のいかなる損害についても、いかなる責任も負わないものとします。

公募、コメント、質問は、 https://www.imsglobal.org/forums/ims-glc-public-forums-and-resources/open-badges-community-forum に投稿できます。

IMSロゴは、米国およびその他の国におけるIMSグローバルラーニングコンソーシアム.の商標です。

詳細情報: https://www.imsglobal.org/trademarks

ドキュメント名:オープンバッジベーキング仕様



このドキュメントのステータス

このドキュメントは、一般に公開コミュニティで採用されています。

バッジベーキング

バッジベーキングとは

オープンバッジは、バッジアサーションがエンコードされた画像ファイルとして送信されます。これにより、画像ファイルを保存または表示できる場所であればどこでも、オープンバッジを移植できます。各 アサーション は、個人の成果に関する検証可能な情報を表します。

バッジベーキングは、アサーションを取得してバッジイメージに埋め込むプロセスです。これにより、ユーザーがホームページにバッジを表示するときに、オープンバッジに対応したソフトウェアがそのアサーションデータを自動的に抽出し、その人が合法的にバッジを獲得したがどうか必要なチェックを行います。ベーキングをサポートするには、 バッジクラス のイメージはPNG形式またはSVG形式である必要があります。

技術的な詳細

PNG形式

ベーキング

キーワード openbadges を使用して、 iTXt チャンク をPNGファイルに挿入する必要があります。テキスト は、署名されたバッジアサーションまたはオープンバッジアサーションのJSONのrawデータいずれかです。圧縮は使用 しない でください。現時点では、 language タグ翻訳されたキーワード には、バッジベーキングに関連するセマンティクスはありません。

チャンクの作成例(iTXtコンストラクターを想定):

var chunk = new iTXt({
  keyword: 'openbadges',
  compression: 0,
  compressionMethod: 0,
  languageTag: '',
  translatedKeyword: '',
  text: signature || JSON.stringify(assertion)
})

キーワード「openbadges」を含むiTXtチャンクは、PNGファイルに複数回表示しては いけません 。既にオープンバッチデータを含むバッジを作成する場合、実装者はユーザーにエラーを渡すか、既存のチャンクを上書きするかを選択できます。

抽出

キーワードopenbadges で最初の iTXt チャンク が見つかるまでPNGファイルのデータストリームを解析します。ストリームの残りは安全に破棄できます。 iTXtのテキスト部分は、オープンバッジアサーションまたは署名のJSON表記法になります。

レガシーPNG形式

バッジのベーキングの事前に指定された動作は、異なる動作をしました。アサーションまたは署名全体を iTXt:openbadges チャンクにベーク処理する代わりに、ホストされたアサーションを指すURLは tEXt:openbadges チャンクにベーク処理されました。完全なアサーションを取得するには、 tEXt チャンクからURLを抽出した後に追加のHTTP要求を作成する必要があります。

SVG形式

ベーキング

最初に、値「http://openbadges.org」の xmlns:openbadges 属性を <svg> タグに追加します。 <svg> タグの直後に、verify属性を持つ <openbadges:assertion> タグを追加します。 verify の値は、署名されたオープンバッジアサーション、 あるいは バッジアサーションの verify.url からのURLのいずれかでなければなりません。

署名がベーク処理されている場合、タグの本体は不要であり、タグは自動的に閉じる必要があります。

アサーションがベークされている場合、アサーションのJSON表記法は、 <![CDATA[...]]> でラップされたタグの本体に入ります。

ホストされたアサーションを使用した適切にベークされたSVG形式の例:

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:openbadges="http://openbadges.org"
     viewBox="0 0 512 512">
  <openbadges:assertion verify="https://example.org/assertions/123">
    <![CDATA[
	   {
	     "@context": "https://w3id.org/openbadges/v2",
	     "id": "https://example.org/assertions/123",
	     "type": "Assertion",
	     "recipient": {
	       "type": "email",
	       "identity": "alice@example.org"
	     },
	     "issuedOn": "2016-12-31T23:59:59+00:00",
	     "verification": {
	       "type": "hosted"
	     },
	     "badge": {
	       "id": "https://example.org/badges/5",
		   "type": "BadgeClass",
	       "name": "3-D Printmaster",
	       "description": "This badge is awarded …",
	       "image": "https://example.org/badges/5/image",
	       "criteria": {
	         "narrative": "Students are tested on …"
	       },
	       "issuer": {
	         "id": "https://example.org/issuer",
	         "type": "Profile",
	         "name": "Example Maker Society",
	         "url": "https://example.org",
	         "email": "contact@example.org",
	         "verification": {
	            "allowedOrigins": "example.org"
	         }
	       }
	     }
	   }
    ]]>
  </openbadges:assertion>

  <rest-of-document...>
</svg>

SVG形式には <openbadges:assertion> タグが1つだけ存在する必要があります。既にOpenBadgesデータを含むバッジを作成する場合、実装者はユーザーにエラーを渡すか、既存のタグを上書きするかを選択できます。

抽出

最初の <openbadges:assertion> タグに到達するまでSVGファイルを解析します。残りのSVGデータは安全に破棄できます。

タグに本体がない場合、 verify 属性にはバッジの署名が含まれます。本体がある場合、バッジアサーションのJSON表記法になります。

ベーキング仕様変更ログ

2018年4月16日 バージョン1.0.0 最終

2017年2月13日 Version 1.0.0

2013年11月5日 バージョン1.0.0

プレリリース