クライアント資格証明権限付与タイプ
認可スコープがクライアントの制御下の保護リソースに制限されている場合、またはOAuth認可サーバーに登録された保護リソースに制限されている場合、この付与タイプを使用します。
次のダイアグラムに、クライアント資格証明権限付与タイプのフローを示します。
このOAuthフロー:
-
クライアントが開始したイベント(モバイル・デバイス上のアプリケーションのスケジュール済バックグラウンド更新など)は、OAuthクライアント・アプリケーションから保護されているリソースへのアクセスをリクエストします。
-
クライアント・アプリケーションは、独自の資格証明を提示してアクセス・トークン(多くの場合、リフレッシュ・トークン)を取得します。このアクセス・トークンは、特定のリソース所有者ではなく、クライアント自体のリソースに関連付けられているか、それ以外の場合は、クライアント・アプリケーションの実行が認可されているリソース所有者に関連付けられています。
-
認可サーバーは、クライアント・アプリケーションにアクセス・トークンを返します。
-
クライアント・アプリケーションは、APIコールでアクセス・トークンを使用して、デバイス上のアプリケーションを更新します。
機能 | 選択可能 |
---|---|
クライアントの認証が必要 | はい |
ユーザー資格証明をクライアントに認識させる必要があります。 | いいえ |
ブラウザベースのエンド・ユーザーとの対話 | いいえ |
認証のために外部アイデンティティ・プロバイダの使用が可能 | いいえ |
リフレッシュ・トークンを許可 | いいえ |
アクセス・トークンがクライアント・アプリケーションのコンテキスト内 | はい |
フローの例は、クライアント資格証明権限付与タイプの認可フローの例を参照してください。
クライアント資格証明権限付与タイプの認可フローの例
クライアント資格証明付与タイプには固有の付与フローがあり、これには、リソース所有者が関与しません。このシナリオ例では、クライアント・アプリケーションは、リソース所有者が関与しないプロセス(バッチ・プロセス、サーバー間タスクなど)を実行しています。
この付与を使用する場合、クライアント・アプリケーションが独自の資格証明(IDとシークレット)またはアサーションでアクセス・トークンをリクエストし、クライアント・アプリケーション自体のかわりにアクセス・トークンを使用します。この付与フローは、メンテナンス用のAPIメソッドなど、特定のリソース所有者に適用されるメソッドのかわりに、クライアント・アプリケーションによって一般的に使用される一部のAPIメソッドをサービス・プロバイダが提供する必要がある場合に最適です。
アイデンティティ・ドメイン・コンソールでクライアント資格証明付与タイプを使用してアプリケーションを作成する場合:
-
「信頼できるアプリケーション」をアプリケーション・タイプとして指定します。これは、モバイル/ブラウザ・アプリケーションにはクライアント・シークレットがなく、クライアント資格証明権限付与を使用できないためです。
-
権限付与タイプとして「Client Credentials」を選択します。
クライアント資格証明付与タイプおよび認可フロー・ダイアグラムの詳細は、クライアント資格証明付与タイプを参照してください。
承認フロー
-
クライアントが開始したイベント(スケジュール済タスクなど)は、OAuthクライアント・アプリケーションから保護されているリソースへのアクセスをリクエストします。
イベントURLには、リクエストされているアクセスのタイプを示す問合せパラメータが含まれます。
認可ヘッダーを使用したリクエストの例
curl -i -H 'Authorization: Basic <base64Encoded clientid:secret>' -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=client_credentials&scope=<scope value>'
JWTクライアント・アサーションを使用したリクエストの例
curl -i -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=client_credentials&client_id=<client-id>&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=<client-assertion>&scope=<scope value>'
- クライアント・アプリケーションは、OAuth認可サーバーからアクセス・トークンをリクエストします。
- OAuth認可サーバーは、送信された認可ヘッダーまたはアサーションに基づいてクライアント・アプリケーションを認証し、リクエスト側クライアント・アプリケーションに付与されたアプリケーション・ロールで示される権限に基づいて適用可能なすべてのスコープを含むアクセス・トークンを返します。
- クライアント・アプリケーションは、アクセス・トークンを使用してリクエストを実行します。