- 印刷する
- PDF
OAuth2.0の概念と連携
- 印刷する
- PDF
Classic/VPC環境で利用できます。
Open Authorization 2.0または OAuth2.0は、ウェブおよびアプリケーション認証と権限付与のためのオープン標準プロトコルです。このプロトコルでは、third-partyアプリケーションがユーザーのリソースにアクセスするための手順を定義し、サービスプロバイダの APIを使用する権限を付与します。代表的に NAVERログイン、Googleログインなどのソーシャルメディアの簡単ログインがあります。OAuth2.0を使用して third-partyアプリケーションがユーザーのソーシャルメディアプロファイル情報にアクセスできるようにします。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でソーシャルログイン認証を行うユーザーを意味します。
- クライアント(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の権限付与プロセス
権限付与のプロセスは、次の通りです。
- 認証コードのリクエスト
- クライアントが事前に権限サーバから発行したクライアント ID、redirect uri情報と一緒に response typeを codeで指定してリクエストします。
- ログイン
- 権限サーバでログインページを提供し、リソース所有者がログインします。
- 認証コード転送
- ログインに成功すると、権限サーバは転送された redirect_uriに認証コードを転送します。
- アクセストークン発行
- クライアントに権限付与承認コードを通じてアクセストークン(およびリフレッシュトークン)を発行します。
- この時、事前に権限サーバから発行したクライアント IDとクライアントシークレット(Client Secret)情報が必要です。
呼び出し例
呼び出し例は、次の通りです。
認証コードのリクエスト
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の値を使用しません。
アクセストークン発行
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認証における PRISMと顧客サービスロール
B2B PRISM Live Studioは OAuth2.0クライアント、顧客サービスは権限サーバとリソースサーバの役割を担います。
顧客サービス開発ガイド
OAuth2認証に該当する APIを実装する必要があります。
事前登録ガイド
OAuth 2.0認証を使用するために、NCPダッシュボードコンソールに以下の項目を事前に登録する必要があります。
- OAuth 2.0認証コード発行 URL
- 未登録の場合、デフォルト値で呼び出します。(サービスドメイン + /oauth/authorize)
- B2B PRISM Live Studio向けクライアント ID
- B2B PRISM Live Studio向けクライアント Secret