[[Open棟梁>https://github.com/OpenTouryoProject]] wiki -[[戻る>Multi-AuthSystem]] *目次 [#pd845b45] #contents *概要 [#ee98709c] Multi-AuthSystemの動作検証手順のメモする。 *Idp [#ab958dd9] *外部認証仕様(≒ OAuth 2.0 Client仕様) [#abb9437a] *OAuth 2.0 Server仕様 [#i7db0ba2] OAuthで認証・認可した後、~ 認証専用WebAPIへアクセスするまでの手順を使用して検証を行なう。 **Authorization Codeグラント種別 [#w8d19e13] 「http://localhost:nnnnn/home/index」で表示されるAuthorization Codeグラント種別の認証テスト用linkをclickする。 **Implicitグラント種別 [#v8c5ac21] 「http://localhost:nnnnn/home/index」で表示されるImplicitグラント種別の認証テスト用linkをclickする。 **Resource Owner Password Credentialsグラント種別 [#ka3a0c97] cURLコマンドする。 -認証の拡張仕様の部分は、&color(red){朱書き};にしてある。 -通常のリソース用WebAPIへのアクセス時はこのパラメタの指定は不要。 ***処理の概要 [#md5764f5] -Tokenエンドポイントに対して以下のRequestを出すと、Bearer Tokenが返ってくる。 --POST --Authorization: Basic ZZZZZZZZZZ ---> 「クライアントID:クライアント・パスワード」をBase64エンコードしたもの。 --body : grant_type=password, username=ユーザID, password=ユーザ・パスワード, &color(red){scope=auth}; -Bearer Tokenをヘッダに指定して認証専用のWebAPIにアクセスすると認証情報を取得できる。 --POST --Authorization: Bearer XXXXXXXXXX --body : &color(red){client_id=クライアントID, client_secret=クライアント・パスワード}; ***cURLコマンド [#e3bf933b] Debug ProxyにFiddler等を使用すると尚良(其の際は、 --proxy オプションを指定する必要がある)。 -Bearer Tokenの取得 --Request (cURLコマンド) >curl "http://localhost:nnnnn/OAuthBearerToken"-u "クライアントID:クライアント・パスワード" -d "grant_type=password" -d "username=ユーザID" -d "password=ユーザ・パスワード" -d "scope=auth" --Response (Body) {"access_token":"XXXXXXXXXX","token_type":"bearer","expires_in":nnnnn,"refresh_token":"YYYYYYYYYY"} -Bearer Tokenを使用したOAuthリソースへのアクセス --Request (cURLコマンド) >curl "http://localhost:nnnnn/api/OAuthResourceApi/GetAuthenticatedUsersClaim" -H "Authorization: Bearer XXXXXXXXXX" -d "client_id=クライアントID" -d "client_secret=クライアント・パスワード" --Response (Body) {"userName":"XXXXX","email":"XXXXX","phoneNumber":"XXXXX"} **Client Credentialsグラント種別 [#h00dd765] cURLコマンドする。 -認証の拡張仕様の部分は、&color(red){朱書き};にしてある。 -通常のリソース用WebAPIへのアクセス時はこのパラメタの指定は不要。 ***処理の概要 [#qc919bfc] -Tokenエンドポイントに対して以下のRequestを出すと、Bearer Tokenが返ってくる。 --POST Authorization: Basic ZZZZZZZZZZ ---> 「クライアントID:クライアント・パスワード」をBase64エンコードしたもの。 --body:grant_type=client_credentials, &color(red){scope=auth}; -Bearer Tokenをヘッダに指定して認証専用のWebAPIにアクセスすると認証情報を取得できる。 --POST --Authorization: Bearer XXXXXXXXXX --body : &color(red){client_id=クライアントID, client_secret=クライアント・パスワード}; ***cURLコマンド [#bf249746] Debug ProxyにFiddler等を使用すると尚良(其の際は、 --proxy オプションを指定する必要がある)。 -Bearer Tokenの取得 --Request (cURLコマンド) >curl "http://localhost:nnnnn/OAuthBearerToken" -u "クライアントID:クライアント・パスワード" -d "grant_type=client_credentials" -d "scope=auth" --Response (Body) {"access_token":"XXXXXXXXXX","token_type":"bearer","expires_in":nnnnn,"refresh_token":"YYYYYYYYYY"} -Bearer Tokenを使用したOAuthリソースへのアクセス --Request (cURLコマンド) >curl "http://localhost:63359/api/OAuthResourceApi/GetAuthenticatedUsersClaim" -H "Authorization: Bearer XXXXXXXXXX" -d "client_id=クライアントID" -d "client_secret=クライアント・パスワード" --Response (Body) {"userName":"XXXXX","email":"XXXXX","phoneNumber":"XXXXX"}