-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Work in Progress: Implementation Guide #501
Changes from 14 commits
b7c1a7a
e780d70
c1b677d
e8090cb
e3ce9a0
35365de
1d87e92
232fba0
0b3f6e3
0685d79
63eb80c
efc2b61
bfda823
4284426
dc972fc
5871b44
050d3b9
4a6b141
effd223
24189c6
3785012
49fe1f9
915db78
f69b405
9271922
ce70b44
a8cf40b
c558dd1
b1196d2
4ae7505
2c58760
70326f3
2ff26c2
77e0508
aa3de00
973f219
fa69304
9c494c3
5c86748
4250d9a
8bd9579
cb827a9
d96a879
fd766ff
dfa00fa
7386c9a
8d8dff8
ebbc026
0c068b8
ef01a99
059630d
dda2628
7ff7794
d0242f2
4ca3a97
f57c531
461d09d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{ | ||
"trailingComma": "es5", | ||
"semi": false, | ||
"singleQuote": true, | ||
"printWidth": 80, | ||
"tabWidth": 4, | ||
"proseWrap": "always" | ||
} | ||
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
## Conformance and Certification | ||
|
||
Open Badges and CLR enable implementers to choose specific roles their product | ||
fills and receive certification for the capabilities of that role. | ||
|
||
### Certified Roles in Open Badges | ||
|
||
TODO the Conformance and Certification Guide in this repo lists the roles as | ||
"Issuer", "Displayer", "Host" in one spot, and then Service Consumer (Read), | ||
Service Consumer (Write), Service Provider (Read), Service Provider (Write), and | ||
it hasn't yet incorporated the idea of "issuer only" certification that was | ||
referenced in recent meetings. Follow up and make consistent. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. may be captured in the todo, but would be helpful to incorporate VC terminology such as Issuer and Holder into the below bullets. |
||
|
||
- Resource Server: A product implementing the server side of the Open Badges | ||
API that holds badges on behalf of data subjects or holders and controls API | ||
access to them. The Resource Server responds to automatic registration | ||
requests, authorization grant flow initiations, and authenticated resource | ||
requests via the API endpoints. The Resource Serve is also called "Provider" | ||
in the IMS Global Security Framework. | ||
- Client: A product implementing the client side of the Open Badges API, | ||
either to send `OpenBadgeCredential`s to a Resource Server or to request | ||
them from such a server. The client initiates registration of itself with | ||
the server, negotiates authorization requests via code-based grant | ||
redirection flows, and then makes requests to resources (badges) held by the | ||
Resource Server. | ||
- Resource Server (read only?): TODO are we doing this one like in 2.1 -- | ||
where is the list of roles? | ||
- Issuer Only: a product that is capable of signing Verifiable Credentials | ||
compliant with the Open Badges data model but who does not implement the | ||
Open Badges API. | ||
|
||
### Certified Roles in CLR | ||
|
||
- Resource Server | ||
- Client | ||
- Resource Server (read only?) | ||
- Issuer Only | ||
|
||
### Conformance Testing Process | ||
|
||
Follow the conformance and certification guide listed in the specification for | ||
detailed instructions on conformance. |
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
## Getting Help | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Adding instructions here assigned to @xaviaracil |
||
|
||
If you have questions or need help with implementing Open Badges 3.0 or Comprehensive Learning Record 2.0, or achieving conformance certification, here are some available resources: | ||
|
||
- [Public Forum](https://www.imsglobal.org/forums/open-badges-community-forum/open-badges-community-discussion) for all members of the 1EdTech community. | ||
- Affiliate Forum for Learning Tools and Content Alliance, Affiliate, and Contributing Members. | ||
- 1EdTech Contributing Members have access to private github repositories and a slack channel for Digital Credentials Project Group discussions and collaborations. Contact an 1EdTech staff member to gain access. | ||
- [Digital Credentials and Open Badges FAQs](https://support.imsglobal.org/support/solutions/48000452348) If you have a question, an answer may already be waiting. If not, please [contact us](https://www.imsglobal.org/contactus.cfm). |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
## Introduction | ||
|
||
The 1EdTech digital credentials specifications, Open Badges and Comprehensive | ||
Learner Record (CLR) enable the recognition of learning achievements in many | ||
contexts that are cryptographically verifiable as the learners present them to | ||
unlock new opportunities across a lifetime of learning and employment. Key use | ||
cases include the recognition of skills and competencies, degrees, certificates | ||
and professional certifications, participation, and community engagement. | ||
|
||
This implementation guide aims to inform product developers who are | ||
investigating or planning implementation of the Open Badges 3.0 and/or CLR 2.0 | ||
specifications about the available implementation options and how to situate a | ||
product within the ecosystem compatible with these specifications. | ||
|
||
### Overview | ||
|
||
Each Open Badges `OpenBadgeCredential` is digitally signed by its issuing | ||
organization as Verifiable Credentials compatible with the [[vc-data-model]]. | ||
Issuers may bundle together multiple related achievement credentials into | ||
transcripts and other longitudinal records for an individual learner in a CLR as | ||
a `ClrCredential`, which is also signed using the same technique as the | ||
individual credentials. Additionally, credentials can be augmented with an | ||
`EndorsementCredential` from a third party to lend the support of another | ||
individual or organization to the quality or relevance of an issuer or | ||
credential data. | ||
|
||
A RESTful API, with dynamic client registration, is available to transport data | ||
in `OpenBadgeCredential` and `ClrCredential` format, under the control of the | ||
learner, between systems where they are issued, hosted on behalf of the learner, | ||
or verified by third parties in order to qualify the learner for job placement | ||
or other opportunities. Implementing systems can participate in a variety of | ||
roles | ||
|
||
#### Audiences | ||
|
||
This implementation guide is intended for product developers across various | ||
implementation roles necessary for the operation of an ecosystem where digital | ||
credentials efficiently recognize achievements that matter and flow to the | ||
contexts where these achievements each need to be understood. Products may be | ||
situated to perform one or more roles within the ecosystem, such as issuing | ||
credentials, hosting credentials on behalf of learners, and verifying | ||
credentials. | ||
|
||
### OB Overview | ||
|
||
An Open Badge (`OpenBadgeCredential`) is a individual achievement recognized | ||
about an individual learner. An Issuer makes a claim that a learner has met the | ||
criteria of a particular defined `Achievement`. | ||
|
||
### CLR Overview | ||
|
||
A Comprehensive Learner Record allows many Open Badge achievement credentials to | ||
be bundled together, with some additional associations between them defined. | ||
This is like another onion layer wrapping the inner set of credentials that is | ||
also signed. Individual component credentials are verifiable, and the wrapping | ||
CLR is also verifiable. CLRs can contain achievements from multiple different | ||
issuers to show a learner's progression with multiple organizations or | ||
subdivisions of a large educational institution. | ||
|
||
### Use Cases | ||
|
||
Use cases are outlined in each the Open Badges and Comprehensive Learner Record | ||
specifications. Use cases outline how each specification is intended to provide | ||
value to end users through interoperability between products. | ||
|
||
[Open Badges use cases](https://1edtech.github.io/openbadges-specification/ob_v3p0.html#use-cases) | ||
include: | ||
|
||
- Assertion Issuance to Wallet | ||
- Assertion Issuance Without a Wallet | ||
- Recipient Presentation of Assertion | ||
- License Issuance | ||
- Single Skill Assertion | ||
- Mapping Skills | ||
- Verifying Continuing Education | ||
- Self-assertion | ||
- Endorsement | ||
- Re-issue a <= 3.0 Badge to a 3.0 Badge | ||
- Authorization to Issue Given by Creator to Issuer | ||
- Revocation of an Issued Credential | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd recommend removing Revocation of an Issued Credential unless we are mentioning how revocation would work in the base spec. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I added a note about how the importance of the use cases and how revocation might be normatively covered in a future version of the spec in commit 232fba0. That's probably the optimal balance--I know some readers are really going to want to see something about revocation in here. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Historically it's been an important use-case and I tend to agree people new to this would find a mention of it helpful There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Section 9.1 references a new revocation status solution:
|
||
- Badge Class Status | ||
|
||
[Comprehensive Learner Record use cases (not yet published)](https://github.com/1EdTech/ComprehensiveLearnerRecord/blob/develop/clr_v2p0/usecases.md) | ||
include: | ||
|
||
- Recent graduate wants to hold a copy of their own official transcript | ||
- Job applicant provides proof of degree and transcript to potential employer | ||
- Job applicant provides proof of degree and specific courses/engagements from | ||
the CLR | ||
- Higher Ed Competency-Based Education | ||
- Issuer Asserting All Student Achievements Comprehensively as a CLR | ||
- Issuer Asserting Partial Transcript at Intermediate Points in Learning | ||
Journey | ||
- Issuer Asserting Student Up to Date Partial Transcript of Achievements as | ||
CLR on Request | ||
- Internal Organizational Staff Development and Promotion | ||
- Upskilling with Higher Ed Professional/Continuing Education | ||
- Teacher Placement with a District | ||
- Professional Licensure Test Taker results | ||
- Students in Tutoring Program | ||
|
||
### OB/CLR in the 1EdTech Ecosystem |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
## Migrating from OB 2.0, OB 2.1, and CLR 1.0 | ||
|
||
Open Badges 3.0 and Comprehensive Learner Record 2.0 are major releases, and | ||
objects published under these versions are not backwards-compatible | ||
|
||
Issuers who use Open Badges 2.0 typically make available standard-compliant | ||
endpoints for each Issuer Profile, BadgeClass, and Assertion. In addition to | ||
enabling verification of their badge awards, these endpoints often also serve to | ||
present human-readable information to clients in HTML when HTML is requested by | ||
browsers. Social media networks to which badge awards are shared gather | ||
information to display awards from these endpoints as | ||
[Open Graph Protocol](https://ogp.me/) metadata. Exceptions to the pattern of | ||
one endpoint per Assertion or BadgeClass occur for implementers who have chosen | ||
to use | ||
[OB 2.0 signed verification](https://www.imsglobal.org/sites/default/files/Badges/OBv2p0Final/index.html#SignedBadge) | ||
for assertions or | ||
[ephemeral BadgeClass IDs](https://www.imsglobal.org/sites/default/files/Badges/OBv2p0Final/index.html#BadgeClass) | ||
in the `urn:uuid` namespace. | ||
|
||
For any system already using hosted endpoints for these objects, use cases | ||
remain within the 3.0 ecosystem to continue that support in addition to | ||
delivering these objects compliant with 3.0. In OB 3.0 and CLR 2.0, assertions | ||
become `OpenBadgeCredentials` or `AchievementCredentials` (an alias), and | ||
`BadgeClasses` become `Achievements`, which may be more likely to use `urn:uuid` | ||
identifiers. As the ecosystem transitions to support OB 3.0 serialization of | ||
these objects, some products will continue to support OB 2.0 representations, so | ||
an efficient transition for issuer services likely involves a window of | ||
continued support for 2.0 with no breaking changes for clients who rely on it | ||
today. | ||
|
||
The new OB 3.0 and CLR 2.0 specifications each define APIs over which | ||
credentials can be exchanged, from issuers, to holders and then to displayers, | ||
but as these standards implement Verifiable Credentials | ||
|
||
As portable signed credentials, Open Badges and CLR will take advantage of newly | ||
expanded options for both the potential of these credentials to contribute to | ||
understanding of skills, qualifications and experience, but also expanded | ||
privacy options for learners to control how their data is used and shared. The | ||
OB 3.0 and CLR 2.0 releases represent a beginning, but these capabilities will | ||
take time and require the launch of new features and new products to deliver on | ||
their potential impact. A transition to this generation of specification should | ||
be non-destructive but should also move quickly to take advantage of new | ||
capabilities. | ||
|
||
The recommendations in this guide are intended to identify opportunities for | ||
interoperable implementation of of the Open Badges and Comprehensive Learner | ||
Record specifications. This serves goals of enabling (a) immediate improvement | ||
of last-gen credentials due to next-gen thinking, and (b) gradual technology | ||
change. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
|
||
<head> | ||
<meta charset='utf-8'> | ||
<script src='https://purl.imsglobal.org/respec/respec-1edtech.js' class='remove'></script> | ||
<script src='../respec-support/local-biblio.js' class='remove'></script> | ||
<script src='../respec-support/contributors.js' class='remove'></script> | ||
<script src='../respec-support/iprs.js' class='remove'></script> | ||
|
||
<!-- Load VC proof add-on --> | ||
<script class="remove" src="https://purl.imsglobal.org/respec/respec-vc.js"></script> | ||
|
||
<!-- Load the MPS configuration --> | ||
<script class="remove" src="../mps-config.js"></script> | ||
|
||
<!-- Load ajv2019 (Another JSON Schema Validator) if you want your examples validated --> | ||
<script class="remove" src="https://cdnjs.cloudflare.com/ajax/libs/ajv/8.11.0/ajv2019.bundle.min.js" | ||
integrity="sha512-C+5LzjYlC8qhPFniPXiod8efyXJ3fDRCUS87L8o8z5CGt/1LHflMozW6py7s16Z+TJy52C9teuDUq6iq2Nft7A==" | ||
crossorigin="anonymous" referrerpolicy="no-referrer"></script> | ||
|
||
<script class='remove'> | ||
var respecConfig = { | ||
mainSpecTitle: "Open Badges Specification", | ||
mainSpecBiblioKey: "OB-30", | ||
specTitle: "Open Badges Implementation Guide", | ||
shortName: "ob", | ||
specNature: "informative", // spec nature is "normative" or "informative" | ||
specType: "impl", // spec type is "main", "cert", "impl", "errata" or other agreed upon string | ||
specVersion: "3.0", | ||
docVersion: "1.0", | ||
specStatus: "Base Document", | ||
specDate: "November 17, 2022", | ||
contributors: _contributors, | ||
localBiblio: _localBiblio, | ||
iprs: _iprs, | ||
xref: [ | ||
"did-core", | ||
"vc-data-model" | ||
], | ||
|
||
// Remove for IMS Final | ||
otherLinks: [{ | ||
key: "Issue Tracker", | ||
data: [{ | ||
value: "https://github.com/1EdTech/openbadges-specification/issues", | ||
href: "https://github.com/1EdTech/openbadges-specification/issues" | ||
}] | ||
}], | ||
|
||
// Add the MPS configuration to respecConfig | ||
mps: _mps, | ||
|
||
// Add VC proof examples | ||
postProcess: [ | ||
window.respecVc.createVcExamples | ||
], | ||
}; | ||
</script> | ||
</head> | ||
|
||
<body> | ||
<section id="abstract"> | ||
<h2>Abstract</h2> | ||
<section id="conformance"> | ||
<h3>Conformance Statements</h3> | ||
</section> | ||
</section> | ||
|
||
<section id="introduction" data-format="markdown" data-include="introduction.md"> | ||
</section> | ||
|
||
<section class="informative" data-format="markdown" data-include="getting-started.md"> | ||
</section> | ||
|
||
<section class="informative" data-format="markdown" data-include="recommended-practices.md"> | ||
</section> | ||
|
||
<section class="informative" data-format="markdown" data-include="reference-impls.md"> | ||
</section> | ||
|
||
<section class="informative" data-format="markdown" data-include="conformance.md"> | ||
</section> | ||
|
||
<section class="informative" data-format="markdown" data-include="migrating.md"> | ||
</section> | ||
|
||
<section class="informative" data-format="markdown" data-include="help.md"> | ||
</section> | ||
|
||
|
||
<section class="appendix informative" id="revisionhistory"> | ||
<h1>Revision History</h1> | ||
<table title="Revision History"> | ||
<thead> | ||
<tr> | ||
<th>Version No.</th> | ||
<th>Document Version</th> | ||
<th>Release Date</th> | ||
<th>Comments</th> | ||
</tr> | ||
</thead> | ||
<tbody> | ||
<tr> | ||
<td>Version 3.1 IMS Candidate Final</td> | ||
<td>1</td> | ||
<td>November 10, 2022</td> | ||
<td>Covers Issuer, Displayer, and Host conformance and certification.</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
</section> | ||
</body> | ||
|
||
</html> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note this
.prettierrc.json
will be removed before the final pull request. As a separate issue, a.editorconfig
or similar may be added to the repository, consistently with 1EdTech architect recommendations for all next-generation 1EdTech specs.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
...begin spaces vs tabs argument?