MENU
    OAuth2.0とは?
    • 23 Jan 2025
    • 1 読む分
    • 寄稿者

    OAuth2.0とは?


    記事の要約

    OAuth2.0について

    OAuth2.0の解説へようこそ!OAuth2.0は、Tulipの世界では強力でありながら、誤解されがちな認証プロトコルです。この記事では、OAuth2.0の基本を紐解き、Tulipでサポートされている認証フローを案内し、初期コネクタの設定方法を理解し、シームレスなスタートのための簡単なヒントを共有します。

    OAuth2.0は複雑なため、この記事では詳細な技術的な説明は省略します。Tulipのリフレッシュトークンの扱い、スコープとオーディエンスの管理、カスタムコネクタの設定について詳しく知りたい場合は、この詳細なOAuth2.0テクニカルガイドをチェックすることをお勧めします。

    認証タイプ

    Tulipは3つのOAuth2.0認証タイプをサポートしています:OAuth2.0(サービスアカウント)、OAuth2.0(ユーザー認証情報)、OAuth2.0(クライアント認証情報)です。重要な違いは、ユーザー間でクレデンシャルを共有する方法と、OAuth 仕様に対して実行されるフローにあります。固有の OAuth フローの完全なリストと説明は、https://frontegg.com/blog/oauth-flows。

    Note

    In older Tulip versions, OAuth2.0 (Service Account) was called OAuth2 (Admin), and OAuth2.0 (User Credentials) was called OAuth2 (Operator).

    認証コードフロー:

    • **OAuth2.0(サービスアカウント):**Tulip Playerのすべてのユーザーに対して、コネクターテスト中に提供された認証情報を使用します。組織全体で認証情報を共有する場合に最適です。認証情報の有効期限が切れた場合は、管理者の再認証が必要です。
    • **OAuth2.0(ユーザー認証情報):**Tulip Playerにログインしているユーザーに基づいて認証をセグメント化します。ユーザーが認証していない場合、または認証が失効した場合、ユーザーはTulip Player内でOAuthフローを受けます。

    クライアント認証フロー:

    • **OAuth2.0(クライアント認証情報):**このグラント・タイプは、Tulipがクライアントの認証情報(クライアントIDとクライアント・シークレット)を使用して認証サーバーと認証することによってアクセストークンを取得するために使用されます。

    基本事項の説明

    詳細を掘り下げる前に、エンバイロメントを理解し、コネクタホストとその機能の概要を知ることをお勧めします。

    OAuth2.0は、Tulip(クライアント)がビジネスシステムとのアイデンティティを確立するためのメカニズムとして機能します。

    認証コードフロー

    :::(警告) (警告) ユーザー認証プロセスを完了するには、ブラウザでポップアップを許可する必要があります。コネクタが複数の環境で構成されている場合、認証時に各環境で個別のポップアップ・ウィンドウが開きます。

    Chromeでポップアップが有効になっているかどうかを確認する方法:

    1. Chromeを開き、ウィンドウの右上にある3つの点のメニューをクリックします。
    2. ドロップダウンメニューから**「設定」を**選択します。
    3. 下にスクロールし、「プライバシーとセキュリティ」をクリックします。
    4. プライバシーとセキュリティ」セクションで、「サイト設定」をクリックします。
    5. 下にスクロールし、「ポップアップとリダイレクト」をクリックします。
    6. トグルがポップアップを許可に設定されていることを確認するか、または手動でポップアップの表示を許可するサイトのリストにウェブサイトを追加します。

    ポップアップがブロックされると、アドレスバーに小さなアイコンが表示されます。このアイコンをクリックすると、チューリップからのポップアップをすばやく許可できます。
    :::

    アクセスはハンドシェイクによって許可され、Tulipは主に最も一般的なOAuthフローであるAuthorization Code Flowをサポートしています。以下は、このフローがどのように展開されるかを要約した概要です:

    1. ユーザは Connector を保存する前にTestボタンをクリックしてフローを開始します。
    2. Tulip は OAuth プロバイダから認証サーバと通信し、クライアント ID、スコープ(アクセスしようとしているもの)、およびその他の関連する詳細などの特定のパラメータを共有します。
    3. 認証サーバーは、ユーザーにアクセスを許可するよう促します:

    1. ユーザが同意すると、認証サーバは認証コードを生成し、認証ウィンドウを終了する。
    2. 認証コードで武装したTulipは、トークン・エンドポイントにアクセスし、認証コード、クライアントID、クライアント・シークレット、その他のプロパティを提供して、トークンを安全に要求します。
    3. 認証コードを検証した後、サーバーはトークン、およびオプションでリフレッシュ・トークンを応答します。このトークンは、ユーザー認証されたリクエストのためのものです。
    4. Tulipは、提供されたトークンでユーザーに代わってリクエストを実行できるようになります。

    実行の流れを理解するために、以下の図をご覧ください:Token Request

    OAuth2 Graphic

    クライアント認証フロー

    クライアント認証フローは、主に2つのビジネスシステムが相互作用するために使用されます。このフローは一度構成され、その後すべてのユーザーによって共有されます。

    1. ユーザはコネクタを保存する前に**テスト・**ボタンをクリックしてフローを開始する。
    2. Tulip は OAuth プロバイダから認証サーバと通信し、クライアント ID、スコープ(アクセスしようとしているもの)、その他の関連する詳細などの特定のパラメータを共有します。
    3. 認証サーバーは、クライアントIDとクライアントシークレットが正確であることを前提として、アクセストークンを返します。オプションで、リフレッシュトークンを返すこともできます。このトークンは、ユーザが認証したリクエストのためのものです。
    4. Tulipは、提供されたトークンを使って、ユーザーに代わってリクエストを実行することができます。

    Client Credentials Flow

    OAuthの設定

    On-Prem Services

    The Authorize and Token endpoints must be accessible to the cloud for Tulip to execute authentication for connectors.

    image.png{高さ="350" 幅=""}です。

    認証コードのURL

    これは、認証コードフローのステップ2でTulipがコンタクトするURLです。OAuthプロバイダのAPIドキュメントに記載されており、一般的には/authまたは/authorizeで終わります。

    注意: このフィールドはクライアント認証情報には存在しません。

    アクセストークン URL

    認証サーバからのレスポンスの後、認証用のトークンを取得するために Access Token URL へのリクエストが行われます。通常、/token で終わる。

    注:このフィールドは、クライアント認証情報には存在しない。

    クライアント ID とクライアントシークレット

    クライアント ID は、OAuth プロバイダの UI から生成され、認証コードの最初のリクエストで渡される。クライアント ID とクライアントシークレットは、すべてのトークン要求に付随する。

    デフォルトの有効期限 (秒)

    このフィールドは、有効期限が明示的に指定されていない場合、またはexpires_inフィールド以外の別のメカニズムで定義されている場合に、トークンがリフレッシュされるデフォルトの時間(秒)を指定します。

    オーディエンスおよびスコープ

    Audienceはユーザがアクセスを求める特定のアセットを指定し、Scopeはこれらのアセットに必要なアクションを定義します。どちらも、ステップ2の認証コードリクエストで伝えられます。

    追加オプション

    • Send token request data as JSON: トークンURLに送信されるリクエストのエンコード形式を変更します。特定の統合に必要な場合は有効にします。
    • **リフレッシュリクエストに認証ヘッダーを送信する:**有効にすると、リフレッシュリクエストに追加のヘッダーを追加します。
    • **ユーザー同意プロンプトをスキップします:**認証コードリクエストのプロンプト属性を制御します。無効にすると同意に設定され、有効にするとログインに設定されます。
    Note

    For some integrations, exclude or set the prompt attribute to none. Reach out to support@tulip.co for further functionality.

    さらに掘り下げる

    もっと詳しく知りたいですか?以下の記事を参照してください:


    この記事は役に立ちましたか?