「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- フロントチャネルを可能な限り使わない。
- 認可に関連する情報をトランザクションに集約していく。
という方法を提案。
動機 †
様々なOAuth 2.0 拡張を、
- 同じような問題を解決するために
- 同じような不完全なコンポーネントを利用する。
と表現している。
...確かに、最近、
- 仕様が多過ぎると思い始めてきた。
- また、Clientが簡単に実装できなくなってきた。
と言う問題が目に付き始めた。
特徴 †
- OAuth 2.0と互換性は無い。
- トランザクションモデルをベースとした認可プロトコル
- OAuth XYZは初期OIDC の OpenID ABCを踏襲しているという説がある。
- 英語の文章には
「XYZプロトコルは、情報を渡すために
フロントチャネルを最小限に利用しようとしています。」
とある。
- これは、
「色々とバックエンドに押し込むため、フロントエンドには、
interact (interact_handle)しか露見しないからセキュア。」
と言う事らしい。
- 3D Secure(クレカ決済などで使用される本人認証サービス)
でも、同じようなフローになっているらしい。
詳細 †
- transaction (handle)と、
interact (interact_handle) を使用する。
バックエンドに押し込むことが出来る。
handle †
transaction (handle) †
バックチャンネルからトランザクション開始要求を行う。
これにより、transaction (handle)が発行され以降これを使用して処理する。
interact (interact_handle) †
クライアントとのinteract部分には、interact_handleを使用する。
これにより、フロントチャネルの使用を最小限にしている。
フロー †
- 様々なフローがXYZで表現できるらしい。
- サンプルとして、以下のフローが公開されている。
Authorization Code Flow †
Device Flow †
Client Credentials Flow †
Resource Owner's Password Credentials / Assertion Flow †
参考 †
Tags: :IT国際標準, :認証基盤, :ASP.NET Identity, :OAuth