Skip to content

Commit 8605b10

Browse files
committed
Add Local Delegated Agent Identity Architecture draft
1 parent 1e44f02 commit 8605b10

27 files changed

Lines changed: 3207 additions & 1 deletion

.github/workflows/build.yml

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
name: Build and publish drafts
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
pages: write
12+
id-token: write
13+
14+
concurrency:
15+
group: pages
16+
cancel-in-progress: false
17+
18+
jobs:
19+
build:
20+
runs-on: ubuntu-latest
21+
container:
22+
image: ubuntu:24.04
23+
steps:
24+
- name: Install runner prerequisites
25+
run: |
26+
apt-get update
27+
apt-get install -y --no-install-recommends \
28+
git ca-certificates curl build-essential libssl-dev libyaml-dev zlib1g-dev
29+
30+
- uses: actions/checkout@v4
31+
32+
- uses: ruby/setup-ruby@97ecb7b512899eb71ab1bf2310a624c6f1589ac6 # v1.308.0
33+
with:
34+
ruby-version: '3.3'
35+
36+
- uses: actions/setup-python@v5
37+
with:
38+
python-version: '3.12'
39+
40+
- name: Install build tools
41+
run: |
42+
gem install kramdown-rfc
43+
pip install xml2rfc
44+
45+
- name: Build drafts
46+
run: make all xml
47+
48+
- name: Stage site
49+
run: |
50+
mkdir -p _site
51+
cp -r assets _site/assets
52+
53+
for f in draft-*.html draft-*.txt draft-*.xml; do
54+
cp "$f" "_site/$f"
55+
done
56+
57+
{
58+
echo '<!doctype html>'
59+
echo '<html lang="en">'
60+
echo '<head>'
61+
echo '<meta charset="utf-8">'
62+
echo '<title>1Password Agent Identity Spec Drafts</title>'
63+
echo '<link rel="stylesheet" href="assets/1password.css">'
64+
echo '<style>body{max-width:48rem;margin:3rem auto;padding:0 1rem;font-family:system-ui,sans-serif;line-height:1.5;}ul{padding-left:0;list-style:none;}li{margin:1.25rem 0;}.formats a{margin-right:0.5rem;}</style>'
65+
echo '</head>'
66+
echo '<body>'
67+
echo '<h1>1Password Agent Identity Spec Drafts</h1>'
68+
echo '<ul>'
69+
for d in $(ls draft-*.html | sed 's/\.html$//' | sort -u); do
70+
echo "<li><a href=\"$d.html\"><strong>$d</strong></a><div class=\"formats\"><a href=\"$d.html\">HTML</a> · <a href=\"$d.txt\">Text</a> · <a href=\"$d.xml\">XML</a></div></li>"
71+
done
72+
echo '</ul>'
73+
echo '</body>'
74+
echo '</html>'
75+
} > _site/index.html
76+
77+
- name: Upload build artifacts
78+
uses: actions/upload-artifact@v4
79+
with:
80+
name: drafts
81+
path: |
82+
draft-*.xml
83+
draft-*.html
84+
draft-*.txt
85+
86+
- name: Upload Pages artifact
87+
if: github.ref == 'refs/heads/main'
88+
uses: actions/upload-pages-artifact@v3
89+
with:
90+
path: _site
91+
92+
deploy:
93+
if: github.ref == 'refs/heads/main'
94+
needs: build
95+
runs-on: ubuntu-latest
96+
container:
97+
image: ubuntu:24.04
98+
environment:
99+
name: github-pages
100+
url: ${{ steps.deployment.outputs.page_url }}
101+
steps:
102+
- id: deployment
103+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Build outputs — regenerated from the .md source by `make` / CI
2+
draft-*.html
3+
draft-*.txt
4+
draft-*.xml
5+
6+
# Proprietary brand fonts — not cleared for public redistribution
7+
assets/fonts/
8+
9+
# Local-only scratch
10+
file.txt
11+
.DS_Store
12+
.decibel/

.refcache/reference.RFC.2119.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
2+
<front>
3+
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
4+
<author fullname="S. Bradner" initials="S." surname="Bradner"/>
5+
<date month="March" year="1997"/>
6+
<abstract>
7+
<t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
8+
</abstract>
9+
</front>
10+
<seriesInfo name="BCP" value="14"/>
11+
<seriesInfo name="RFC" value="2119"/>
12+
<seriesInfo name="DOI" value="10.17487/RFC2119"/>
13+
</reference>

.refcache/reference.RFC.6749.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<reference anchor="RFC6749" target="https://www.rfc-editor.org/info/rfc6749">
2+
<front>
3+
<title>The OAuth 2.0 Authorization Framework</title>
4+
<author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
5+
<date month="October" year="2012"/>
6+
<abstract>
7+
<t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
8+
</abstract>
9+
</front>
10+
<seriesInfo name="RFC" value="6749"/>
11+
<seriesInfo name="DOI" value="10.17487/RFC6749"/>
12+
</reference>

