<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>認可承諾</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">authorization grant</rt></rubyb></dfn>フローは、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 2.0</anchor>
において<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">資源所有者</anchor>にかわって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">資源</anchor>にアクセスするための<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>から得るための手続きです。
その方法として <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 2.0</anchor> では4種類の<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>承諾型</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">grant type</rt></rubyb></dfn>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新トークン</anchor>からの取得の計5通りのフローが用意されています。
<dfn><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">grant_type</anchor></code></dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>が用いたい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">承諾型</anchor>を指定するものです。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en">RFC 6749 - The OAuth 2.0 Authorization Framework</cite> (<time>2014-12-15 14:15:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6749#section-1.3">http://tools.ietf.org/html/rfc6749#section-1.3</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="en">RFC 6749 - The OAuth 2.0 Authorization Framework</cite> (<time>2014-12-15 14:15:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6749#section-4">http://tools.ietf.org/html/rfc6749#section-4</anchor-external><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <cite xml:lang="en">RFC 6749 - The OAuth 2.0 Authorization Framework</cite> (<time>2014-12-15 14:15:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6749#section-4.1.3">http://tools.ietf.org/html/rfc6749#section-4.1.3</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <cite xml:lang="en">RFC 6749 - The OAuth 2.0 Authorization Framework</cite> (<time>2014-12-15 14:15:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6749#section-4.3.2">http://tools.ietf.org/html/rfc6749#section-4.3.2</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <cite xml:lang="en">RFC 6749 - The OAuth 2.0 Authorization Framework</cite> (<time>2014-12-15 14:15:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6749#section-4.4.2">http://tools.ietf.org/html/rfc6749#section-4.4.2</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <cite xml:lang="en">RFC 6749 - The OAuth 2.0 Authorization Framework</cite> (<time>2014-12-15 14:15:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6749#section-4.5">http://tools.ietf.org/html/rfc6749#section-4.5</anchor-external></li></ul></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <cite xml:lang="en">RFC 6749 - The OAuth 2.0 Authorization Framework</cite> (<time>2014-12-15 14:15:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6749#section-8.3">http://tools.ietf.org/html/rfc6749#section-8.3</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <cite xml:lang="en">RFC 6749 - The OAuth 2.0 Authorization Framework</cite> (<time>2014-12-15 14:15:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6749#section-6">http://tools.ietf.org/html/rfc6749#section-6</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <cite xml:lang="en">RFC 6749 - The OAuth 2.0 Authorization Framework</cite> (<time>2014-12-15 14:15:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6749#section-8.3">http://tools.ietf.org/html/rfc6749#section-8.3</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <cite xml:lang="en">RFC 6749 - The OAuth 2.0 Authorization Framework</cite> (<time>2014-12-15 14:15:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6749#appendix-A.10">http://tools.ietf.org/html/rfc6749#appendix-A.10</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <cite xml:lang="en">Final: OAuth 2.0 Multiple Response Type Encoding Practices</cite> (<time>2014-02-26 05:28:26 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://openid.net/specs/oauth-v2-multiple-response-types-1_0.html">http://openid.net/specs/oauth-v2-multiple-response-types-1_0.html</anchor-external></li></ul></refs></section><section><h1>認可承諾</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可承諾<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">authorization grant</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">資源所有者</anchor>の (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">被保護資源</anchor>へのアクセスの) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可</anchor>を表す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">credentials</anchor>で、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>を得るために使うフローです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 2.0</anchor> は4種類の<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>承諾型</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">grant type</rt></rubyb></dfn>を定義すると共に、
拡張も認めています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><figure class="middle list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 2.0</anchor> 本体の4つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">承諾型</anchor></figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可符号</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗示的承諾</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">資源所有者合言葉credentials</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアントcredentials</anchor></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">承諾型</anchor>の一種ではありませんが 
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(とはいえ <code xmlns="http://www.w3.org/1999/xhtml" class="URI" xml:lang="en">grant_type</code> の値が割り当てられてはいますが)</weak>、
既にいずれかの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">承諾型</anchor>フローにより取得した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新トークン</anchor>を使って新たに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>を取得するフロー
(<code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">grant_type</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">refresh_token</anchor></code>) もあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenID</anchor> による <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 2.0</anchor> の拡張 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;28</anchor-internal></src> では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗示的承諾</anchor>の派生形
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">id_token</anchor></code> や、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可符号</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗示的承諾</anchor>の中間形 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Hybrid Flow</anchor>)
を幾通りか規定しています。また「<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">reponse_type</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">none</anchor></code>」なる形も規定しています。
これらは <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">response_type</anchor></code> 引数により区別されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Google</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">装置</anchor>向けの <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">grant_type</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">http://oauth.net/grant_type/device/1.0</anchor></code>
フローや <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 1.0</anchor> から <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 2.0</anchor> への移行のための
<code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">urn:ietf:params:oauth:grant-type:migration:oauth1</anchor></code> を規定しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">reddit</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアントcredentials</anchor><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">承諾型</anchor>と実質的に同じながら、
「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ログアウト</anchor>状態」や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">client_secret</anchor> を持たない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">公開</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>が使うべき
<code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">grant_type</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">https://oauth.reddit.com/grants/installed_client</anchor></code>
を定義しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SoundCloud</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新トークン</anchor>のかわりに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 1.0</anchor>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>を指定する <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">grant_type</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">oauth1_token</anchor></code>
を実装しているようです。</p></section><section><h1><code class="URI" xml:lang="en">grant_type</code> 引数</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">承諾型</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークンエンドポイント</anchor>の <dfn><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">grant_type</anchor></code></dfn>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>で指定することになります。 </p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークンエンドポイント</anchor>を使わない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗示的承諾型</anchor>を除きます。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 値としては、次のものがあります。</p><figure class="list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <code>grant_type</code> の値</figcaption><ul><li><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">authorization_code</anchor></code></li><li><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">password</anchor></code></li><li><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">client_credentials</anchor></code></li><li><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fb_exchange_token</anchor></code></li><li><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">refresh_token</anchor></code></li><li><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">urn:ietf:params:oauth:grant-type:saml2-bearer</anchor></code></li><li><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">urn:ietf:params:oauth:grant-type:jwt-bearer</anchor></code></li><li><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">urn:ietf:params:oauth:grant-type:migration:oauth1</anchor></code></li><li><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">http://oauth.net/grant_type/device/1.0</anchor></code></li><li><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">https://oauth.reddit.com/grants/installed_client</anchor></code></li><li><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">oauth1_token</anchor></code></li><li><code class="URI" xml:lang="en">urn:globus:auth:grant_type:dependent_token</code></li><li><code class="URI" xml:lang="en">urn:bitbucket:oauth2:jwt</code></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> その他、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>が定義する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">絶対URL</anchor>によって拡張の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">承諾型</anchor>を指定することができます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;15</anchor-internal></src>。
<code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">grant_type</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>で独自の値を指定する他、
追加の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>も必要に応じて指定します。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 2.0</anchor> の他の部分と違って、なぜか<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">承諾型</anchor>の拡張は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">絶対URL</anchor>
に限定されていて、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> でない短い値の登録は認められていないようです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA登録簿</anchor>も用意されていません。 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の他の仕様書で規定される値も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor>
になっていて、無駄に長くなっています。)</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> 構文としては、1文字以上の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII英数字</anchor>、<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-</anchor></code>、<code>.<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">U+002E</title></code>、
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">_</anchor></code> の列か、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3986</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URI参照</anchor>のいずれかとされています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;24</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URI参照</anchor>には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相対URL</anchor>も含まれるので、 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;10</anchor-internal> および <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal>
よりも構文上はかなり広い範囲の値が認められることとなります。この違いが意図的なものなのかどうかは不明です。</comment-p></section><section><h1>文脈</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークンエンドポイント</anchor>に対する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可符号</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>を取得する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>では、
<code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">grant_type</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>の値は <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">authorization_code</anchor></code>
としなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;12</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークンエンドポイント</anchor>に対する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">資源所有者合言葉credentials</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>を取得する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>では、
<code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">grant_type</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>の値は <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">password</anchor></code>
としなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークンエンドポイント</anchor>に対する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアントcredentials</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>を取得する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>では、
<code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">grant_type</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>の値は <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">client_credentials</anchor></code>
としなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;14</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークンエンドポイント</anchor>に対する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新トークン</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>を取得する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>では、
<code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">grant_type</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>の値は <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">refresh_token</anchor></code>
としなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal></src>。</p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 1.0</anchor> には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">承諾型</anchor>に相当するものはありませんでしたが、
標準機能として <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">oauth_callback</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">oob</anchor></code>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Google</anchor> 独自機能として <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2-legged OAuth</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Twitter</anchor> 独自機能として <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xAuth</anchor> がありました。</p></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">response_type</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">承諾型</anchor>を指定するものとされていますが、
そちらは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可エンドポイント</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可符号</anchor>または<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗示的承諾型</anchor>のいずれかを選択するものとなっています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GitHub</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Heroku</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth</anchor> の通常のフローとは別に、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可</anchor>を操作する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor>
を用意しています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;32</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;34</anchor-internal></src>。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth</anchor> フローを介さずに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor>
から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>を発行したり、 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor> ではなく)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可</anchor>を取り消したりできます。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <cite xml:lang="en">Authorizations | GitHub API</cite> (<time>2015-03-05 18:02:01 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developer.github.com/v3/oauth_authorizations/">https://developer.github.com/v3/oauth_authorizations/</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <cite xml:lang="en">Platform API Reference | Heroku Dev Center</cite> (<time>2015-03-06 08:18:07 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://devcenter.heroku.com/articles/platform-api-reference#oauth-authorization">https://devcenter.heroku.com/articles/platform-api-reference#oauth-authorization</anchor-external></li></ul></refs></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <cite xml:lang="en">draft-recordon-oauth-v2-device-00 - OAuth 2.0 Device Profile</cite>
(<time>2015-01-19 10:23:16 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/draft-recordon-oauth-v2-device-00">https://tools.ietf.org/html/draft-recordon-oauth-v2-device-00</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <cite xml:lang="en">draft-hunt-oauth-chain-01 - Chain Grant Type for OAuth2</cite>
(<time>2015-01-27 00:08:36 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/draft-hunt-oauth-chain-01">https://tools.ietf.org/html/draft-hunt-oauth-chain-01</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <cite xml:lang="en">draft-zhou-oauth-owner-auth-01 - Owner Authorization Grant Type Profile for OAuth 2.0</cite>
(<time>2015-02-19 18:40:51 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/draft-zhou-oauth-owner-auth-01">https://tools.ietf.org/html/draft-zhou-oauth-owner-auth-01</anchor-external></p></section></body></html>