マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

JWT(JWS) Bearer Tokenをアサーションとして使用して、OAuth 2.0のAccess Tokenを要求する方法の定義。

仕様(7521)

ClientとResource Serverを統合するような状況下での利用が想定されている。

フレームワーク

Assertion Created by Third Party

STSによってアサーションを取得する。

Self-Issued Assertion

ローカルでアサーションを作成する。

アサーションのタイプ

Bearer Assertions

Holder-of-Key Assertions

この文脈上でのアサーション

できる。

パラメタ

grant_type

assertion

RFC7523を参照。

scope

要求された範囲は、OAuth 2.0 [RFC6749]の3.3節に記述されているとおり。

client_id

client_assertion_type

client_assertion

リクエスト・レスポンス

アクセストークン・リクエスト

エラー・レスポンス

仕様(7523)

JWT(JWS)アサーション

ペイロード(クレームセット)

JWT(JWS)の例

以下を、アクセストークン・リクエストする。

パラメタ

grant_type

urn:ietf:params:oauth:grant-type:jwt-bearer

assertion

前述のJWT(JWS)

scope

リクエスト・レスポンス

アクセストークン・リクエスト・レスポンス

エラー・レスポンス

クライアント認証

クライアント認証は、オプション

JWT(JWS)

ペイロード(クレームセット)

以下のClaimが必要だが、IDトークンが参考になる。

JWT(JWS)の署名検証により、認証を行う。

JWT(JWS)の例

パラメタ

リクエスト・レスポンス

認可リクエスト・レスポンス

エラー・レスポンス

参考

RFC 7521, 7522, 7523

用例

Googleの例

以下を見ると、

通常のOAuth 2.0の

以外に、

クライアント証明書(pfx形式の電子証明書)を使って、
サービスアカウントで認証する方法がある模様。

ちなみに、ここでは、Google.Apis.Analytics Client Libraryに
処理がラッピングされていたため。詳細が不明だったが、

以下を見ると、このClient Libraryの中では、JWTが使用されている模様。

これが、

「JWT bearer token authorizationグラント種別」

の用例である模様。

上記のサイトには、

Service Accounts = JWT Bearer Token Profile

であることが明記されている。

Microsoft (AzureAD) の例

Googleと同様に、以下を見ると、

通常のOAuth 2.0の

以外に、

「JWT bearer token authorizationグラント種別」

をサポートしている模様。

ただし、処理は、ADAL(Active Directory Authentication Library)
にラップされているためJWT作成処理の詳細などを見ることは出来ない。

Salesforceの例

以下のQiita記事を参照すると、Salesforceは、

の2つのフローをサポートしている模様。

原理はほぼ同じで、SAMLよりJWTのほうが動作環境的な制約は少ないとのこと。


Tags: :認証基盤, :クレームベース認証, :OAuth


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS