OAuth 2.0クライアント資格情報を使用する

OAuth 2.0は、リモートAPIやユーザーデータなどのリソースセットへのアクセス権を付与する認可プロトコルです。

OAuth 2.0の詳細については、「OAuth 2.0とは何か?」を参照してください。

このタスクを開始する

クライアント資格情報付与タイプを使ってOAuth 2.0認証を追加する手順は次のとおりです。

  1. [概要]タブをクリックします。

  2. 新規接続の認証を構成するときは、[Set up authentication(認証をセットアップ)]をクリックします。既存の認証方式またはパラメーターを変更するときは、[Edit(編集)]をクリックします。

  3. [認証]ダイアログで[Auth Type(認証タイプ)]ドロップダウンリストから[OAuth 2.0]を選択します。

  4. [Grant Type(付与タイプ)]ドロップダウンメニューでは、[クライアント資格情報]を選択します。

  5. [Client Authentication Type(クライアント認証タイプ)]ドロップダウンで、次のいずれかのオプションを選択します。

    • [Send as basic auth header (client_secret_basic)(基本認証ヘッダーとして送信)]:認証では、クライアント資格情報はHTTP認証ヘッダーとして送信されます。これが推奨されるオプションです。

    • [Send as basic auth body (client_secret_post)(基本認証本文として送信)]:認証では、クライアント資格情報はリクエストの本文として送信されます。

  6. 次のフィールドに値を追加します。

フィールド 定義

Paths(パス)

Token URL(トークンURL)

フローがクライアント資格情報を送信する場所。

