Class: Gs2::Auth::Client
- Inherits:
-
Core::AbstractClient
- Object
- Core::AbstractClient
- Gs2::Auth::Client
- Defined in:
- lib/gs2/auth/Client.rb
Overview
GS2-Auth クライアント
Constant Summary collapse
- @@ENDPOINT =
'auth'
Class Method Summary collapse
-
.ENDPOINT(v = nil) ⇒ Object
デバッグ用。通常利用する必要はありません。.
Instance Method Summary collapse
-
#initialize(region, gs2_client_id, gs2_client_secret) ⇒ Client
constructor
コンストラクタ.
-
#login(request) ⇒ Object
ログイン。
GS2のサービスを利用するにあたってユーザの認証に必要となるアクセストークンを発行します。
アクセストークンの発行には以下の情報が必要となります。
.
Constructor Details
#initialize(region, gs2_client_id, gs2_client_secret) ⇒ Client
コンストラクタ
17 18 19 |
# File 'lib/gs2/auth/Client.rb', line 17 def initialize(region, gs2_client_id, gs2_client_secret) super(region, gs2_client_id, gs2_client_secret) end |
Class Method Details
.ENDPOINT(v = nil) ⇒ Object
デバッグ用。通常利用する必要はありません。
22 23 24 25 26 27 28 |
# File 'lib/gs2/auth/Client.rb', line 22 def self.ENDPOINT(v = nil) if v @@ENDPOINT = v else return @@ENDPOINT end end |
Instance Method Details
#login(request) ⇒ Object
ログイン。
GS2のサービスを利用するにあたってユーザの認証に必要となるアクセストークンを発行します。
アクセストークンの発行には以下の情報が必要となります。
-
ユーザID
-
サービスID
ユーザID には ログインするユーザのIDを指定してください。
GS2 はアカウント管理機能を持ちませんので、ユーザID は別途アカウント管理システムで発行したIDを指定する必要があります。
アカウントIDの文字種などには制限はありません。
サービスID には任意の文字列を指定できます。
ここで指定したサービスIDにもとづいて、その後アクセストークンで利用できるGSIを制限するのに利用します。
サービスの制限は GSI(AWSのIAMのようなもの) のセキュリティポリシーで設定することができます。
例えば、GSIに設定されたセキュリティポリシーが service-0001 によるアクセスを許可する。という設定の場合、
service-0002 というサービスIDで発行されたアクセストークンとGSIの組み合わせでリクエストを出してもリジェクトされるようになります。
これによって、下記のようなアクセスコントロールを同一アカウント内で実現できます。
-
GSI(A) 許可するアクション(GS2Inbox:*) 許可するサービス(service-0001)
-
GSI(B) 許可するアクション(GS2Stamina:*) 許可するサービス(service-0002)
この場合、service-0001 向けに発行されたアクセストークンと GSI(B) の組み合わせではサービスを利用することはできません。
そのため、service-0001 向けのアクセストークンでは GS2-Stamina を利用することはできないことになります。
60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/gs2/auth/Client.rb', line 60 def login(request) if not request; raise ArgumentError.new(); end body = {}; if request.has_key?('serviceId'); body['serviceId'] = request['serviceId']; end if request.has_key?('userId'); body['userId'] = request['userId']; end query = {}; return post( 'Gs2Auth', 'Login', @@ENDPOINT, '/login', body, query); end |