.refcache/reference.RFC.7519.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<reference anchor="RFC7519" target="https://www.rfc-editor.org/info/rfc7519">
2+
<front>
3+
<title>JSON Web Token (JWT)</title>
4+
<author fullname="M. Jones" initials="M." surname="Jones"/>
5+
<author fullname="J. Bradley" initials="J." surname="Bradley"/>
6+
<author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
7+
<date month="May" year="2015"/>
8+
<abstract>
9+
<t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
10+
</abstract>
11+
</front>
12+
<seriesInfo name="RFC" value="7519"/>
13+
<seriesInfo name="DOI" value="10.17487/RFC7519"/>
14+
</reference>

.refcache/reference.RFC.7591.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<reference anchor="RFC7591" target="https://www.rfc-editor.org/info/rfc7591">
2+
<front>
3+
<title>OAuth 2.0 Dynamic Client Registration Protocol</title>
4+
<author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
5+
<author fullname="M. Jones" initials="M." surname="Jones"/>
6+
<author fullname="J. Bradley" initials="J." surname="Bradley"/>
7+
<author fullname="M. Machulak" initials="M." surname="Machulak"/>
8+
<author fullname="P. Hunt" initials="P." surname="Hunt"/>
9+
<date month="July" year="2015"/>
10+
<abstract>
11+
<t>This specification defines mechanisms for dynamically registering OAuth 2.0 clients with authorization servers. Registration requests send a set of desired client metadata values to the authorization server. The resulting registration responses return a client identifier to use at the authorization server and the client metadata values registered for the client. The client can then use this registration information to communicate with the authorization server using the OAuth 2.0 protocol. This specification also defines a set of common client metadata fields and values for clients to use during registration.</t>
12+
</abstract>
13+
</front>
14+
<seriesInfo name="RFC" value="7591"/>
15+
<seriesInfo name="DOI" value="10.17487/RFC7591"/>
16+
</reference>

.refcache/reference.RFC.7636.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<reference anchor="RFC7636" target="https://www.rfc-editor.org/info/rfc7636">
2+
<front>
3+
<title>Proof Key for Code Exchange by OAuth Public Clients</title>
4+
<author fullname="N. Sakimura" initials="N." role="editor" surname="Sakimura"/>
5+
<author fullname="J. Bradley" initials="J." surname="Bradley"/>
6+
<author fullname="N. Agarwal" initials="N." surname="Agarwal"/>
7+
<date month="September" year="2015"/>
8+
<abstract>
9+
<t>OAuth 2.0 public clients utilizing the Authorization Code Grant are susceptible to the authorization code interception attack. This specification describes the attack as well as a technique to mitigate against the threat through the use of Proof Key for Code Exchange (PKCE, pronounced "pixy").</t>
10+
</abstract>
11+
</front>
12+
<seriesInfo name="RFC" value="7636"/>
13+
<seriesInfo name="DOI" value="10.17487/RFC7636"/>
14+
</reference>

.refcache/reference.RFC.8174.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
2+
<front>
3+
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
4+
<author fullname="B. Leiba" initials="B." surname="Leiba"/>
5+
<date month="May" year="2017"/>
6+
<abstract>
7+
<t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
8+
</abstract>
9+
</front>
10+
<seriesInfo name="BCP" value="14"/>
11+
<seriesInfo name="RFC" value="8174"/>
12+
<seriesInfo name="DOI" value="10.17487/RFC8174"/>
13+
</reference>

.refcache/reference.RFC.8252.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<reference anchor="RFC8252" target="https://www.rfc-editor.org/info/rfc8252">
2+
<front>
3+
<title>OAuth 2.0 for Native Apps</title>
4+
<author fullname="W. Denniss" initials="W." surname="Denniss"/>
5+
<author fullname="J. Bradley" initials="J." surname="Bradley"/>
6+
<date month="October" year="2017"/>
7+
<abstract>
8+
<t>OAuth 2.0 authorization requests from native apps should only be made through external user-agents, primarily the user's browser. This specification details the security and usability reasons why this is the case and how native apps and authorization servers can implement this best practice.</t>
9+
</abstract>
10+
</front>
11+
<seriesInfo name="BCP" value="212"/>
12+
<seriesInfo name="RFC" value="8252"/>
13+
<seriesInfo name="DOI" value="10.17487/RFC8252"/>
14+
</reference>

.refcache/reference.RFC.8693.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<reference anchor="RFC8693" target="https://www.rfc-editor.org/info/rfc8693">
2+
<front>
3+
<title>OAuth 2.0 Token Exchange</title>
4+
<author fullname="M. Jones" initials="M." surname="Jones"/>
5+
<author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
6+
<author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
7+
<author fullname="J. Bradley" initials="J." surname="Bradley"/>
8+
<author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
9+
<date month="January" year="2020"/>
10+
<abstract>
11+
<t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
12+
</abstract>
13+
</front>
14+
<seriesInfo name="RFC" value="8693"/>
15+
<seriesInfo name="DOI" value="10.17487/RFC8693"/>
16+
</reference>

0 commit comments

Comments
 (0)