このフィールドは完全URLである必要があります(例:https://api.box.com/oauth2/token)。

Credentials(資格情報)

Client ID(クライアントID)

サービスによって提供される公開された文字列。これは、OAuthアプリケーションの識別と認証URLの構築に使用されます。

このフィールドの値は、接続の作成時にエンドユーザーが指定します。

このフィールドは削除できず、[Preview(プレビュー)]ウィンドウには編集不可能なフィールドとして表示されます。

Client Secret(クライアントシークレット)

サービスによって提供されるプライベート文字列値。この値は、サービスに対してアプリケーションIDを認証するために使用されます。

このフィールドの値は、接続の作成時にエンドユーザーが指定します。

このフィールドは削除できず、[プレビュー]ウィンドウには編集不可能なフィールドとして表示されます。

Scopes(スコープ)(任意)

Name(名前)

各スコープは、サービスからの接続リクエストの詳細なアクセスレベルを定義します。接続にOAuthスコープを追加する方法は次のとおりです。

  1. [Add Scope(スコープを追加)]をクリックして、この接続用に要求する一意のスコープをサービスに追加します。

  2. スコープ名を入力します(例:openidoffline_access)。

    トグルを使ってスコープが[Required(必須)]であるかどうかを指定します。スコープを[Required(必須)]としてマークするには、事前に[Allow users to customize scopes(スコープのカスタマイズをユーザーに許可)]オプションを有効化しておく必要があります。

    必須としてマークされたスコープは常に要求されます。通常は、コネクターが正しく機能するために必要なスコープです。また、APIのすべてのエンドポイントを呼び出すCAPIAカードでは、通常は接続によってすべてのスコープが有効化されている必要があります。

    追加する各スコープは、[新規接続]プレビューの[権限]タブに表示されます。

  3. ユーザーがスコープリストを変更できるようにするには、[Allow users to customize scopes(スコープのカスタマイズをユーザーに許可)]オプションを選択します。

    この機能は、異なるスコープを使ってサービスを呼び出す複数の接続をユーザーが作成できるようにする場合に有用です。たとえば、これらのユーザーは最小権限の原則に合わせてスコープを削除できます。

    たとえば、メールサービスへの1つの接続には、管理を合理化するためにread-emailスコープが含まれる場合があります。同一サービスへのより高度な別の接続には、delete-emailスコープやsend-emailスコープも含まれるかもしれません。

    このオプションは、サービスから要求されるスコープを定義するための2つの選択肢を提供するセレクターを[権限]タブに追加します。

    • [Use default scopes(デフォルトスコープを使用)]:定義済みのすべてのスコープを要求します。

    • [Customize scopes(スコープをカスタマイズ)]:ユーザーは、元のリストから必須以外のスコープを削除できます。必須スコープは消去できません。

  4. ユーザーがコネクターを通じて追加のスコープリクエストを追加できるようにするには、[Allow users to request additional scopes(追加スコープの要求をユーザーに許可)]オプションを選択します。

    スコープは[Manually add scopes(スコープを手動で追加)]フィールドに入力できます。この入力フィールドの文字数制限は500です。スコープは個別に追加することも、スペースまたはカンマ区切りのスコープリストとして追加することもできます。区切り文字は、[Scopes Delimiter(スコープ区切り文字)]フィールドの選択と一致します。

    このオプションを選択しない場合、ユーザーはOkta Ideasサイトを通じてコネクターへの新規スコープの追加を求めることができます。このリンクは、[権限]タブの下部にあります。

    このオプションは、[Allow users to customize scopes(スコープのカスタマイズをユーザーに許可)]オプションを有効にした場合にのみ利用できます。

コネクター認証の任意のコンポーネント(新規スコープのカスタマイズなど)を変更した場合、その更新は開発環境で過去に確立されたアクションカードや接続には適用されません。ただし、Oktaが提供する完成済みのコネクターには、ファーストパーティコネクター、サードパーティコネクターを問わず、この制限はありません。

Scopes Delimiter(スコープ区切り文字)

ユーザーが個々のスコープを区切って入力するための区切り文字を指定します。

オプションはスペースカンマです。

Parameters(パラメーター)(任意)

パラメーターを使用することで、インスタンスやサブドメインなど、認証に必要な追加情報をコネクターユーザーから収集できます。これらのフィールドは、ユーザーが接続を最初に作成する際に表示され、必須です。

Label(ラベル):コネクターのセットアップ時に[New Connection(新規接続)]ダイアログに表示されるパラメーターの名前。

Key(キー):サービスで使用されるキー/値ペアのテキスト値。たとえば、api_keyapplication_keyauthentication

Type(タイプ):3つのフィールドタイプから選択できます。

  • テキスト:ユーザーにプレーンテキストフィールドを表示します。これは、加工なしのオープンテキストフィールドです。

  • パスワード:加工されたテキストフィールドを表示します。このフィールドに入力したテキストはユーザーには表示されません。

  • ドロップダウンリスト:ユーザーが選択する値の、手動で作成されたドロップダウンリストを表示します。

クライアント資格情報付与タイプでは、デフォルトでClient ID(クライアントID)パラメーターとClient Secret(クライアントシークレット)パラメーターが表示されます。テキストを追加してこれらのラベル用に一意の名前を作成することはできますが、これらのパラメーターは削除できません。

Config Values(構成値)(オプション)

コネクターに対してユーザーを認証する方法を定義するために、その他の設定値が必要になる場合があります。[Add Config Value(構成値を追加)]をクリックします。

Label(ラベル):コネクターのセットアップ時に[New Connection(新規接続)]ダイアログに表示される構成値の名前。

Definition(定義):このフィールドに静的な値が入力されるか、ヘルパーフローからの値が入力されるかを示します。

  • Static Value(静的な値)であれば、[Value(値)]フィールドに値を入力します。

  • Value from Helper Flow(ヘルパーフローからの値)であれば、[Choose Flow(フローの選択)]ダイアログでフローを選択します。

Type(タイプ):2つのフィールドタイプから選択できます。

  • テキスト:ユーザーにプレーンテキストフィールドを表示します。これは、加工なしのオープンテキストフィールドです。

  • パスワード:加工されたテキストフィールドを表示します。このフィールドに入力したテキストはユーザーには表示されません。

[Visible(可視性)]トグルは、コネクターの認証ダイアログに構成値を表示するかどうかを決定します。

次の手順

この認証方式を作成したら、認証方式を通じて呼び出しを管理するhttpHelperフローを作成する必要があります。「httpHelperフローの構築」を参照してください。