OAuth2.0の概念と連携

Prev Next

Classic/VPC環境で利用できます。

Open Authorization 2.0または OAuth2.0は、ウェブおよびアプリケーション認証と権限付与のためのオープン標準プロトコルです。このプロトコルでは、third-partyアプリケーションがユーザーのリソースにアクセスするための手順を定義し、サービスプロバイダの APIを使用する権限を付与します。代表的に NAVERログイン、Googleログインなどの SOCIALメディアの簡単ログインがあります。OAuth2.0を使用して third-partyアプリケーションがユーザーの SOCIALメディアプロファイル情報にアクセスできるようにします。B2B PRISM Live Studioも OAuth2.0を使用して権限を管理するため、OAuth2.0の基本概念をご案内し、権限付与方法を説明します。

OAuth 2.0のロール

OAuth 2.0を構成する4つのロールは、次の通りです。

  • リソース所有者(Resource Owner): OAuth 2.0プロトコルを使用して保護されるリソースへのアクセス権を付与するユーザー(エンティティ)です。クライアントを認証(Authorize)するロールを担います。例えば、NAVERログインで NAVER IDを所有し、third-partyアプリケーション(クライアント)に NAVER IDで SOCIALログイン認証を行うユーザーを意味します。
  • クライアント(Client): OAuth 2.0を使用してリソースにアクセスしようとする third-partyアプリケーションやサービスです。
  • 権限サーバ(Authorization Server): クライアントがリソース所有者の権限を取得するのに役立つサーバです。このサーバは、ユーザー認証、権限付与、トークン発行を管理します。
  • リソースサーバ(Resource Server): 保護されたリソースをホストするサーバで、アクセスを許可または拒否します。このサーバは、OAuth 2.0トークンを使用してクライアントにリソースへのアクセスを許可し、実データを提供します。

OAuth 2.0の用語

OAuth 2.0を理解するために知っておくべき主な用語は、次の通りです。

  • アクセストークン(Access Token): クライアントがリソースサーバのリソースにアクセスするための権限を付与されるトークンです。アクセストークンは権限サーバから発行され、一般的に限られた有効期間を持ちます。
  • リフレッシュトークン(Refresh Token): アクセストークンの有効期限が切れた後、新しいアクセストークンを取得するためのトークンです。これにより、ユーザーは再ログインすることなくトークン有効時間の更新のみでアプリケーションを使い続けることができます。
  • スコープ(Scope): クライアントがリソースに対してどのようなタスクを実行できるかを定義する文字列です。スコープは権限サーバによって定義され、クライアントは特定のスコープのアクセス権をリクエストできます。
  • 認証コード(Authorization Code): クライアントがアクセストークンを取得するための中間ステップで使用されるコードです。認証コード付与(Authorization Code Grant)方式で権限サーバから発行され、これを使用してアクセストークンとリフレッシュトークンを取得できます。

OAuth 2.0の権限付与方式

OAuth 2.0では、クライアントアプリケーションがリソースサーバにアクセスする権限を付与して管理するために、様々な権限付与方式を提供します。そのうち、B2B PRISM Live Studio認証に使用される方式である認証コード付与方式についてのみ詳しく説明します。

認証コード付与(Authorization Code Grant)

権限付与承認のために自己作成した認証コードを渡す方式で、最も多く使用される基本的な方式です。最も安全性の高い方法でアクセストークンが直接クライアントに公開されません。ウェブアプリケーションやサーバアプリケーションなど、信頼できる環境で使用されます。

OAuth 2.0の権限付与プロセス

権限付与のプロセスは、次の通りです。

b2bpls-oauth2_authorization-flow_ko

  1. 認証コードのリクエスト
    • クライアントが事前に権限サーバから発行したクライアント ID、redirect uri情報と一緒に response typeを codeで指定してリクエストします。
  2. ログイン
    • 権限サーバでログインページを提供し、リソース所有者がログインします。
  3. 認証コード転送
    • ログインに成功すると、権限サーバは転送された redirect_uriに認証コードを転送します。
  4. アクセストークン発行
    • クライアントに権限付与承認コードを通じてアクセストークン(およびリフレッシュトークン)を発行します。
    • この時、事前に権限サーバから発行したクライアント IDとクライアントシークレット(Client Secret)情報が必要です。

呼び出し例

呼び出し例は、次の通りです。

  1. 認証コードのリクエスト

    curl -X GET https://authorization-server.example.com/oauth/authorize
                  ?response_type=code
                  &client_id=your_client_id
                  &redirect_uri=your_redirect_uri
                  &state=your_state
                  &scope=your_scope
    
    参考

    B2B PRISM Live Studioでは scopeと stateの値を使用しません。

  2. アクセストークン発行

    curl -X POST "https://authorization-server.example.com/token" \
    -d "grant_type=authorization_code" \
    -d "code=your_authorization_code" \
    -d "client_id=your_client_id" \
    -d "client_secret=your_client_secret" \
    -d "redirect_uri=your_redirect_uri"
    

OAuth 2.0認証における B2B PRISM Live Studioとクライアントサービスのロール

B2B PRISM Live Studioは OAuth2.0クライアント、クライアントサービスは権限サーバとリソースサーバのロールを担います。

クライアントサービス開発ガイド

OAuth2.0認証に該当する APIを実装する必要があります。

事前登録ガイド

OAuth 2.0認証を使用するために、NAVERクラウドプラットフォームコンソールに以下の項目を事前に登録する必要があります。

  • B2B PRISM Live Studio向け OAuth2クライアント ID
  • B2B PRISM Live Studio向け OAuth2クライアント Secret
  • OAuth2認証コード作成リクエスト URL
    • 未登録の場合、デフォルト値で呼び出します。(サービスドメイン + /oauth/authorize)
参考

サービス作成時の入力項目の詳細については、Service management > サービス設定をご参照ください。