RAML と API Manager を使用して Mule プロジェクトを操作していました。ここに記載されている手順に従って
API Manager を使用して、次のような特性に関連付けられたサービスを処理する AM
- シンプルなセキュリティ マネージャー、
- OAuth 2.0 プロバイダーと
- OAuth 2.0 アクセス トークンの適用。
次のリダイレクトを行う別のフローがあります
「ステータス」を 302 に設定します
「場所」を以下の URL に設定します
http://localhost:8081/org/oauth/token?grant_type=authorization_code&&client_id=53a406c3e4b0624da8246eed&client_secret=myclientsecret&code=#[message.inboundProperties.code]&redirect_uri=http://localhost:8081/raml-api-with-oauth/redirect
ここまでは順調です。
しかし、アクセス トークンの URL にアクセスしようとすると、メッセージが表示されます。
{"error":"unauthorized_client","error_description":""}
私の質問を要約するには:
- 「OAuthダンス」手順を手伝ってください
- API との有効なコントラクトを設定して、OAuth ダンスに必要な clientId と clientSecret の通信を容易にする方法を教えてください。
どこが間違っているのか教えてください。
RAML コード:
#%RAML 0.8
title: raml-api-with-oauth
version: v1
baseUri: http://localhost:8081/raml-api-with-oauth
securedBy: [oauth_2_0]
securitySchemes:
- oauth_2_0:
description: |
This supports OAuth 2.0 for authenticating all API requests.
type: OAuth 2.0
describedBy:
headers:
Authorization:
description: |
Used to send a valid OAuth 2 access token. Do not use
with the "access_token" query string parameter.
type: string
queryParameters:
access_token:
description: |
Used to send a valid OAuth 2 access token. Do not use together with
the "Authorization" header
type: string
responses:
401:
description: |
Bad or expired token. This can happen if the user or Dropbox
revoked or expired an access token. To fix, you should re-
authenticate the user.
403:
description: |
Bad OAuth request (wrong consumer key, bad nonce, expired
timestamp...). Unfortunately, re-authenticating the user won't help here.
404:
description: Unauthorized
settings:
authorizationUri: org/oauth/authorize
accessTokenUri: org/oauth/token
authorizationGrants: [code,token]
scopes:
- "READ_RESOURCE"
- "POST_RESOURCE"
- basic
- comments
- relationships
- likes
mediaType: application/json
/employee:
get:
description:
This is a Get Call which throws some response in json.
responses:
200:
body:
application/json:
example: |
{
"empcode" : 1,
"ename": "Rafiq",
"company" : "org"
}